So... before I got update the jira, I want to go make sure it's not
something stupid I'm doing.
Classpath defined like this in ant...
<path id="project.classpath">
<pathelement location="${basedir}/lib/commons-collections-3.2.jar"/>
<pathelement location="${basedir}/lib/commons-lang-2.1.jar"/>
<pathelement location="${basedir}/lib/commons-logging-1.0.4.jar"/>
<pathelement location="${basedir}/lib/commons-pool-1.3.jar"/>
<pathelement location="${basedir}/lib/derby-10.1.3.1.jar"/>
<pathelement
location="${basedir}/lib/geronimo-j2ee-connector_1.5_spec-1.0.1.jar"/>
<pathelement
location="${basedir}/lib/geronimo-jms_1.1_spec-1.0.1.jar"/>
<pathelement
location="${basedir}/lib/geronimo-jta_1.0.1B_spec-1.0.1.jar"/>
<pathelement location="${basedir}/lib/openjpa-jdbc-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-jdbc-5-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-kernel-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-kernel-4-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-kernel-5-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-lib-0.9.0.jar"/>
<pathelement
location="${basedir}/lib/openjpa-persistence-0.9.0.jar"/>
<pathelement
location="${basedir}/lib/openjpa-persistence-jdbc-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-project-0.9.0.jar"/>
<pathelement location="${basedir}/lib/openjpa-xmlstore-0.9.0.jar"/>
<pathelement location="${basedir}/lib/persistence-api-1.0.jar"/>
<pathelement location="${basedir}/lib/serp-1.11.0.jar"/>
</path>
(have also tried it like....)
<path id="project.classpath">
<fileset dir="${basedir}/lib" includes="*.jar"/>
</path>
===========
Task defined like...
<taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask">
<classpath refid="project.classpath" />
</taskdef>
Target defined like...
<target name="enhance-src">
<openjpac>
<classpath refid="project.classpath"/>
<fileset dir=".">
<include
name="${basedir}/src/main/java/tutorial/persistence/*.java" />
</fileset>
</openjpac>
</target>
and I still get that same MissingResourceException...
When digging into the Services.getImplementors(String serviceName,
ClassLoader loader) method, I print out all the URL's returned by a call
to URLClassLoader.getURLs, and it gives me the following:
file:/c:/tools/apache-ant-1.6.5/lib/ant-antlr.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-bcel.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-bsf.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-log4j.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-oro.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-regexp.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-apache-resolver.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-commons-logging.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-commons-net.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-icontract.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jai.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-javamail.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jdepend.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jmf.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-jsch.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-junit.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-launcher.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-netrexx.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-nodeps.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-starteam.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-stylebook.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-swing.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-trax.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-vaj.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-weblogic.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-xalan1.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant-xslp.jar
file:/c:/tools/apache-ant-1.6.5/lib/ant.jar
file:/c:/tools/apache-ant-1.6.5/lib/junit-3.8.1.jar
file:/c:/tools/apache-ant-1.6.5/lib/junit.jar
file:/c:/tools/apache-ant-1.6.5/lib/xercesImpl.jar
file:/c:/tools/apache-ant-1.6.5/lib/xml-apis.jar
file:/c:/tools/jdk1.5.0_06/lib/tools.jar
Obviously, the
'META-INF/services/org.apache.openjpa.conf.ProductDerivation' file is
not gonna be in any of those libraries.
What am I missing?
Neil Hornbeck (JIRA) wrote:
[ http://issues.apache.org/jira/browse/OPENJPA-8?page=comments#action_12427870 ]
Neil Hornbeck commented on OPENJPA-8:
-------------------------------------
Updated to revision 431325. I am now able to us the Enhancer from the command
line.
java.util.MissingResourceException: system is missing product derivations
-------------------------------------------------------------------------
Key: OPENJPA-8
URL: http://issues.apache.org/jira/browse/OPENJPA-8
Project: OpenJPA
Issue Type: Bug
Environment: Windows 2000, using ant build.
Reporter: Neil Hornbeck
Priority: Blocker
I am trying to run the openjpac from within ant. I am getting the error that
the file META-INF/services/org.apache.openjpa.conf.ProductDerivation is missing
but it is right on the classpath that the Enhancer is running from.
+++
[openjpac] java.lang.ExceptionInInitializerError
[openjpac] at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:516)
[openjpac] at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:165)
[openjpac] at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.<init>(OpenJPAConfigurationImpl.java:155)
[openjpac] at
org.apache.openjpa.ant.PCEnhancerTask.newConfiguration(PCEnhancerTask.java:77)
[openjpac] at
org.apache.openjpa.lib.ant.AbstractTask.getConfiguration(AbstractTask.java:89)
[openjpac] at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:84)
[openjpac] at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:153)
[openjpac] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[openjpac] at org.apache.tools.ant.Task.perform(Task.java:364)
[openjpac] at org.apache.tools.ant.Target.execute(Target.java:341)
[openjpac] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[openjpac] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[openjpac] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[openjpac] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[openjpac] at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[openjpac] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[openjpac] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[openjpac] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[openjpac] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
[openjpac] Caused by: java.util.MissingResourceException: Your system is
missing product derivations. Product derivations provide configuration options
for supported da
ta stores and specifications. You must have a
META-INF/services/org.apache.openjpa.conf.ProductDerivation file in your
classpath listing the available derivation classes
, and some listed class must be instantiable. Typically this file is bundled
as part of the distribution. Have you unbundled it, or unbundled its listed
classes?
[openjpac] at
org.apache.openjpa.conf.ProductDerivations.<clinit>(ProductDerivations.java:53)
[openjpac] ... 19 more