openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Dick (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-72) PersistenceProviderImpl.createContainerEntityManagerFactory() should not add a ClassTransformerImpl to PersistenceUnitInfo if <exclude-unlisted-classes>
Date Wed, 30 Jul 2008 16:21:31 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Michael Dick updated OPENJPA-72:
--------------------------------

    Fix Version/s:     (was: 1.2.0)
                   1.3.0
                   1.2.1

Moving to next release

> PersistenceProviderImpl.createContainerEntityManagerFactory() should not add a ClassTransformerImpl
to PersistenceUnitInfo if <exclude-unlisted-classes>
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-72
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-72
>             Project: OpenJPA
>          Issue Type: Bug
>         Environment: JDK1.5, Win32, openjpa-0.9.0-incubating
>            Reporter: Corey Klaasmeyer
>             Fix For: 1.2.1, 1.3.0
>
>
> Adding a transformer is unnecessary if classes are enhanced at build time. As far as
I can tell, you specify this by adding the <exclude-unlisted-classes> property to persistence.xml.
This could probably be made more clear by calling the property something like "build-time-enhancement-only"
or "disable-runtime-enhancement". Additionally, this causes a Spring configured JPA to fail
with and IllegalStateException if no LoadTimeWeaver is specified in the LocalContainerEntityManagerFactory.
The relevent code is on line 93 of PersistenceProviderImpl
>     public EntityManagerFactory createContainerEntityManagerFactory(
>         PersistenceUnitInfo pui, Map m) {
>         PersistenceProductDerivation pd = new PersistenceProductDerivation();
>         try {
>             ConfigurationProvider cp = pd.load(pui, m);
>             if (cp == null)
>                 return null;
>             // add enhancer
>             String ctOpts = (String) Configurations.getProperty
>                 (CLASS_TRANSFORMER_OPTIONS, pui.getProperties());
>             pui.addTransformer(new ClassTransformerImpl(cp, ctOpts, 
>                 pui.getNewTempClassLoader()));
>             BrokerFactory factory = Bootstrap.newBrokerFactory(cp, 
>                 pui.getClassLoader());
>             return OpenJPAPersistence.toEntityManagerFactory(factory);
>         } catch (Exception e) {
>             throw PersistenceExceptions.toPersistenceException(e);
>         }
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message