Hi,
Here's the patch to fix this problem. I'll adjust for other projects later
on.
Thanks,
Raymond
----- Original Message -----
From: "Jeremy Boynes" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Tuesday, July 11, 2006 7:32 PM
Subject: JAXB databinding - problem with test code leaking into output jar
The JAXB databinding attaches the jaxb plugin to the generate sources
phase and this results in the test code ending up in the output jar:
$ jar tf target/databinding-jaxb-1.0-chianti-SNAPSHOT.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/example/
com/example/ipo/
com/example/ipo/jaxb/
org/
org/apache/
org/apache/tuscany/
org/apache/tuscany/databinding/
org/apache/tuscany/databinding/jaxb/
com/example/ipo/jaxb/Address.class
com/example/ipo/jaxb/Items$Item.class
com/example/ipo/jaxb/Items.class
com/example/ipo/jaxb/ObjectFactory.class
com/example/ipo/jaxb/package-info.class
com/example/ipo/jaxb/PurchaseOrderType.class
com/example/ipo/jaxb/UKAddress.class
com/example/ipo/jaxb/USAddress.class
com/example/ipo/jaxb/USState.class
org/apache/tuscany/databinding/jaxb/JAXB2Node.class
org/apache/tuscany/databinding/jaxb/Node2JAXB.class
org/apache/tuscany/databinding/jaxb/XMLStreamReader2JAXB.class
META-INF/maven/
META-INF/maven/org.apache.tuscany.databinding/
META-INF/maven/org.apache.tuscany.databinding/databinding-jaxb/
META-INF/maven/org.apache.tuscany.databinding/databinding-jaxb/pom.xml
META-INF/maven/org.apache.tuscany.databinding/databinding-jaxb/
pom.properties
If I change the pom to attach this to the generate-test-sources phase:
$ svn diff pom.xml
Index: pom.xml
===================================================================
--- pom.xml (revision 421082)
+++ pom.xml (working copy)
@@ -100,7 +100,7 @@
<executions>
<execution>
<id>generate-jaxb</id>
- <phase>generate-sources</phase>
+ <phase>generate-test-sources</phase>
<goals>
<goal>generate</goal>
</goals>
then I get an error running the tests:
$ mvn -o clean test
[INFO]
NOTE: Maven is executing in offline mode. Any artifacts not already in
your local
repository will be inaccessible.
[INFO] Scanning for projects...
INFO] ------------------------------------------------------------------------
----
[INFO] Building Tuscany JAXB Data Binding
[INFO] task-segment: [clean, test]
INFO] ------------------------------------------------------------------------
----
[INFO] [clean:clean]
[INFO] Deleting directory /Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/target
[INFO] Deleting directory /Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/target/classes
[INFO] Deleting directory /Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/target/test-classes
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
Compiling 3 source files to /Users/jboynes/tuscany/sandbox/chianti/
sca/databinding/databinding-jaxb/target/classes
[INFO] [jaxb:generate {execution: generate-jaxb}]
[INFO] /Users/jboynes/tuscany/sandbox/chianti/sca/databinding/
databinding-jaxb/target/jaxb-source/com/example/ipo/jaxb is not found and
thus excluded from the dependency check
[INFO] Compiling file:/Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/src/test/resources/ipo.xsd
[INFO] Writing output to /Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/target/jaxb-source
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
Compiling 1 source file to /Users/jboynes/tuscany/sandbox/chianti/sca/
databinding/databinding-jaxb/target/test-classes
[INFO] [surefire:test]
[INFO] Surefire report directory: /Users/jboynes/tuscany/sandbox/
chianti/sca/databinding/databinding-jaxb/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.apache.tuscany.databinding.jaxb.JAXBTestCase
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.083 sec
<<< FAILURE!
testTransform(org.apache.tuscany.databinding.jaxb.JAXBTestCase) Time
elapsed: 0.041 sec <<< ERROR!
javax.xml.bind.JAXBException: "com.example.ipo.jaxb" doesnt contain
ObjectFactory.class or jaxb.index
at com.sun.xml.bind.v2.ContextFactory.createContext
(ContextFactory.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.xml.bind.ContextFinder.newInstance
(ContextFinder.java:132)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:286)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244)
at org.apache.tuscany.databinding.jaxb.JAXBTestCase.testTransform
(JAXBTestCase.java:48)
Results :
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 seconds
[INFO] Finished at: Tue Jul 11 19:29:45 PDT 2006
[INFO] Final Memory: 6M/15M
INFO] ------------------------------------------------------------------------
Could someone more familiar with this plugin tell me what is going wrong
and how we can avoid have the test code in the output jar?
Thanks
--
Jeremy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Index: pom.xml
===================================================================
--- pom.xml (revision 421146)
+++ pom.xml (working copy)
@@ -90,6 +90,8 @@
<filtering>true</filtering>
</testResource>
</testResources>
+
+ <testSourceDirectory>${project.build.directory}/jaxb-source</testSourceDirectory>
<plugins>
@@ -100,7 +102,7 @@
<executions>
<execution>
<id>generate-jaxb</id>
- <phase>generate-sources</phase>
+ <phase>generate-test-sources</phase>
<goals>
<goal>generate</goal>
</goals>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]