package org.cloudifysource.esc.driver.provisioning.azure.model; import java.util.ArrayList; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; /** * * @author elip * */ public final class ModelContextFactory { private ModelContextFactory() { } private static final List<Class<?>> CLASSES = new ArrayList<Class<?>>(); static { CLASSES.add(ConfigurationSet.class); CLASSES.add(ConfigurationSets.class); CLASSES.add(CreateAffinityGroup.class); CLASSES.add(CreateHostedService.class); CLASSES.add(CreateStorageServiceInput.class); CLASSES.add(Deployment.class); CLASSES.add(InputEndpoint.class); CLASSES.add(InputEndpoints.class); CLASSES.add(LinuxProvisioningConfigurationSet.class); CLASSES.add(WindowsProvisioningConfigurationSet.class); CLASSES.add(WinRM.class); CLASSES.add(Listener.class); CLASSES.add(Listeners.class); CLASSES.add(NetworkConfigurationSet.class); CLASSES.add(OSVirtualHardDisk.class); CLASSES.add(Role.class); CLASSES.add(RoleList.class); CLASSES.add(RestartRoleOperation.class); CLASSES.add(HostedServices.class); CLASSES.add(HostedService.class); CLASSES.add(AffinityGroups.class); CLASSES.add(AffinityGroup.class); CLASSES.add(RoleInstance.class); CLASSES.add(RoleInstanceList.class); CLASSES.add(StorageService.class); CLASSES.add(StorageServices.class); CLASSES.add(Error.class); CLASSES.add(Operation.class); CLASSES.add(AddressSpace.class); CLASSES.add(GlobalNetworkConfiguration.class); CLASSES.add(VirtualNetworkConfiguration.class); CLASSES.add(VirtualNetworkSite.class); CLASSES.add(VirtualNetworkSites.class); CLASSES.add(AttachedTo.class); CLASSES.add(Disk.class); CLASSES.add(Disks.class); } private static Class<?>[] getClasses() { Class<?>[] result = new Class<?>[CLASSES.size()]; CLASSES.toArray(result); return result; } /** * * @return - a {@link JAXBContext} to be used for marshaling and unmarshalling objects */ public static synchronized JAXBContext createInstance() { JAXBContext context = null; try { context = JAXBContext.newInstance(getClasses()); } catch (JAXBException e) { e.printStackTrace(); throw new RuntimeException("Could not create JAXBContext : " + e.getMessage()); } return context; } }