PCEnhancer does not find meta data for entities using pure XML annotation
-------------------------------------------------------------------------
Key: OPENJPA-468
URL: https://issues.apache.org/jira/browse/OPENJPA-468
Project: OpenJPA
Issue Type: Bug
Environment: Windows
Reporter: Sebastian Souza
Fix For: 1.1.0
I had well defined my classes in the orm.xml but the enhancer at build time
cant find them in the metadata
this is part of the trace :
Finding class itsm.framework.persistence.entities.PersistentObject
Class itsm.framework.persistence.entities.PersistentObject loaded from parent
loader
[openjpac] 406 ITSM TRACE [Worker-10] openjpa.Tool - Enhancer running on
type "class itsm.framework.persistence.entities.PersistentObject".
[openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Loading
metadata for "class itsm.framework.persistence.entities.PersistentObject" under
mode "[META][QUERY]".
[openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Scanning
resource "META-INF/orm.xml" for persistent types.
[openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData -
parsePersistentTypeNames() found [].
[openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - Found 0 classes
with metadata in 16 milliseconds.
[openjpac] 780 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing class
"itsm.framework.persistence.entities.PersistentObject".
[openjpac] 796 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing package
"itsm.framework.persistence.entities.PersistentObject".
[openjpac] 796 ITSM TRACE [Worker-10] openjpa.Enhance - Enhancing type
"class itsm.framework.persistence.entities.PersistentObject".
[openjpac] 811 ITSM WARN [Worker-10] openjpa.Enhance - Type "class
itsm.framework.persistence.entities.PersistentObject" has no metadata;
enhancing as persistence aware. If you intended for "class
itsm.framework.persistence.entities.PersistentObject" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class itsm.framework.persistence.entities.PersistentObject". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
[openjpac] 811 ITSM TRACE [Worker-10] openjpa.Tool - The class does not
have metadata - enhanced as persistence-aware.
[openjpac] java.io.FileNotFoundException:
file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class
(The filename, directory name, or volume label syntax is incorrect)
this is my build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="Persistence">
<target name="enhance">
<taskdef name="openjpac"
classname="org.apache.openjpa.ant.PCEnhancerTask"/>
<openjpac addDefaultConstructor="false" tmpClassLoader="false">
<config propertiesFile="./src/META-INF/persistence.xml"/>
<fileset dir=".">
<include name="**/entities/*.java"/>
<exclude name="**/QueryObject.java"/>
<exclude name="**/Parameter.java"/>
<exclude name="**/PersistentContext.java"/>
</fileset>
</openjpac>
</target>
</project>
Complete trace:
enhance:
Adding reference: eclipse.progress.monitor
[antlib:org.apache.tools.ant] Could not load definitions from resource
org/apache/tools/ant/antlib.xml. It could not be found.
Class org.apache.openjpa.ant.PCEnhancerTask loaded from parent loader
(parentFirst)
+Datatype openjpac org.apache.openjpa.ant.PCEnhancerTask
Adding reference: eclipse.progress.monitor
[openjpac] 16 ITSM TRACE [Worker-10] openjpa.Runtime - Setting the
following properties from
"file:/C:/Users/Seba/workspace/Persistence/src/META-INF/persistence.xml" into
configuration: {openjpa.ConnectionPassword=12345,
openjpa.ConnectionDriverName=org.postgresql.Driver,
javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl,
openjpa.jdbc.SchemaFactory=native(ForeignKeys=true),
openjpa.Log=DefaultLevel=TRACE, SQL=TRACE, openjpa.ConnectionUserName=postgres,
openjpa.ConnectionURL=jdbc:postgresql:itsm, openjpa.Id=ITSM}
fileset: Setup scanner in dir C:\Users\Seba\workspace\Persistence with
patternSet{ includes: [**/entities/*.java] excludes: [**/QueryObject.java,
**/Parameter.java, **/PersistentContext.java] }
Finding class itsm.framework.persistence.entities.PersistentObject
Class itsm.framework.persistence.entities.PersistentObject loaded from parent
loader
[openjpac] 406 ITSM TRACE [Worker-10] openjpa.Tool - Enhancer running on
type "class itsm.framework.persistence.entities.PersistentObject".
[openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Loading
metadata for "class itsm.framework.persistence.entities.PersistentObject" under
mode "[META][QUERY]".
[openjpac] 671 ITSM TRACE [Worker-10] openjpa.MetaData - Scanning
resource "META-INF/orm.xml" for persistent types.
[openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData -
parsePersistentTypeNames() found [].
[openjpac] 687 ITSM TRACE [Worker-10] openjpa.MetaData - Found 0 classes
with metadata in 16 milliseconds.
[openjpac] 780 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing class
"itsm.framework.persistence.entities.PersistentObject".
[openjpac] 796 ITSM TRACE [Worker-10] openjpa.MetaData - Parsing package
"itsm.framework.persistence.entities.PersistentObject".
[openjpac] 796 ITSM TRACE [Worker-10] openjpa.Enhance - Enhancing type
"class itsm.framework.persistence.entities.PersistentObject".
[openjpac] 811 ITSM WARN [Worker-10] openjpa.Enhance - Type "class
itsm.framework.persistence.entities.PersistentObject" has no metadata;
enhancing as persistence aware. If you intended for "class
itsm.framework.persistence.entities.PersistentObject" to be
persistence-capable, then this means that OpenJPA could not find any metadata
for "class itsm.framework.persistence.entities.PersistentObject". This can
happen if the directory containing your metadata is not in your CLASSPATH, or
if your metadata files are not named properly. See the documentation on
metadata placement for more information.
[openjpac] 811 ITSM TRACE [Worker-10] openjpa.Tool - The class does not
have metadata - enhanced as persistence-aware.
[openjpac] java.io.FileNotFoundException:
file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class
(The filename, directory name, or volume label syntax is incorrect)
[openjpac] at java.io.FileOutputStream.open(Native Method)
[openjpac] at java.io.FileOutputStream.<init>(Unknown Source)
[openjpac] at java.io.FileOutputStream.<init>(Unknown Source)
[openjpac] at serp.bytecode.BCClass.write(BCClass.java:179)
[openjpac] at
org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
[openjpac] at
org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
[openjpac] at
org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
[openjpac] at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
[openjpac] at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
[openjpac] at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[openjpac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
[openjpac] at java.lang.reflect.Method.invoke(Unknown Source)
[openjpac] at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
[openjpac] at org.apache.tools.ant.Task.perform(Task.java:348)
[openjpac] at org.apache.tools.ant.Target.execute(Target.java:357)
[openjpac] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[openjpac] at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
[openjpac] at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
[openjpac] at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[openjpac] at
org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
[openjpac] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
[openjpac] at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
[openjpac] at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
[openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[openjpac] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[openjpac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
[openjpac] at java.lang.reflect.Method.invoke(Unknown Source)
[openjpac] at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
[openjpac] at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
[openjpac] at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
[openjpac] at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
[openjpac] at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
[openjpac] at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
[openjpac] at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
[openjpac] at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
[openjpac] at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
[openjpac] at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
[openjpac] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
[openjpac] at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
[openjpac] at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
[openjpac] at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
[openjpac] at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
[openjpac] at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
[openjpac] at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
[openjpac] at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
[openjpac] at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
[openjpac] at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
[openjpac] at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
[openjpac] 843 ITSM TRACE [Worker-10] openjpa.MetaData - Clearing
metadata repository "[EMAIL PROTECTED]".
BUILD FAILED
C:\Users\Seba\workspace\Persistence\build.xml:5: java.io.FileNotFoundException:
file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class
(The filename, directory name, or volume label syntax is incorrect)
at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:176)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at
org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: java.io.FileNotFoundException:
file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class
(The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at serp.bytecode.BCClass.write(BCClass.java:179)
at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
... 41 more
--- Nested Exception ---
java.io.FileNotFoundException:
file:C:\Users\Seba\workspace\Persistence\persistence_entities.jar!\itsm\framework\persistence\entities\PersistentObject.class
(The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at serp.bytecode.BCClass.write(BCClass.java:179)
at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:526)
at org.apache.openjpa.enhance.PCEnhancer.record(PCEnhancer.java:512)
at org.apache.openjpa.enhance.PCEnhancer.run(PCEnhancer.java:4352)
at
org.apache.openjpa.ant.PCEnhancerTask.executeOn(PCEnhancerTask.java:89)
at
org.apache.openjpa.lib.ant.AbstractTask.execute(AbstractTask.java:172)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at
org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:623)
at
org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:456)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:377)
at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:249)
at
org.eclipse.ant.internal.ui.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:211)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:766)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:608)
at
org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:601)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:179)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:167)
at
org.eclipse.ui.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:86)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:624)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:166)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:197)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:246)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:249)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:302)
at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:334)
at
org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:137)
at
org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Total time: 2 seconds
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.