/** * Set the context classloader so that it can access the list of service providers * @param parent The parent classloader * @param serviceNames A list of service provider names * @return The old TCCL if a new one is set, otherwise null */ public static ClassLoader setContextClassLoader(ClassLoader parent, ServiceDiscovery discovery, String... serviceNames) { ClassLoaderContext context = new ClassLoaderContext(parent, discovery, serviceNames); return context.setContextClassLoader(); }
/** * Create a context with the parent classloader and a list of service types that can be discovered * by the {@link ServiceDiscovery} * @param parent * @param discovery * @param serviceTypes */ public ClassLoaderContext(ClassLoader parent, ServiceDiscovery discovery, String... serviceTypes) { this(parent, getClassLoaders(discovery, serviceTypes)); }
public ConfigurationContext run() throws AxisFault { ClassLoader oldTCCL = axis2Config.classLoaderContext.setContextClassLoader(); try { ConfigurationContext configurationContext = ConfigurationContextFactory.createConfigurationContextFromURIs(axis2Config.axis2xmlURL, axis2Config.repositoryURL); return configurationContext; } finally { if (oldTCCL != null) { Thread.currentThread().setContextClassLoader(oldTCCL); } } } });
public Axis2Config run() throws AxisFault, MalformedURLException { // collect together the classloaders that Axis2 requires in order to load // pluggable items such as the Tuscany MessageReceivers and the Xerces // document builder. ClassLoader wsBindingCL = getClass().getClassLoader(); ClassLoader axis2CL = URLBasedAxisConfigurator.class.getClassLoader(); ClassLoaderContext classLoaderContext = new ClassLoaderContext(wsBindingCL, axis2CL); classLoaderContext = new ClassLoaderContext(classLoaderContext.getClassLoader(), serviceDiscovery, XMLInputFactory.class, DocumentBuilderFactory.class); URL axis2xmlURL = wsBindingCL.getResource("org/apache/tuscany/sca/binding/ws/axis2/engine/conf/tuscany-axis2.xml"); if (axis2xmlURL != null) { URL repositoryURL = new URL(axis2xmlURL, "../repository/"); Axis2Config config = new Axis2Config(); config.classLoaderContext = classLoaderContext; config.axis2xmlURL = axis2xmlURL; config.repositoryURL = repositoryURL; return config; } else { return null; } } });
private static List<ClassLoader> getClassLoaders(ServiceDiscovery discovery, Class<?>... serviceTypes) { List<ClassLoader> loaders = new ArrayList<ClassLoader>(); for (Class<?> serviceType : serviceTypes) { ClassLoader classLoader = getClassLoader(discovery, serviceType); if (classLoader != null && !loaders.contains(classLoader)) { loaders.add(classLoader); } } ClassLoader tccl = discovery.getContextClassLoader(); if (!loaders.contains(tccl)) { loaders.add(tccl); } return loaders; }
public SchemaFactory run() { ClassLoader cl = ClassLoaderContext.setContextClassLoader(getClass().getClassLoader(), registry.getServiceDiscovery(), SchemaFactory.class, TransformerFactory.class, SAXParserFactory.class, DocumentBuilderFactory.class ); try { // Create an aggregated validation schemas from all the XSDs return SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); } finally { if (cl != null) { Thread.currentThread().setContextClassLoader(cl); } } } });
private static List<ClassLoader> getClassLoaders(ServiceDiscovery discovery, Class<?>... serviceTypes) { List<ClassLoader> loaders = new ArrayList<ClassLoader>(); for (Class<?> serviceType : serviceTypes) { ClassLoader classLoader = getClassLoader(discovery, serviceType); if (classLoader != null && !loaders.contains(classLoader)) { loaders.add(classLoader); } } ClassLoader tccl = discovery.getContextClassLoader(); if (!loaders.contains(tccl)) { loaders.add(tccl); } return loaders; }
/** * Set the thread context classloader (TCCL) to a classloader that delegates to a collection * of classloaders * @param parent The parent classloader * @param delegates A list of classloaders to try * @return The existing TCCL */ public static ClassLoader setContextClassLoader(ClassLoader parent, ClassLoader... delegates) { ClassLoaderContext context = new ClassLoaderContext(parent, delegates); return context.setContextClassLoader(); }
public SchemaFactory run() { ClassLoader cl = ClassLoaderContext.setContextClassLoader(getClass().getClassLoader(), registry.getServiceDiscovery(), SchemaFactory.class, TransformerFactory.class, SAXParserFactory.class, DocumentBuilderFactory.class ); try { // Create an aggregated validation schemas from all the XSDs return SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); } finally { if (cl != null) { Thread.currentThread().setContextClassLoader(cl); } } } });
private static List<ClassLoader> getClassLoaders(ServiceDiscovery discovery, String... serviceNames) { List<ClassLoader> loaders = new ArrayList<ClassLoader>(); for (String sp : serviceNames) { ClassLoader loader = getClassLoader(discovery, sp); if (loader != null) { if (!loaders.contains(loader)) { loaders.add(loader); } } } ClassLoader tccl = discovery.getContextClassLoader(); if (!loaders.contains(tccl)) { loaders.add(tccl); } return loaders; }
/** * Create a context with the parent classloader and a list of service types that can be discovered * by the {@link ServiceDiscovery} * @param parent * @param discovery * @param serviceTypes */ public ClassLoaderContext(ClassLoader parent, ServiceDiscovery discovery, String... serviceTypes) { this(parent, getClassLoaders(discovery, serviceTypes)); }
/** * Set the context classloader so that it can access the list of service providers * @param parent The parent classloader * @param serviceNames A list of service provider names * @return The old TCCL if a new one is set, otherwise null */ public static ClassLoader setContextClassLoader(ClassLoader parent, ServiceDiscovery discovery, Class<?>... serviceTypes) { ClassLoaderContext context = new ClassLoaderContext(parent, discovery, serviceTypes); return context.setContextClassLoader(); }
public JAXBContext run() throws JAXBException { // Try to set up TCCL so that JAXBContext service discovery works in OSGi ClassLoader tccl = ClassLoaderContext.setContextClassLoader(JAXBContextCache.class.getClassLoader(), registry.getServiceDiscovery(), // The service provider of JAXBContext doesn't extend JAXBContext // We should use the service name instead of the class JAXBContext.class.getName(), DatatypeFactory.class.getName()); try { JAXBContext context = JAXBContext.newInstance(classesToBeBound); return context; } finally { if (tccl != null) { Thread.currentThread().setContextClassLoader(tccl); } } } });
private static List<ClassLoader> getClassLoaders(ServiceDiscovery discovery, String... serviceNames) { List<ClassLoader> loaders = new ArrayList<ClassLoader>(); for (String sp : serviceNames) { ClassLoader loader = getClassLoader(discovery, sp); if (loader != null) { if (!loaders.contains(loader)) { loaders.add(loader); } } } ClassLoader tccl = discovery.getContextClassLoader(); if (!loaders.contains(tccl)) { loaders.add(tccl); } return loaders; }
/** * Create a context with the parent classloader and a list of service types that can be discovered * by the {@link ServiceDiscovery} * @param parent * @param discovery * @param serviceTypes */ public ClassLoaderContext(ClassLoader parent, ServiceDiscovery discovery, Class<?>... serviceTypes) { this(parent, getClassLoaders(discovery, serviceTypes)); }
/** * Set the thread context classloader (TCCL) to a classloader that delegates to a collection * of classloaders * @param parent The parent classloader * @param delegates A list of classloaders to try * @return The existing TCCL */ public static ClassLoader setContextClassLoader(ClassLoader parent, ClassLoader... delegates) { ClassLoaderContext context = new ClassLoaderContext(parent, delegates); return context.setContextClassLoader(); }
public JAXBContext run() throws JAXBException { // Try to set up TCCL so that JAXBContext service discovery works in OSGi ClassLoader tccl = ClassLoaderContext.setContextClassLoader(JAXBContextCache.class.getClassLoader(), registry.getServiceDiscovery(), // The service provider of JAXBContext doesn't extend JAXBContext // We should use the service name instead of the class JAXBContext.class.getName(), DatatypeFactory.class.getName()); try { JAXBContext context = JAXBContext.newInstance(classesToBeBound); return context; } finally { if (tccl != null) { Thread.currentThread().setContextClassLoader(tccl); } } } });
/** * Create a context with the parent classloader and a list of service types that can be discovered * by the {@link ServiceDiscovery} * @param parent * @param discovery * @param serviceTypes */ public ClassLoaderContext(ClassLoader parent, ServiceDiscovery discovery, Class<?>... serviceTypes) { this(parent, getClassLoaders(discovery, serviceTypes)); }
/** * Set the context classloader so that it can access the list of service providers * @param parent The parent classloader * @param serviceNames A list of service provider names * @return The old TCCL if a new one is set, otherwise null */ public static ClassLoader setContextClassLoader(ClassLoader parent, ServiceDiscovery discovery, String... serviceNames) { ClassLoaderContext context = new ClassLoaderContext(parent, discovery, serviceNames); return context.setContextClassLoader(); }
public void init() throws ServletException { ClassLoader cl = ClassLoaderContext.setContextClassLoader(Thread.currentThread().getContextClassLoader(), registry.getServiceDiscovery(), "/META-INF/server/wink-providers", "javax.ws.rs.ext.RuntimeDelegate"); try { super.init(); } finally { if (cl != null) { // return previous classLoader Thread.currentThread().setContextClassLoader(cl); } } }