public void addDeploymentSpecificPersistenceProvider ( PersistenceProvider persistenceProvider , Set < ClassLoader > deploymentClassLoaders ) { synchronized ( persistenceProviderPerClassLoader ) { for ( ClassLoader deploymentClassLoader : deploymentClassLoaders ) { List < Class < ? extends PersistenceProvider > > list = persistenceProviderPerClassLoader . get ( deploymentClassLoader ) ; ROOT_LOGGER . tracef ( "getting persistence provider list (%s) for deployment (%s)" , list , deploymentClassLoader ) ; if ( list == null ) { list = new ArrayList <> ( ) ; persistenceProviderPerClassLoader . put ( deploymentClassLoader , list ) ; ROOT_LOGGER . tracef ( "saving new persistence provider list (%s) for deployment (%s)" , list , deploymentClassLoader ) ; } list . add ( persistenceProvider . getClass ( ) ) ; ROOT_LOGGER . tracef ( "added new persistence provider (%s) to provider list (%s)" , persistenceProvider . getClass ( ) . getName ( ) , list ) ; } } }
Set at application deployment time to the persistence providers packaged in the application