On 10/07/2013 08:27 PM, Woonsan Ko wrote:
Hi,
I've met a weird build error from the fresh JS-2 trunk today (Maven3/JDK1.6):
...
INFO] Jetspeed-2 Portal Site ............................ SUCCESS [0.973s]
[INFO] Jetspeed-2 Portal Components ...................... FAILURE [2.046s]
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
...
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile)
on project jetspeed-portal: Compilation failure: Compilation failure:
[ERROR]
/Users/woonsan/workspace/portal/jetspeed-2-TRUNK/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/JaxrsServiceValve.java:[55,23]
cannot find symbol
[ERROR] symbol : method invokeStaticMethod(java.lang.Class<capture#657 of
?>,java.lang.String,java.lang.Object[])
[ERROR] location: class org.apache.commons.beanutils.MethodUtils
...
So, I ran `mvn dependency:tree -Dincludes=commons-beanutils' in the
components/jetspeed-portal module folder:
[INFO] org.apache.portals.jetspeed-2:jetspeed-portal:jar:2.2.3-SNAPSHOT
[INFO] +-
org.apache.portals.jetspeed-2:jetspeed-registry:jar:2.2.3-SNAPSHOT:compile
[INFO] | \-
org.apache.portals.jetspeed-2:jetspeed-serializer:jar:2.2.3-SNAPSHOT:compile
[INFO] | \- org.apache.ddlutils:ddlutils:jar:1.0:compile
[INFO] | \- commons-betwixt:commons-betwixt:jar:0.8:compile
[INFO] | \- commons-beanutils:commons-beanutils-core:jar:1.7.0:compile
[INFO] \- org.apache.velocity:velocity-tools:jar:1.3:compile
[INFO] \- commons-beanutils:commons-beanutils:jar:1.8.0:compile
The above clearly shows it depends on two different versions of
commons-beanutils. The API, MethodUtils#invokeStaticMethod() [1]
has been introduced since 1.8.I don't know why/when this problem started
staying here, but I think we should add the explicit dependencies in
components/jetspeed-portal/pom.xml like the following:
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils-core</artifactId>
</dependency>
In my local testing, this solves the problem. So I'll add commit it soon.
Please let me know if there's anything I missed.
We should only need/depend on commons-beanutils artifact, not ALSO on
commons-beanutils-core. The first already contains 'everything' while the second
one is a trimmed down version excluding commons-beanutils-bean-collections [1].
So I would suggest that the transitive dependency on commons-beanutils-core
should be excluded from ddlutils in jetspeed-serializer (and the
commons-beanutils then should be explicitly added as an dependency there as well).
I also would run a full mvn:dependency:tree on the whole of modules, to make
sure no other component is (transitively) depending on commons-beanutils-core
either.
Ate
[1]
http://commons.apache.org/proper/commons-beanutils/index.html#BeanUtils_Core_And_Modules
Thanks!
Regards,
Woonsan
[1]
http://commons.apache.org/proper/commons-beanutils/javadocs/v1.8.3/apidocs/org/apache/commons/beanutils/MethodUtils.html#invokeStaticMethod%28java.lang.Class,%20java.lang.String,%20java.lang.Object[]%29
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org