You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2014/12/20 14:27:33 UTC

karaf git commit: [KARAF-3228] Add Spring 4.1.2.RELEASE_1 features

Repository: karaf
Updated Branches:
  refs/heads/karaf-3.0.x d846cdf9a -> f455dd3d3


[KARAF-3228] Add Spring 4.1.2.RELEASE_1 features


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/f455dd3d
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/f455dd3d
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/f455dd3d

Branch: refs/heads/karaf-3.0.x
Commit: f455dd3d347469bc5618e30ae2a6eb861c070a30
Parents: d846cdf
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Sat Dec 20 14:27:02 2014 +0100
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Sat Dec 20 14:27:02 2014 +0100

----------------------------------------------------------------------
 .../spring/src/main/feature/feature.xml         |  73 ++++++++
 itests/pom.xml                                  |   2 +
 .../apache/karaf/itests/KarafTestSupport.java   |   3 +-
 .../itests/features/Spring31FeaturesTest.java   |  89 +++++++++
 .../itests/features/Spring32FeaturesTest.java   |  89 +++++++++
 .../itests/features/Spring40FeaturesTest.java   |  89 +++++++++
 .../itests/features/Spring41FeaturesTest.java   |  89 +++++++++
 .../itests/features/SpringFeaturesTest.java     | 186 -------------------
 pom.xml                                         |   1 +
 9 files changed, 434 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/assemblies/features/spring/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assemblies/features/spring/src/main/feature/feature.xml b/assemblies/features/spring/src/main/feature/feature.xml
index e4688e1..bee12a3 100644
--- a/assemblies/features/spring/src/main/feature/feature.xml
+++ b/assemblies/features/spring/src/main/feature/feature.xml
@@ -267,6 +267,79 @@
         <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/${spring40.version}</bundle>
     </feature>
 
