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

Reply via email to