|
Home > Archive > Apache JDO Project > April 2006 > Missing JPOX "implementation creator"
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Missing JPOX "implementation creator"
|
|
| Jörg von Frantzius 2006-04-27, 6:46 am |
| Hi,
when I run the tests, I see the following error. Is there anything I can
do about this myself per chance?
Thanks for even more hints,
Jörg
1)
test(org.apache.jdo.tck.models.fieldtypes.TestArrayCollections)javax.jdo.JDOFatalException:
The JPOX "implementation creator" was not found in the CLASSPATH. To
use PersistenceManager.newInstance() you need to have the JPOX
Enhancer in the CLASSPATH.
at
org.jpox.PMFContext.getImplementationCreator(PMFContext.java:90)
at
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
at
org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
at
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
at
org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
at
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
at
org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
at
org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
at
org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
at
org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
at
org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
at
org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
at
org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
at
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
at
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
NestedThrowablesStackTrace:
java.lang.ClassNotFoundException:
org.jpox.enhancer.ImplementationCreatorImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at
org.jpox.PMFContext.getImplementationCreator(PMFContext.java:77)
at
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
at
org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
at
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
at
org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
at
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
at
org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
at
org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
at
org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
at
org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
at
org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
at
org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
at
org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
at
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
at
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
| |
| Erik Bengtson 2006-04-27, 6:46 am |
| Yes, you can check that JPOX enhancer jar is in the test runtime classpath by
enabling maven debug mode.
Quoting Jörg von Frantzius <joerg.von.frantzius@artnology.com>:
> Hi,
>
> when I run the tests, I see the following error. Is there anything I can
> do about this myself per chance?
>
> Thanks for even more hints,
> Jörg
>
>
> 1)
>
>
test(org.apache.jdo.tck.models.fieldtypes.TestArrayCollections)javax.jdo.JDOFatalException:
> The JPOX "implementation creator" was not found in the CLASSPATH. To
> use PersistenceManager.newInstance() you need to have the JPOX
> Enhancer in the CLASSPATH.
> at
> org.jpox.PMFContext.getImplementationCreator(PMFContext.java:90)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
> at
> org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
> at
>
>
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
> at
>
>
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
> at
> org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
> at
> org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
> at
> org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
> at
>
>
org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
> at
> org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
> at
>
>
org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
> at
>
>
org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
> at
>
>
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
> at
>
>
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
> NestedThrowablesStackTrace:
> java.lang.ClassNotFoundException:
> org.jpox.enhancer.ImplementationCreatorImpl
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> org.jpox.PMFContext.getImplementationCreator(PMFContext.java:77)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
> at
>
>
org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
> at
> org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
> at
>
>
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
> at
>
>
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
> at
> org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
> at
> org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
> at
> org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
> at
>
>
org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
> at
> org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
> at
>
>
org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
> at
>
>
org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
> at
>
>
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
> at
>
>
org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
>
>
| |
| Michelle Caisse 2006-04-27, 6:46 am |
| Hi Jörg ,
I think you just need to drop the jpox enhancer jar file into the
iut_jars directory of your tck installation, or otherwise get it onto
your classpath.
-- Michelle
Jörg von Frantzius wrote:
> Hi,
>
> when I run the tests, I see the following error. Is there anything I
> can do about this myself per chance?
>
> Thanks for even more hints,
> Jörg
>
>
> 1)
> test(org.apache.jdo.tck.models.fieldtypes.TestArrayCollections)javax.jdo.JDOFatalException:
> The JPOX "implementation creator" was not found in the CLASSPATH.
> To use PersistenceManager.newInstance() you need to have the JPOX
> Enhancer in the CLASSPATH.
> at
> org.jpox.PMFContext.getImplementationCreator(PMFContext.java:90)
> at
> org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
> at
> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
> at
> org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
> at
> org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
> at
> org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
> at
> org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
> at
> org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
> at
> org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
> at
> org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
> at
> org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
> at
> org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
> at
> org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
> at
> org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
> at
> org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
> NestedThrowablesStackTrace:
> java.lang.ClassNotFoundException:
> org.jpox.enhancer.ImplementationCreatorImpl
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> org.jpox.PMFContext.getImplementationCreator(PMFContext.java:77)
> at
> org.jpox.store.rdbms.table.ColumnCreator. createColumnsForReferenceField(ColumnCre
ator.java:288)
> at
> org.jpox.store.rdbms.table.ColumnCreator.createColumnsForField(ColumnCreator.java:411)
> at
> org.jpox.store.rdbms.table.ColumnCreator. createColumnsForJoinTables(ColumnCreator
.java:145)
> at
> org.jpox.store.rdbms.table.ArrayTable.initialize(ArrayTable.java:93)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2613)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2225)
> at
> org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2081)
> at
> org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:576)
> at
> org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:590)
> at
> org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:983)
> at
> org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:770)
> at
> org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:575)
> at
> org.jpox.AbstractPersistenceManager. internalMakePersistent(AbstractPersisten
ceManager.java:1149)
> at
> org.jpox.AbstractPersistenceManager. makePersistent(AbstractPersistenceManage
r.java:1205)
> at
> org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.runTest(TestArrayCollections.java:97)
> at
> org.apache.jdo.tck.models.fieldtypes.TestArrayCollections.test(TestArrayCollections.java:73)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:237)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
>
| |
| Jörg von Frantzius 2006-04-27, 6:46 am |
| Thanks Michelle and Erik for your answers. I simply dropped the
jpox-enhancer-SNAPSHOT.jar into iut_jars, and now it works. It's just
the CompletenessTest failing once per kind of identity now, and I guess
that's as currently expected.
Just wondering a bit whether the tck20 project shouldn't claim the
jpox-enhancer-SNAPSHOT.jar as a maven dependency?
Regards,
Jörg
Michelle Caisse schrieb:
> Hi Jörg ,
>
> I think you just need to drop the jpox enhancer jar file into the
> iut_jars directory of your tck installation, or otherwise get it onto
> your classpath.
>
> -- Michelle
>
> Jörg von Frantzius wrote:
>
>
>
| |
| Michael Bouschen 2006-04-27, 6:46 am |
| Hi Jörg,
> Thanks Michelle and Erik for your answers. I simply dropped the
> jpox-enhancer-SNAPSHOT.jar into iut_jars, and now it works. It's just
> the CompletenessTest failing once per kind of identity now, and I
> guess that's as currently expected.
On my side companyPMInterface.conf is the only configuration that is
failing for both identity types.
>
> Just wondering a bit whether the tck20 project shouldn't claim the
> jpox-enhancer-SNAPSHOT.jar as a maven dependency?
It already does. The goal 'maven runtck.jdori' runs the tck using the
jdori i.e. JPOX. Then everything gets setup automatically and there is
no need to copy any jars to the iut_jars directory. You use the goal
'maven runtck.iut' if you want to run a JDO implementation (called
Implemnentation Under Test) against the tck. This does not any JPOX
jars. Instead it puts all the jars in the iut_jars directory in the
classpath.
Regards Michael
>
> Regards,
> Jörg
>
> Michelle Caisse schrieb:
>
| |
| Jörg von Frantzius 2006-04-27, 6:46 am |
| Hi Michael,
please excuse my ignorance, now I finally understand what the difference
between the jdori and iut targets is.
Having read http://issues.apache.org/jira/browse/JDO-357 I only then
happened to have a look at RunRules.html, which was very informative ;-)
It seems that running the iut target will find the
jpox-core-SNAPSHOT.jar in the maven repository and use it, so that the
iut target will run even when iut_jars is empty. Maybe that's a little
confusing (and I'd wonder which will be found first in the classpath if
both JPOX is present in the maven repo and some other implementation in
iut_jars).
Regards,
Jörg
Michael Bouschen schrieb:
> Hi Jörg,
> On my side companyPMInterface.conf is the only configuration that is
> failing for both identity types.
> It already does. The goal 'maven runtck.jdori' runs the tck using the
> jdori i.e. JPOX. Then everything gets setup automatically and there is
> no need to copy any jars to the iut_jars directory. You use the goal
> 'maven runtck.iut' if you want to run a JDO implementation (called
> Implemnentation Under Test) against the tck. This does not any JPOX
> jars. Instead it puts all the jars in the iut_jars directory in the
> classpath.
>
> Regards Michael
>
>
>
| |
| Craig L Russell 2006-04-27, 6:46 am |
| | |
| Michelle Caisse 2006-04-27, 6:46 am |
| I noticed that the text about reading README.txt and RunRules.html got
lost from the Downloads page in my last revision. I will restore it as
soon as JIRA returns from its slumber. Maybe that will help.
-- Michelle
Craig L Russell wrote:
> Hi Jörg,
>
> To test binary compatibility, both the IUT and JPOX must be in the
> classpath. The jdo implementation never depends on "what is found
> first in the classpath". It's explicitly called out by the user's
> configuration of the pmf properties.
>
> I wonder if we should have a test that requires the user of the TCK to
> click through a statement that says "I have read and understand
> RunRules.html". ;-)
>
> This does raise for me a question of whether it's possible to run the
> TCK with a newer version of JPOX as the IUT and the officially shipped
> version as "the other implementation" for binary compatibility tests.
> Probably not...
>
> Craig
>
> On Apr 25, 2006, at 6:25 AM, Jörg von Frantzius wrote:
>
>
|
|
|
|
|