org.springframework.orm.jpa.persistenceunit.PersistenceUnitPostProcessor Java Examples

The following examples show how to use org.springframework.orm.jpa.persistenceunit.PersistenceUnitPostProcessor. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: KradEntityManagerFactoryBean.java    From rice with Educational Community License v2.0 5 votes vote down vote up
/**
   * Creates a default KRAD-managed factory bean.
   */
  public KradEntityManagerFactoryBean() {
      this.persistenceUnitPostProcessors = new ArrayList<PersistenceUnitPostProcessor>();
      this.managedClassNames = new ArrayList<String>();
this.converterPackageNames = new ArrayList<String>();
converterPackageNames.add(DEFAULT_CONVERTERS_PACKAGE); // set as default
      this.persistenceUnitManager = createPersistenceUnitManager();
      this.internalFactoryBean = createInternalFactoryBean(this.persistenceUnitManager);
      this.internalFactoryBean.setJpaPropertyMap(createDefaultJpaProperties());
  }
 
Example #2
Source File: CommonEntityManagerFactoryConf.java    From syncope with Apache License 2.0 4 votes vote down vote up
public PersistenceUnitPostProcessor[] getPersistenceUnitPostProcessors() {
    return postProcessors;
}
 
Example #3
Source File: CommonEntityManagerFactoryConf.java    From syncope with Apache License 2.0 4 votes vote down vote up
public void setPersistenceUnitPostProcessors(final PersistenceUnitPostProcessor... postProcessors) {
    this.postProcessors = postProcessors;
}
 
Example #4
Source File: JPAStartupService.java    From lutece-core with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
/**
 * Initialize JPA objects (Datasource, Persistence Unit Manager, Entity Manager Factory, Transaction Manager) for each pool.
 */
public void process( )
{
    ReferenceList list = new ReferenceList( );
    AppConnectionService.getPoolList( list );

    Map<String, EntityManagerFactory> mapFactories = new HashMap<>( );
    List<PlatformTransactionManager> listTransactionManagers = new ArrayList<>( );
    _log.info( "JPA Startup Service : Initializing JPA objects ..." );

    String strDialectProperty = AppPropertiesService.getProperty( JPA_DIALECT_PROPERTY );

    for ( ReferenceItem poolItem : list )
    {
        String strPoolname = poolItem.getCode( );

        DataSource ds = AppConnectionService.getPoolManager( ).getDataSource( strPoolname );
        _log.info( "JPA Startup Service : DataSource retrieved for pool : " + strPoolname );
        _log.debug( "> DS : " + ds.toString( ) );

        DefaultPersistenceUnitManager pum = new DefaultPersistenceUnitManager( );
        pum.setDefaultDataSource( ds );

        PersistenceUnitPostProcessor [ ] postProcessors = {
                new JPAPersistenceUnitPostProcessor( )
        };
        pum.setPersistenceUnitPostProcessors( postProcessors );

        pum.afterPropertiesSet( );

        _log.info( "JPA Startup Service : Persistence Unit Manager for pool : " + strPoolname );
        _log.debug( "> PUM : " + pum.toString( ) );

        LocalContainerEntityManagerFactoryBean lcemfb = new LocalContainerEntityManagerFactoryBean( );
        lcemfb.setDataSource( ds );
        lcemfb.setPersistenceUnitManager( pum );
        lcemfb.setPersistenceUnitName( "jpaLuteceUnit" );

        JpaDialect jpaDialect = SpringContextService.getBean( "jpaDialect" );
        lcemfb.setJpaDialect( jpaDialect );

        Map mapJpaProperties = SpringContextService.getBean( "jpaPropertiesMap" );
        lcemfb.setJpaPropertyMap( mapJpaProperties );

        String strDialect = AppPropertiesService.getProperty( poolItem.getName( ) + ".dialect" );

        // replace default dialect if <poolname>.dialect is specified
        if ( StringUtils.isNotBlank( strDialect ) )
        {
            mapJpaProperties.put( strDialectProperty, strDialect );
        }

        _log.debug( "Using dialect " + mapJpaProperties.get( strDialectProperty ) + " for pool " + poolItem.getName( ) );

        JpaVendorAdapter jpaVendorAdapter = SpringContextService.getBean( "jpaVendorAdapter" );
        lcemfb.setJpaVendorAdapter( jpaVendorAdapter );

        lcemfb.afterPropertiesSet( );

        EntityManagerFactory emf = lcemfb.getNativeEntityManagerFactory( );
        _log.info( "JPA Startup Service : EntityManagerFactory created for pool : " + strPoolname );
        _log.debug( "> EMF : " + emf.toString( ) );

        JpaTransactionManager tm = new JpaTransactionManager( );
        tm.setEntityManagerFactory( emf );
        tm.setJpaDialect( jpaDialect );
        _log.debug( "> JpaDialect " + jpaDialect );
        tm.afterPropertiesSet( );
        _log.info( "JPA Startup Service : JPA TransactionManager created for pool : " + strPoolname );
        _log.debug( "> TM : " + tm.toString( ) );

        mapFactories.put( strPoolname, emf );
        listTransactionManagers.add( tm );
    }

    EntityManagerService ems = SpringContextService.getBean( "entityManagerService" );
    ems.setMapFactories( mapFactories );

    ChainedTransactionManager ctm = SpringContextService.getBean( "transactionManager" );
    ctm.setTransactionManagers( listTransactionManagers );
    _log.info( "JPA Startup Service : completed successfully" );
}
 
