@Test public void testNullTCCL() { Thread.currentThread().setContextClassLoader( null ); ClassLoaderServiceImpl csi1 = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.BEFORE ); Class<ClassLoaderServiceImplTest> clazz1 = csi1.classForName( ClassLoaderServiceImplTest.class.getName() ); assertEquals( ClassLoaderServiceImplTest.class, clazz1 ); csi1.stop(); ClassLoaderServiceImpl csi2 = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.AFTER ); Class<ClassLoaderServiceImplTest> clazz2 = csi2.classForName( ClassLoaderServiceImplTest.class.getName() ); assertEquals( ClassLoaderServiceImplTest.class, clazz2 ); csi2.stop(); ClassLoaderServiceImpl csi3 = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.NEVER ); Class<ClassLoaderServiceImplTest> clazz3 = csi3.classForName( ClassLoaderServiceImplTest.class.getName() ); assertEquals( ClassLoaderServiceImplTest.class, clazz3 ); csi3.stop(); }
/** * No longer used/supported! * * @param configValues The config values * * @return The built service * * @deprecated No longer used/supported! */ @Deprecated @SuppressWarnings({"UnusedDeclaration", "unchecked", "deprecation"}) public static ClassLoaderServiceImpl fromConfigSettings(Map configValues) { final List<ClassLoader> providedClassLoaders = new ArrayList<ClassLoader>(); final Collection<ClassLoader> classLoaders = (Collection<ClassLoader>) configValues.get( AvailableSettings.CLASSLOADERS ); if ( classLoaders != null ) { for ( ClassLoader classLoader : classLoaders ) { providedClassLoaders.add( classLoader ); } } addIfSet( providedClassLoaders, AvailableSettings.APP_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.RESOURCES_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.HIBERNATE_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.ENVIRONMENT_CLASSLOADER, configValues ); return new ClassLoaderServiceImpl( providedClassLoaders,TcclLookupPrecedence.AFTER ); }
/** * Find all persistence-units from all accessible {@code META-INF/persistence.xml} resources * * @param integration The Map of integration settings * * @return List of descriptors for all discovered persistence-units. */ public static List<ParsedPersistenceXmlDescriptor> locatePersistenceUnits(Map integration) { final PersistenceXmlParser parser = new PersistenceXmlParser( ClassLoaderServiceImpl.fromConfigSettings( integration ), PersistenceUnitTransactionType.RESOURCE_LOCAL ); parser.doResolve( integration ); return new ArrayList<>( parser.persistenceUnits.values() ); }
name = stripClasspathScheme( name ); final URL url = getAggregatedClassLoader().getResource( name ); if ( url != null ) { return url; final URL url = getAggregatedClassLoader().getResource( name ); if ( url != null ) { return url;
/** * Constructs a BootstrapServiceRegistryImpl. * * Do not use directly generally speaking. Use {@link org.hibernate.boot.registry.BootstrapServiceRegistryBuilder} * instead. * * @see org.hibernate.boot.registry.BootstrapServiceRegistryBuilder */ public BootstrapServiceRegistryImpl() { this( new ClassLoaderServiceImpl(), NO_INTEGRATORS ); } /**
@Override @SuppressWarnings("unchecked") public <T> T generateProxy(InvocationHandler handler, Class... interfaces) { return (T) Proxy.newProxyInstance( getAggregatedClassLoader(), interfaces, handler ); }
@Override public void stop() { super.stop(); osgiClassLoader.stop(); osgiServiceUtil.stop(); }
classLoaderService = new ClassLoaderServiceImpl( classLoaders,tcclLookupPrecedence );
name = stripClasspathScheme( name ); final InputStream stream = getAggregatedClassLoader().getResourceAsStream( name ); if ( stream != null ) { return stream; final InputStream stream = getAggregatedClassLoader().getResourceAsStream( stripped ); if ( stream != null ) { return stream;
@Override @SuppressWarnings("unchecked") public <S> Collection<S> loadJavaServices(Class<S> serviceContract) { ServiceLoader<S> serviceLoader = serviceLoaders.get( serviceContract ); if ( serviceLoader == null ) { serviceLoader = ServiceLoader.load( serviceContract, getAggregatedClassLoader() ); serviceLoaders.put( serviceContract, serviceLoader ); } final LinkedHashSet<S> services = new LinkedHashSet<S>(); for ( S service : serviceLoader ) { services.add( service ); } return services; }
@Override public void stop() { for ( InputStreamWrapper openedStream : openedStreams ) { if ( !openedStream.wasClosed ) { try { openedStream.close(); } catch (IOException ignore) { } } } openedStreams.clear(); stopped = true; super.stop(); } }
@Test public void testLookupBefore() { InternalClassLoader icl = new InternalClassLoader(); Thread.currentThread().setContextClassLoader( icl ); ClassLoaderServiceImpl csi = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.BEFORE ); Class<ClassLoaderServiceImplTest> clazz = csi.classForName( ClassLoaderServiceImplTest.class.getName() ); assertEquals( ClassLoaderServiceImplTest.class, clazz ); assertEquals( 1, icl.getAccessCount() ); csi.stop(); }
/** * Constructs a BootstrapServiceRegistryImpl. * * Do not use directly generally speaking. Use {@link org.hibernate.boot.registry.BootstrapServiceRegistryBuilder} * instead. * * @see org.hibernate.boot.registry.BootstrapServiceRegistryBuilder */ public BootstrapServiceRegistryImpl() { this( new ClassLoaderServiceImpl(), NO_INTEGRATORS ); } /**
/** * No longer used/supported! * * @param configValues The config values * * @return The built service * * @deprecated No longer used/supported! */ @Deprecated @SuppressWarnings({"UnusedDeclaration", "unchecked", "deprecation"}) public static ClassLoaderServiceImpl fromConfigSettings(Map configValues) { final List<ClassLoader> providedClassLoaders = new ArrayList<ClassLoader>(); final Collection<ClassLoader> classLoaders = (Collection<ClassLoader>) configValues.get( AvailableSettings.CLASSLOADERS ); if ( classLoaders != null ) { for ( ClassLoader classLoader : classLoaders ) { providedClassLoaders.add( classLoader ); } } addIfSet( providedClassLoaders, AvailableSettings.APP_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.RESOURCES_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.HIBERNATE_CLASSLOADER, configValues ); addIfSet( providedClassLoaders, AvailableSettings.ENVIRONMENT_CLASSLOADER, configValues ); return new ClassLoaderServiceImpl( providedClassLoaders,TcclLookupPrecedence.AFTER ); }
name = stripClasspathScheme( name ); final URL url = getAggregatedClassLoader().getResource( name ); if ( url != null ) { return url; final URL url = getAggregatedClassLoader().getResource( name ); if ( url != null ) { return url;
@Override public List<URL> locateResources(String name) { final ArrayList<URL> urls = new ArrayList<URL>(); try { final Enumeration<URL> urlEnumeration = getAggregatedClassLoader().getResources( name ); if ( urlEnumeration != null && urlEnumeration.hasMoreElements() ) { while ( urlEnumeration.hasMoreElements() ) { urls.add( urlEnumeration.nextElement() ); } } } catch (Exception ignore) { } return urls; }
/** * Parse a specific {@code persistence.xml} with the assumption that it defines a single * persistence-unit. * * @param persistenceXmlUrl The {@code persistence.xml} URL * @param transactionType The specific PersistenceUnitTransactionType to incorporate into the persistence-unit descriptor * @param integration The Map of integration settings * * @return The single persistence-unit descriptor */ @SuppressWarnings("WeakerAccess") public static ParsedPersistenceXmlDescriptor locateIndividualPersistenceUnit( URL persistenceXmlUrl, PersistenceUnitTransactionType transactionType, Map integration) { final PersistenceXmlParser parser = new PersistenceXmlParser( ClassLoaderServiceImpl.fromConfigSettings( integration ), transactionType ); parser.parsePersistenceXml( persistenceXmlUrl, integration ); assert parser.persistenceUnits.size() == 1; return parser.persistenceUnits.values().iterator().next(); }
@Test public void testLookupAfterAvoided() { InternalClassLoader icl = new InternalClassLoader(); Thread.currentThread().setContextClassLoader( icl ); ClassLoaderServiceImpl csi = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.AFTER ); Class<ClassLoaderServiceImplTest> clazz = csi.classForName( ClassLoaderServiceImplTest.class.getName() ); assertEquals( ClassLoaderServiceImplTest.class, clazz ); assertEquals( 0, icl.getAccessCount() ); csi.stop(); }
classLoaderService = new ClassLoaderServiceImpl( classLoaders,tcclLookupPrecedence );
name = stripClasspathScheme( name ); final InputStream stream = getAggregatedClassLoader().getResourceAsStream( name ); if ( stream != null ) { return stream; final InputStream stream = getAggregatedClassLoader().getResourceAsStream( stripped ); if ( stream != null ) { return stream;