cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Francesco Chicchiriccò <ilgro...@apache.org>
Subject Re: C2.2.1 block fails to start due to hidden dep to spring 3 (was Re: svn commit: r1381952)
Date Tue, 11 Sep 2012 09:19:35 GMT
On 10/09/2012 20:30, Thorsten Scherler wrote:
> [...]
> This breaks jetty:run and I am ATM not sure why. It fails like:
>
> 20:11:38.723 [main] ERROR o.s.web.context.ContextLoader - Context 
> initialization failed
> java.lang.NoClassDefFoundError: org/springframework/core/env/Environment
>     at java.lang.Class.getDeclaredConstructors0(Native Method) 
> ~[na:1.7.0_02-ea]
>     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404) 
> ~[na:1.7.0_02-ea]
>     at java.lang.Class.getConstructor0(Class.java:2714) ~[na:1.7.0_02-ea]
>     at java.lang.Class.getDeclaredConstructor(Class.java:2002) 
> ~[na:1.7.0_02-ea]
>     at 
> org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:61) ~[spring-beans-2.5.1.jar:2.5.1]

>
>     at 
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:249)

> ~[spring-web-2.5.1.jar:2.5.1]
>     at 
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)

> ~[spring-web-2.5.1.jar:2.5.1]
>     at 
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)

> [spring-web-2.5.1.jar:2.5.1]
>     at 
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingListener.invoke(ReloadingListener.java:265)

> [cocoon-rcl-webapp-wrapper-1.0.2.jar:1.0.2]
>     at 
> org.apache.cocoon.tools.rcl.wrapper.servlet.ReloadingListener.contextInitialized(ReloadingListener.java:150)

> [cocoon-rcl-webapp-wrapper-1.0.2.jar:1.0.2]
>     at 
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) 
> [jetty-6.1.25.jar:6.1.25
>
> You can reproduce it as follows.
>
> cd src/apache/cocoon2.2/
> svn up
> mvn clean install
> mkdir tmp
> mvn archetype:generate -DarchetypeGroupId=org.apache.cocoon 
> -DarchetypeArtifactId=cocoon-22-archetype-block 
> -DarchetypeVersion=1.1.0-SNAPSHOT -DgroupId=my.groupid 
> -DartifactId=2233 -DarchetypeRepository=local
> cd 2233
> # make sure that the pom has
>  <dependency>
>       <groupId>org.apache.cocoon</groupId>
>        <artifactId>cocoon-core</artifactId>
>        <version>2.2.1-SNAPSHOT</version>
>     </dependency>
> mvn clean install jetty:run
>
> then you will get above error in the console. :(
>
> any idea why there is requested a class which is in spring 3.1 (which 
> is not declared as dep) but cannot be found in the 2.5.x what we are 
> using in 2.2.
>
> Further I tested before I committed and there it was working (at least 
> I think it did).
>
> Anyway I tested now on another box to make sure and it is failing as 
> described above.
>
> Any ideas very welcome!

Hi Thorsten,
this is happening because the generated project is using the latest 
version of the cocoon-maven-plugin (1.0.2) which in turn is enforcing 
the latest versions of cocoon-rcl-webapp-wrapper (1.0.2) and 
cocoon-rcl-spring-reloader (1.0.2); these are in turn dependent on 
Spring 3.1.

Following the procedure reported above, I've changed (in the generated 
pom.xml):

<plugin>
         <groupId>org.apache.cocoon</groupId>
         <artifactId>cocoon-maven-plugin</artifactId>
         <version>1.0.2</version>
         <executions>
           <execution>
             <id>prepare</id>
             <phase>compile</phase>
             <goals>
               <goal>prepare</goal>
             </goals>
           </execution>
         </executions>
       </plugin>

into

<plugin>
         <groupId>org.apache.cocoon</groupId>
         <artifactId>cocoon-maven-plugin</artifactId>
         <version>1.0.0</version>
<dependencies>
     <!-- RCL -->
     <dependency>
       <groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-rcl-spring-reloader</artifactId>
       <version>1.0.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.cocoon</groupId>
       <artifactId>cocoon-rcl-webapp-wrapper</artifactId>
       <version>1.0.0</version>
     </dependency>
</dependencies>
         <executions>
           <execution>
             <id>prepare</id>
             <phase>compile</phase>
             <goals>
               <goal>prepare</goal>
             </goals>
           </execution>
         </executions>
       </plugin>

and now it works.

I'd suggest to make this changes to archetype resources's pom.xml.

Moreover, consider that when issuing 'mvn clean deploy' instead of 'mvn 
clean install', you will also upload the SNAPSHOT artifacts to ASF maven 
repository (Nexus): since 2.2.X does not have a configured Jenkins 
instance for this (like as C3), you still need to do this manually when 
you want to publish updated SNAPSHOT artifacts.

Regards.

-- 
Francesco Chicchiriccò

ASF Member, Apache Cocoon PMC and Apache Syncope PPMC Member
http://people.apache.org/~ilgrosso/


Mime
View raw message