Spring DM与Spring 4的兼容性*

Spring DM与Spring 4的兼容性*,spring,osgi,Spring,Osgi,我继承的基于OSGi的应用程序使用org.springframework.OSGi.extender捆绑包版本1.2.1。 目前,我正在使用Java1.7和Spring2.5.6 我最近在我的机器上安装了Java 8,由于以下错误,org.springframework.osgi.extender包不再启动: org.osgi.framework.BundleException: Activator start error in bundle org.springframework.osgi.e

我继承的基于OSGi的应用程序使用org.springframework.OSGi.extender捆绑包版本1.2.1。 目前,我正在使用Java1.7和Spring2.5.6

我最近在我的机器上安装了Java 8,由于以下错误,org.springframework.osgi.extender包不再启动:

org.osgi.framework.BundleException: Activator start error in bundle org.springframework.osgi.extender [21].
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
        at org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
        at org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:249)
        at org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Cannot create ConcurrentHashMap - neither JDK 1.5 nor backport-concurrent available on the classpath
        at org.springframework.core.CollectionFactory.createConcurrentMap(CollectionFactory.java:229)
        at org.springframework.osgi.extender.internal.activator.ContextLoaderListener.<init>(ContextLoaderListener.java:332)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141)
        ... 6 more
java.lang.IllegalStateException: Cannot create ConcurrentHashMap - neither JDK 1.5 nor backport-concurrent available on the classpath
org.osgi.framework.BundleException:bundle org.springframework.osgi.extender中的激活器启动错误[21]。
位于org.apache.felix.framework.felix.activateBundle(felix.java:2196)
位于org.apache.felix.framework.felix.startBundle(felix.java:2064)
位于org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
位于org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
位于org.apache.felix.shell.impl.Activator$shellserviceinpl.executeCommand(Activator.java:249)
位于org.apache.felix.shell.tui.Activator$ShellTuiRunnable.run(Activator.java:184)
位于java.lang.Thread.run(未知源)
原因:java.lang.IllegalStateException:无法创建ConcurrentHashMap-类路径上既没有JDK 1.5也没有backport concurrent
位于org.springframework.core.CollectionFactory.createConcurrentMap(CollectionFactory.java:229)
位于org.springframework.osgi.extender.internal.activator.ContextLoaderListener。(ContextLoaderListener.java:332)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于java.lang.Class.newInstance(未知源)
位于org.apache.felix.framework.felix.createBundleActivator(felix.java:4336)
位于org.apache.felix.framework.felix.activateBundle(felix.java:2141)
... 还有6个
java.lang.IllegalStateException:无法创建ConcurrentHashMap-类路径上既没有JDK 1.5也没有backport concurrent
我本来打算将Spring升级到4.0.3,但我注意到org.springframework.core.CollectionFactory.createConcurrentMap()方法已被弃用并删除

Spring DM是否会升级为与Spring 4配合使用。*

Spring DM是否会升级为与Spring 4配合使用。*

没有。Spring从4.0开始停止支持OSGi,这是一个正确的决定。Spring的概念不适合OSGi


请参见

Spring DM移动,现在是双子座蓝图:

参考文献:

2009年末,作为双子座项目提案的一员,SpringSource 参与Spring动态模块(也称为Spring OSGi)项目 到Eclipse基金会。Spring DM v2代码库已移动到 org及其问题跟踪者和论坛。这个项目变得非常成功 Apache许可证和EPL下的双重许可。而这个名字 更改后,代码及其功能保持不变。现有的 SpringDM应用程序可以很容易地迁移到EclipseGemini 迁移指南中提到的蓝图。而项目名称 已经发生了变化(超越双子座蓝图),并做出了重大努力 在项目文件和资源中反映了这一点, 可能有我们错过的地方;如果你找到了,请 向我们报告


你可以在Spring3.2中使用双子座蓝图,没有对4.0的支持,据我所知,双子座蓝图的2.0版本还没有计划

正如在以前的帖子中提到的,Spring DM现在是一个Eclipse项目,双子座蓝图:


下面是一个相关的论坛帖子,它表明Spring4支持正在进行中:

可以在此处下载快照:

如果您正在寻找Spring 4 OSGi捆绑包,可以在此处继续下载:

我不同意“Spring的概念不适合OSGi”。而且,我认为spring结束支持是一个不合理的“管理决策”。