Example #5
Source File: KradEntityManagerFactoryBean.java    From rice with Educational Community License v2.0 4 votes vote down vote up
/**
 * Assembles the {@link PersistenceUnitPostProcessor}s into an array.
 *
 * @return an array of the {@link PersistenceUnitPostProcessor}s.
 */
protected PersistenceUnitPostProcessor[] assemblePersistenceUnitPostProcessors() {
    this.persistenceUnitPostProcessors = new ArrayList<PersistenceUnitPostProcessor>(this.persistenceUnitPostProcessors);
    this.persistenceUnitPostProcessors.add(new InternalPersistenceUnitPostProcessor());
    return this.persistenceUnitPostProcessors.toArray(new PersistenceUnitPostProcessor[this.persistenceUnitPostProcessors.size()]);
}
 
Example #6
Source File: LocalContainerEntityManagerFactoryBean.java    From spring-analysis-note with MIT License 2 votes vote down vote up
/**
 * Set the PersistenceUnitPostProcessors to be applied to the
 * PersistenceUnitInfo used for creating this EntityManagerFactory.
 * <p>Such post-processors can, for example, register further entity
 * classes and jar files, in addition to the metadata read from
 * {@code persistence.xml}.
 * <p><b>NOTE: Only applied if no external PersistenceUnitManager specified.</b>
 * @see #setPersistenceUnitManager
 */
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
	this.internalPersistenceUnitManager.setPersistenceUnitPostProcessors(postProcessors);
}
 
Example #7
Source File: LocalContainerEntityManagerFactoryBean.java    From java-technology-stack with MIT License 2 votes vote down vote up
/**
 * Set the PersistenceUnitPostProcessors to be applied to the
 * PersistenceUnitInfo used for creating this EntityManagerFactory.
 * <p>Such post-processors can, for example, register further entity
 * classes and jar files, in addition to the metadata read from
 * {@code persistence.xml}.
 * <p><b>NOTE: Only applied if no external PersistenceUnitManager specified.</b>
 * @see #setPersistenceUnitManager
 */
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
	this.internalPersistenceUnitManager.setPersistenceUnitPostProcessors(postProcessors);
}
 
Example #8
Source File: LocalContainerEntityManagerFactoryBean.java    From lams with GNU General Public License v2.0 2 votes vote down vote up
/**
 * Set the PersistenceUnitPostProcessors to be applied to the
 * PersistenceUnitInfo used for creating this EntityManagerFactory.
 * <p>Such post-processors can, for example, register further entity
 * classes and jar files, in addition to the metadata read from
 * {@code persistence.xml}.
 * <p><b>NOTE: Only applied if no external PersistenceUnitManager specified.</b>
 * @see #setPersistenceUnitManager
 */
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
	this.internalPersistenceUnitManager.setPersistenceUnitPostProcessors(postProcessors);
}
 
Example #9
Source File: LocalContainerEntityManagerFactoryBean.java    From spring4-understanding with Apache License 2.0 2 votes vote down vote up
/**
 * Set the PersistenceUnitPostProcessors to be applied to the
 * PersistenceUnitInfo used for creating this EntityManagerFactory.
 * <p>Such post-processors can, for example, register further entity
 * classes and jar files, in addition to the metadata read from
 * {@code persistence.xml}.
 * <p><b>NOTE: Only applied if no external PersistenceUnitManager specified.</b>
 * @see #setPersistenceUnitManager
 */
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
	this.internalPersistenceUnitManager.setPersistenceUnitPostProcessors(postProcessors);
}
 
Example #10
Source File: KradEntityManagerFactoryBean.java    From rice with Educational Community License v2.0 2 votes vote down vote up
/**
 * Returns an array of the {@link PersistenceUnitPostProcessor} instances which have been configured on this
 * factory bean.
 *
 * @return array of post processors, may be empty but will never return null
 */
public PersistenceUnitPostProcessor[] getPersistenceUnitPostProcessors() {
    return persistenceUnitPostProcessors.toArray(new PersistenceUnitPostProcessor[persistenceUnitPostProcessors.size()]);
}
 
Example #11
Source File: KradEntityManagerFactoryBean.java    From rice with Educational Community License v2.0 2 votes vote down vote up
/**
 * Set the PersistenceUnitPostProcessors to be applied to the * PersistenceUnitInfo used for creating this
 * EntityManagerFactory.
 *
 * <p>
 * Note that if executed before {@link #afterPropertiesSet()} then this factory bean may introduce its own post
 * processor instances. If invoked after, then this method will override internally configured post processors.
 * </p>
 *
 * <p>
 * Such post-processors can, for example, register further entity classes and jar files, in addition to the metadata
 * read from {@code persistence.xml}.
 * </p>
 *
 * @param postProcessors one or more post processors to set
 */
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
    // persistence unit post processors will get applied to the internal factory bean during afterPropertiesSet(),
    // this allows us to add our own internal post processor to the list)
    this.persistenceUnitPostProcessors = new ArrayList<PersistenceUnitPostProcessor>(Arrays.asList(postProcessors));
}