Hi Ate, Thanks for the suggestion. That makes sense. So, I think I should do the following: - Add exclusion(s) on commons-beanutils-core after looking into all transitive dependencies. - Add commons-beanutils dependency explicitly wherever used. - Check all for any problematic transitive dependencies.
I'll create an issue for this and fix it soon. Cheers, Woonsan >________________________________ > From: Ate Douma <[email protected]> >To: Jetspeed Developers List <[email protected]> >Sent: Tuesday, October 8, 2013 3:55 AM >Subject: Re: Build error in trunk due to conflicting commons-beanutils >depenencies > > >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: [email protected] >For additional commands, e-mail: [email protected] > > > > >
