Bonjour,
Voilà, j'ai un petit projet dans lequel j'essaie vainement d'enhancer certaines classes via le plugin JPox.
J'ai une classe sous src/main/java/org/blackdog/type/AudioItem.java.
J'ai placé un fichier jdo sous src/main/resources/org/blackdog/type/AudioItem.jdo. Il ressemble à ca :
Ce dernier fichier est bien considéré lors de l'appel au plugin jpox. J'ai la trace suivante lors de l'éxécution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0"?> <!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN" "http://java.sun.com/dtd/jdo_2_0.dtd"> <jdo> <package name="org.blackdog.type"> <class name="AudioItem" identity-type="datastore"> <primary-key name="id" column="id"/> <field name="name" persistence-modifier="persistent"/> <field name="category" persistence-modifier="persistent"/> </class> </package> </jdo>
Visiblement, Il semble que le répertorie contenant les sources compilés soit bien présent dans le classpath considéré par maven (voir ligne 3) !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 INFO [JPOX.Enhancer] - JPOX Enhancer : Classpath JPOX Enhancer : Classpath INFO [JPOX.Enhancer] - >> /mnt/projects/blackdog-types/target/classes >> /mnt/projects/blackdog-types/target/classes INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/log4j/log4j/1.2.8/log4j-1.2.8.jar >> /mnt/projects/.m2/log4j/log4j/1.2.8/log4j-1.2.8.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/javax/resource/connector/1.0/connector-1.0.jar >> /mnt/projects/.m2/javax/resource/connector/1.0/connector-1.0.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/jakarta-regexp/jakarta-regexp/1.4/jakarta-regexp-1.4.jar >> /mnt/projects/.m2/jakarta-regexp/jakarta-regexp/1.4/jakarta-regexp-1.4.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/ant/ant/1.6/ant-1.6.jar >> /mnt/projects/.m2/ant/ant/1.6/ant-1.6.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/javax/jdo/jdo2-api/2.0/jdo2-api-2.0.jar >> /mnt/projects/.m2/javax/jdo/jdo2-api/2.0/jdo2-api-2.0.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/org/apache/bcel/bcel/5.2/bcel-5.2.jar >> /mnt/projects/.m2/org/apache/bcel/bcel/5.2/bcel-5.2.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/geronimo-spec/geronimo-spec-jta/1.0.1B-rc2/geronimo-spec-jta-1.0.1B-rc2.jar >> /mnt/projects/.m2/geronimo-spec/geronimo-spec-jta/1.0.1B-rc2/geronimo-spec-jta-1.0.1B-rc2.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/jpox/jpox/1.1.6/jpox-1.1.6.jar >> /mnt/projects/.m2/jpox/jpox/1.1.6/jpox-1.1.6.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/jpox/jpox-enhancer/1.1.6/jpox-enhancer-1.1.6.jar >> /mnt/projects/.m2/jpox/jpox-enhancer/1.1.6/jpox-enhancer-1.1.6.jar INFO [JPOX.Enhancer] - >> /mnt/projects/.m2/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar >> /mnt/projects/.m2/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar INFO [JPOX.Enhancer] - >> /opt/maven-2.0.5/lib/maven-plugin-api-2.0.5.jar >> /opt/maven-2.0.5/lib/maven-plugin-api-2.0.5.jar INFO [JPOX.Enhancer] - >> /opt/maven-2.0.5/core/plexus-utils-1.1.jar >> /opt/maven-2.0.5/core/plexus-utils-1.1.jar INFO [JPOX.Enhancer] - >> /opt/maven-2.0.5/lib/maven-artifact-2.0.5.jar >> /opt/maven-2.0.5/lib/maven-artifact-2.0.5.jar INFO [JPOX.Enhancer] - >> /opt/maven-2.0.5/core/plexus-container-default-1.0-alpha-9.jar >> /opt/maven-2.0.5/core/plexus-container-default-1.0-alpha-9.jar INFO [JPOX.Enhancer] - JPOX Enhancer : Input Files JPOX Enhancer : Input Files INFO [JPOX.Enhancer] - >> /mnt/projects/blackdog-types/target/classes/org/blackdog/type/AudioItem.jdo >> /mnt/projects/blackdog-types/target/classes/org/blackdog/type/AudioItem.jdo INFO [JPOX.Enhancer] - JPOX Enhancer : Using ClassEnhancer "BCEL" JPOX Enhancer : Using ClassEnhancer "BCEL" WARN [JPOX.MetaData] - No manager for annotations was found in the CLASSPATH so all annotations are ignored. ERROR [JPOX.Enhancer] - Class org.siberia.type.AudioItem not found in classpath. : ERROR [JPOX.MetaData] - The following error occurred while parsing <class> nested within Error parsing file /mnt/projects/blackdog-types/target/classes/org/blackdog/type/AudioItem.jdo : Class org.siberia.type.AudioItem not found in classpath. : javax.jdo.JDOFatalException: Class org.siberia.type.AudioItem not found in classpath. : at org.jpox.enhancer.bcel.metadata.BCELClassMetaData.<init>(BCELClassMetaData.java:113) at org.jpox.enhancer.bcel.metadata.BCELMetaDataManager.newClassObject(BCELMetaDataManager.java:78) at org.jpox.metadata.JDOMetaDataHandler.newClassObject(JDOMetaDataHandler.java:64) at org.jpox.enhancer.metadata.EnhancerJDOMetaDataHandler.newClassObject(EnhancerJDOMetaDataHandler.java:56) at org.jpox.metadata.JDOMetaDataHandler.startElement(JDOMetaDataHandler.java:215) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2740) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) at org.jpox.metadata.MetaDataParser.parseMetaDataStream(MetaDataParser.java:236) at org.jpox.metadata.MetaDataParser.parseMetaDataFile(MetaDataParser.java:162) at org.jpox.enhancer.bcel.metadata.BCELMetaDataManager.parseAndRegisterFile(BCELMetaDataManager.java:215) at org.jpox.enhancer.bcel.BCELUtils.getMetaDataForInput(BCELUtils.java:109) at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:512) ERROR [JPOX.Enhancer] - Error parsing file /mnt/projects/blackdog-types/target/classes/org/blackdog/type/AudioItem.jdo : Class org.siberia.type.AudioItem not found in classpath. : javax.jdo.JDOFatalException: Class org.siberia.type.AudioItem not found in classpath. : at org.jpox.enhancer.bcel.metadata.BCELClassMetaData.<init>(BCELClassMetaData.java:113) at org.jpox.enhancer.bcel.metadata.BCELMetaDataManager.newClassObject(BCELMetaDataManager.java:78) at org.jpox.metadata.JDOMetaDataHandler.newClassObject(JDOMetaDataHandler.java:64) at org.jpox.enhancer.metadata.EnhancerJDOMetaDataHandler.newClassObject(EnhancerJDOMetaDataHandler.java:56) at org.jpox.metadata.JDOMetaDataHandler.startElement(JDOMetaDataHandler.java:215) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:767) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2740) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) at javax.xml.parsers.SAXParser.parse(SAXParser.java:198) at org.jpox.metadata.MetaDataParser.parseMetaDataStream(MetaDataParser.java:236) at org.jpox.metadata.MetaDataParser.parseMetaDataFile(MetaDataParser.java:162) at org.jpox.enhancer.bcel.metadata.BCELMetaDataManager.parseAndRegisterFile(BCELMetaDataManager.java:215) at org.jpox.enhancer.bcel.BCELUtils.getMetaDataForInput(BCELUtils.java:109) at org.jpox.enhancer.JPOXEnhancer.main(JPOXEnhancer.java:512) JPOX Enhancer completed with success for 0 classes. Consult the log for full details
Peut-être que la façon d'appeler la tâche jpox est erronée. Voici ce que j'ai ajouté dans le pom.xml de manière à ce que la tâche d'enhancement soit appelé après la compilation des classes :
Bref, un peu paumé... quelqu'un a t-il déjà rencontré ce problème? ou avez vous déjà utilisez un autre plugin pour faire de l'enhancement de classes JDO?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jpox-maven-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>enhance</goal> </goals> </execution> </executions> </plugin>
ps : petite précision, j'utilise maven 2.0.5![]()
Partager