+    <!-- Spring 4.1.x support -->
+
+    <feature name="spring" description="Spring 4.1.x support" version="${spring41.version}" resolver="(obr)">
+        <bundle dependency="true" start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-core/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-expression/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-beans/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aop/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-context-support/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/${project.version}</bundle>
+    </feature>
+
+    <feature name="spring-aspects" description="Spring 4.1.x AOP support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-aspects/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-instrument" description="Spring 4.1.x Instrument support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-instrument/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-jdbc" description="Spring 4.1.x JDBC support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring-tx</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jdbc/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-jms" description="Spring 4.1.x JMS support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring-tx</feature>
+        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo.jta-spec.version}</bundle>
+        <bundle start-level="10">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo.jms-spec.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-jms/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-test" description="Spring 4.1.x Test support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-test/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-orm" description="Spring 4.1.x ORM support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring-jdbc</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-orm/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-oxm" description="Spring 4.1.x OXM support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-oxm/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-tx" description="Spring 4.1.x Transaction (TX) support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-tx/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-web" description="Spring 4.1.x Web support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring</feature>
+        <feature>http</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web/${spring41.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-web-portlet" description="Spring 4.1.x Web Portlet support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring-web</feature>
+        <bundle dependency="true" start-level="30">mvn:javax.portlet/portlet-api/${portlet-api.version}</bundle>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-webmvc-portlet/${spring41.version}</bundle>
+    </feature>
+
+    <feature name="spring-websocket" description="Spring 4.1.x WebSocket support" version="${spring41.version}" resolver="(obr)">
+        <feature version="[${spring41.version},4.2)">spring-web</feature>
+        <bundle start-level="30">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-websocket/${spring41.version}</bundle>
+    </feature>
+
     <!-- Spring Security support -->
 
     <feature name="spring-security" description="Spring Security 3.1.x support" version="${spring.security31.version}" resolver="(obr)">

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/pom.xml
----------------------------------------------------------------------
diff --git a/itests/pom.xml b/itests/pom.xml
index 863fd6e..6d69b93 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -114,6 +114,7 @@
                         <spring31.version>${spring31.version}</spring31.version>
                         <spring32.version>${spring32.version}</spring32.version>
                         <spring40.version>${spring40.version}</spring40.version>
+                        <spring41.version>${spring41.version}</spring41.version>
 					</systemPropertyVariables>
 				</configuration>
 			</plugin>
@@ -141,6 +142,7 @@
                                 <spring31.version>${spring31.version}</spring31.version>
                                 <spring32.version>${spring32.version}</spring32.version>
                                 <spring40.version>${spring40.version}</spring40.version>
+                                <spring41.version>${spring41.version}</spring41.version>
                     		</systemPropertyVariables>
                         </configuration>
                     </plugin>

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java b/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
index 7eb0aa8..d555947 100644
--- a/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
+++ b/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
@@ -130,7 +130,8 @@ public class KarafTestSupport {
             editConfigurationFilePut("etc/org.apache.karaf.management.cfg", "rmiServerPort", RMI_SERVER_PORT),
             editConfigurationFilePut("etc/system.properties", "spring31.version", System.getProperty("spring31.version")),
             editConfigurationFilePut("etc/system.properties", "spring32.version", System.getProperty("spring32.version")),
-            editConfigurationFilePut("etc/system.properties", "spring40.version", System.getProperty("spring40.version"))
+            editConfigurationFilePut("etc/system.properties", "spring40.version", System.getProperty("spring40.version")),
+            editConfigurationFilePut("etc/system.properties", "spring41.version", System.getProperty("spring41.version"))
         };
     }
 

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/features/Spring31FeaturesTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/Spring31FeaturesTest.java b/itests/src/test/java/org/apache/karaf/itests/features/Spring31FeaturesTest.java
new file mode 100644
index 0000000..20c37de
--- /dev/null
+++ b/itests/src/test/java/org/apache/karaf/itests/features/Spring31FeaturesTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.itests.features;
+
+import org.apache.karaf.itests.KarafTestSupport;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class Spring31FeaturesTest extends KarafTestSupport {
+
+    // Spring 3.1.x features test
+
+    @Test
+    public void installSpringFeature() throws Exception {
+        installAssertAndUninstallFeature("spring", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringAspectsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringInstrumentFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringJdbcFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringJmsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringStrutsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-struts", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringTestFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-test", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringOrmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringOxmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringTxFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringWebFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web", System.getProperty("spring31.version"));
+    }
+
+    @Test
+    public void installSpringWebPortletFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring31.version"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/features/Spring32FeaturesTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/Spring32FeaturesTest.java b/itests/src/test/java/org/apache/karaf/itests/features/Spring32FeaturesTest.java
new file mode 100644
index 0000000..4fd55d8
--- /dev/null
+++ b/itests/src/test/java/org/apache/karaf/itests/features/Spring32FeaturesTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.itests.features;
+
+import org.apache.karaf.itests.KarafTestSupport;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class Spring32FeaturesTest extends KarafTestSupport {
+
+    // Spring 3.2.x features test
+
+    @Test
+    public void installSpringFeature() throws Exception {
+        installAssertAndUninstallFeature("spring", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringAspectsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringInstrumentFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringJdbcFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringJmsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringStrutsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-struts", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringTestFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-test", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringOrmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringOxmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringTxFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringWebFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web", System.getProperty("spring32.version"));
+    }
+
+    @Test
+    public void installSpringWebPortletFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring32.version"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java b/itests/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
new file mode 100644
index 0000000..6c52d25
--- /dev/null
+++ b/itests/src/test/java/org/apache/karaf/itests/features/Spring40FeaturesTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.itests.features;
+
+import org.apache.karaf.itests.KarafTestSupport;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class Spring40FeaturesTest extends KarafTestSupport {
+
+    // Spring 4.0.x features test
+
+    @Test
+    public void installSpringFeature() throws Exception {
+        installAssertAndUninstallFeature("spring", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringAspectsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringInstrumentFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringJdbcFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringJmsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringTestFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-test", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringOrmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringOxmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringTxFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringWebFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringWebPortletFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring40.version"));
+    }
+
+    @Test
+    public void installSpringWebSocketFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-websocket", System.getProperty("spring40.version"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java b/itests/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
new file mode 100644
index 0000000..5855104
--- /dev/null
+++ b/itests/src/test/java/org/apache/karaf/itests/features/Spring41FeaturesTest.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.itests.features;
+
+import org.apache.karaf.itests.KarafTestSupport;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class Spring41FeaturesTest extends KarafTestSupport {
+
+    // Spring 4.1.x features test
+
+    @Test
+    public void installSpringFeature() throws Exception {
+        installAssertAndUninstallFeature("spring", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringAspectsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringInstrumentFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringJdbcFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringJmsFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringTestFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-test", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringOrmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringOxmFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringTxFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringWebFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringWebPortletFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring41.version"));
+    }
+
+    @Test
+    public void installSpringWebSocketFeature() throws Exception {
+        installAssertAndUninstallFeature("spring-websocket", System.getProperty("spring41.version"));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/itests/src/test/java/org/apache/karaf/itests/features/SpringFeaturesTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/apache/karaf/itests/features/SpringFeaturesTest.java b/itests/src/test/java/org/apache/karaf/itests/features/SpringFeaturesTest.java
index 5611a7d..d16e220 100644
--- a/itests/src/test/java/org/apache/karaf/itests/features/SpringFeaturesTest.java
+++ b/itests/src/test/java/org/apache/karaf/itests/features/SpringFeaturesTest.java
@@ -36,192 +36,6 @@ public class SpringFeaturesTest extends KarafTestSupport {
         installAssertAndUninstallFeature("spring-dm-web");
     }
 
-    // Spring 3.1.x features test
-
-    @Test
-    public void installSpring31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringAspects31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringInstrument31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringJdbc31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringJms31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringStruts31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-struts", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringTest31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-test", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringOrm31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringOxm31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringTx31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringWeb31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", System.getProperty("spring31.version"));
-    }
-
-    @Test
-    public void installSpringWebPortlet31Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring31.version"));
-    }
-    
-    // Spring 3.2.x features test
-
-    @Test
-    public void installSpring32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringAspects32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringInstrument32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringJdbc32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringJms32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringStruts32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-struts", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringTest32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-test", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringOrm32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringOxm32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringTx32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringWeb32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", System.getProperty("spring32.version"));
-    }
-
-    @Test
-    public void installSpringWebPortlet32Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring32.version"));
-    }    
-
-    // Spring 4.0.x features test
-
-    @Test
-    public void installSpring40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringAspects40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-aspects", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringInstrument40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-instrument", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringJdbc40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jdbc", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringJms40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-jms", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringTest40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-test", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringOrm40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-orm", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringOxm40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-oxm", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringTx40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-tx", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringWeb40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringWebPortlet40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-web-portlet", System.getProperty("spring40.version"));
-    }
-
-    @Test
-    public void installSpringWebSocket40Feature() throws Exception {
-        installAssertAndUninstallFeature("spring-websocket", System.getProperty("spring40.version"));
-    }
-
     // Spring security
 
     @Test

http://git-wip-us.apache.org/repos/asf/karaf/blob/f455dd3d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 5e9bcda..cc51faa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -237,6 +237,7 @@
         <spring31.version>3.1.4.RELEASE</spring31.version>
         <spring32.version>3.2.11.RELEASE_1</spring32.version>
         <spring40.version>4.0.7.RELEASE_1</spring40.version>
+        <spring41.version>4.1.2.RELEASE_1</spring41.version>
         <spring.security31.version>3.1.4.RELEASE</spring.security31.version>
 
         <directory-version>2.0.0-M16</directory-version>