/** * 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 ); }
classLoaderService = new ClassLoaderServiceImpl( classLoaders,tcclLookupPrecedence );
@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(); }
@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(); }
@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(); }
@Test public void testLookupAfter() { InternalClassLoader icl = new InternalClassLoader(); Thread.currentThread().setContextClassLoader( icl ); ClassLoaderServiceImpl csi = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.AFTER ); try { csi.classForName( "test.class.name" ); assertTrue( false ); } catch ( Exception e ) { } assertEquals( 0, icl.getAccessCount() ); csi.stop(); }
@Test public void testLookupAfterNotFound() { InternalClassLoader icl = new InternalClassLoader(); Thread.currentThread().setContextClassLoader( icl ); ClassLoaderServiceImpl csi = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.BEFORE ); try { csi.classForName( "test.class.not.found" ); assertTrue( false ); } catch ( Exception e ) { } assertEquals( 0, icl.getAccessCount() ); csi.stop(); }
@Test public void testLookupNever() { InternalClassLoader icl = new InternalClassLoader(); Thread.currentThread().setContextClassLoader( icl ); ClassLoaderServiceImpl csi = new ClassLoaderServiceImpl( null, TcclLookupPrecedence.NEVER ); try { csi.classForName( "test.class.name" ); assertTrue( false ); } catch ( Exception e ) { } assertEquals( 0, 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 ); }
classLoaderService = new ClassLoaderServiceImpl( classLoaders,tcclLookupPrecedence );
public static void main(String[] args) { PersistenceXmlParser parser = new PersistenceXmlParser(new ClassLoaderServiceImpl(), PersistenceUnitTransactionType.RESOURCE_LOCAL); List<ParsedPersistenceXmlDescriptor> allDescriptors = parser.doResolve(new HashMap<>()); for (ParsedPersistenceXmlDescriptor descriptor : allDescriptors) { Configuration cfg = new Configuration(); cfg.setProperty("hibernate.hbm2ddl.auto", "create"); cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect"); cfg.setProperty("hibernate.id.new_generator_mappings", "true"); List<String> managedClassNames = descriptor.getManagedClassNames(); for (String className : managedClassNames) { try { cfg.addAnnotatedClass(Class.forName(className)); } catch (ClassNotFoundException e) { System.out.println("Class not found: " + className); } } SchemaExport export = new SchemaExport(cfg); export.setDelimiter(";"); export.setOutputFile("C:\\dev\\" + descriptor.getName() + "_create_schema.sql"); export.setFormat(true); export.execute(true, false, false, false); } }