Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.2.2
-
None
-
None
-
Java 1.6, Maven 3.0.3
Description
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 with above changes, this solves the problem.