Hi Heiko, Odd problem, indeed. I'll setup a similar environment and let you know if I have any suggestions. Which version of maven are you using and which OS?
-Jeremy On Tue, Sep 28, 2010 at 5:10 AM, Heiko Kopp <[email protected]>wrote: > > Hello, > > I've encountered a problem when using openJPA inside mavens integration > test > phase. Alot of my entities respectively their members have been annotated > with @Factory and @Externalizer to automatically convert database datatypes > into schema relevent enumerations. An example for this is: > > @Entity > @Table(name = "PARTNER", schema = "PART") > public class Partner > { > .... > > @Column(name = "I_SCHL_WERTBEZ") > @Externalizer(TypeMapping.MARSHAL_SALUTATION_INDIVIDUAL) > @Factory(TypeMapping.UNMARSHAL_SALUTATION_INDIVIDUAL) > private SalutationIndividualEnum salutationIndividual; > > ... > } > > The Externalizer- and Factory-Methods have been extracted into a separate > class called 'TypeMapping'. In this class we additionally have the > following > string constants as used above: > > public static final String MARSHAL_SALUTATION_INDIVIDUAL > = > > "com.mbbank.partner.pas.common.system.typemapping.TypeMapping.marshalSalutationIndividual"; > > public static final String UNMARSHAL_SALUTATION_INDIVIDUAL > = > > "com.mbbank.partner.pas.common.system.typemapping.TypeMapping.unmarshalSalutationIndividual"; > > These strings referr to the actuall methods. > > The TypeMapping-class is located in a different package than the entity > class. And this seems to be a problem during test test phase in maven. > While > the code works perfectly in the application server, it fails in the maven > test phase with the following exception: > > <openjpa-1.0.4-SNAPSHOT-r420667:809016 fatal user error> > org.apache.openjpa.persistence.ArgumentException: Der Klassenname > "com.mbbank.partner.pas.common.system.typemapping.TypeMapping", der in der > Metadatenerweiterung im Feld > > "com.mbbank.partner.pas.common.system.database.model.Person.salutationIndividual" > verwendet wird, ist nicht gültig. > at org.apache.openjpa.meta.JavaTypes.classForName(JavaTypes.java:227) > at > org.apache.openjpa.meta.JavaTypes.classForName(JavaTypes.java:194) > at > org.apache.openjpa.meta.JavaTypes.classForName(JavaTypes.java:185) > at > org.apache.openjpa.meta.FieldMetaData.findMethod(FieldMetaData.java:1533) > at > > org.apache.openjpa.meta.FieldMetaData.getExternalizerMethod(FieldMetaData.java:1465) > at > org.apache.openjpa.meta.FieldMetaData.resolve(FieldMetaData.java:1640) > at > org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:400) > at > org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1688) > at > org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1623) > at > > org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:675) > at > > org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:574) > at > > org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:499) > at > > org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:301) > at > org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1060) > at > > org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:252) > at > > org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:347) > > The string is localized into German, the original one is referred to as > 'bad-class'. It's English representation is: > > bad-class: The class name "{0}" used in a metadata extension on field "{1}" > is not valid. > > As both class files are present in the same module and even during the test > phase, I've actually no clue on how to fix this issue. It can be fixed, > when > I put the static methods in the same package/class as the annotated field, > but that is no solutation for us as it will duplicate a lot of code. > > Has anyone an idea why this appends and what can be done to prevent it? > > Thank you very much. > > As seen in the stack trace above, I'm using openJPA 1.0.4-<something>, > which > is part of the Websphere Application Server 6.1.0.29. > > Best regards, > > Heiko > -- > View this message in context: > http://openjpa.208410.n2.nabble.com/Externalizer-not-working-during-maven-test-phase-tp5578748p5578748.html > Sent from the OpenJPA Users mailing list archive at Nabble.com. >
