Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 357102 - Update to Spring 3.1.0.RELEASE
Summary: Update to Spring 3.1.0.RELEASE
Status: CLOSED FIXED
Alias: None
Product: Virgo
Classification: RT
Component: runtime (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 3.6.0.M01   Edit
Assignee: Chris Frost CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 378470
Blocks: 385304
  Show dependency tree
 
Reported: 2011-09-08 10:53 EDT by Jean-Pierre Bergamin CLA
Modified: 2012-09-12 13:46 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Pierre Bergamin CLA 2011-09-08 10:53:44 EDT
Build Identifier: 

There are already some libs in the wild that have Spring 3.0.6.RELEASE as dependency.

It would be nice to see the spring version 3.0.6.RELEASE bundled with virgo.

Reproducible: Always
Comment 1 Glyn Normington CLA 2011-09-12 20:52:13 EDT
We are unlikely to implement this enhancement as the approach to upgrading to 3.0.x is that users can do it themselves. Please see the FAQ.

However, let's leave this bug on the books for now and when we get towards Virgo 3.5 we can consider it (unless we have upgraded to Spring 3.1.x by then).
Comment 2 Chris Frost CLA 2012-01-18 11:57:41 EST
Upgrading to Spring 3.1.0

After some changes to the Kernel that is building with all tests passing. See branch 357102-SpringUpgrade, this needs to be merged in.

The web layer has deeper problems. The class org.springframework.web.SpringServletContainerInitializer is new in 3.1.0, does not exist in 3.0.5. When one of the integration tests tries to deploy a simple war file, it falls over with the following stack trace in the logs.

[2012-01-18 16:02:07.496] ServiceListener@2d7349d7 Bundle core_taglibs_root_context_path_0.0.0, BundleEvent STARTED 
[2012-01-18 16:02:07.496] start-signalling-2       Thread context class loader 'org.eclipse.core.runtime.internal.adaptor.ContextFinder@1fb9d335' pushed and set to 'KernelBundleClassLoader: [bundle=core_taglibs_root_context_path_0.0.0]' 
[2012-01-18 16:02:07.498] start-signalling-2       Starting web bundle 'core_taglibs_root_context_path' version '0.0.0' with context path '/'. 
[2012-01-18 16:02:07.499] start-signalling-2       Starting web bundle 'core_taglibs_root_context_path' version '0.0.0' with context path '/'. 
[2012-01-18 16:02:07.790] start-signalling-2       The ServletContentInitializer [org.springframework.web.SpringServletContainerInitializer] could not be created java.lang.ClassNotFoundException: org.springframework.web.SpringServletContainerInitializer
	at org.eclipse.gemini.web.tomcat.internal.loading.BundleWebappClassLoader.loadClass(BundleWebappClassLoader.java:306)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:247)
	at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1543)
	at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1466)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1285)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
	at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:122)
	at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:91)
	at org.eclipse.virgo.web.core.internal.WebBundleLifecycleListener.onStarted(WebBundleLifecycleListener.java:122)
	at org.eclipse.virgo.kernel.install.artifact.internal.StandardArtifactStateMonitor.onStarted(StandardArtifactStateMonitor.java:253)
	at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.asyncStartSucceeded(AbstractInstallArtifact.java:307)
	at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.access$0(AbstractInstallArtifact.java:304)
	at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact$StateMonitorSignal.signalSuccessfulCompletion(AbstractInstallArtifact.java:240)
	at org.eclipse.virgo.kernel.core.internal.BundleStartTracker$1.run(BundleStartTracker.java:143)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
Comment 3 Chris Frost CLA 2012-08-20 13:11:14 EDT
When this is done we could also remove the support for Spring Instrumented from the KernelBundleClassloader. Instrumented Spring hasn't been available for a long time and only available up to 3.0.5 if your a paying customer of SpringSource. I have also confirmed that instrumented Spring 3.0.5 is not forward compatible with Spring 3.1.x. 

If this is to be done, another bug should be raised.
Comment 4 Chris Frost CLA 2012-09-12 13:46:58 EDT
Done