You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/04/30 20:04:58 UTC

[6/7] git commit: [KARAF-2888] Make sure Feature#getId() is normalized correctly

[KARAF-2888] Make sure Feature#getId() is normalized correctly


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

Branch: refs/heads/master
Commit: 57b609d8e425eed55ec29082fdb09f788066f682
Parents: 9e2ada3
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Wed Apr 30 16:46:38 2014 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Wed Apr 30 20:04:27 2014 +0200

----------------------------------------------------------------------
 .../apache/karaf/features/internal/model/Feature.java    | 11 ++++++++---
 .../features/internal/service/FeaturesServiceImpl.java   |  5 +++--
 .../test/java/org/apache/karaf/features/FeatureTest.java |  4 ++--
 .../internal/service/FeaturesServiceImplTest.java        |  2 +-
 .../internal/service/FeaturesValidationTest.java         |  2 ++
 .../org/apache/karaf/features/internal/service/f07.xml   |  2 +-
 6 files changed, 17 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
index 154e89a..6cf3820 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/model/Feature.java
@@ -26,8 +26,12 @@ import java.util.regex.Pattern;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
+import org.apache.felix.utils.version.VersionCleaner;
+import org.apache.felix.utils.version.VersionTable;
+
 
 /**
  * Definition of the Feature.
@@ -81,7 +85,7 @@ public class Feature extends Content implements org.apache.karaf.features.Featur
     protected String details;
     @XmlAttribute(required = true)
     protected String name;
-    @XmlAttribute
+    @XmlTransient
     protected String version;
     @XmlAttribute
     protected String description;
@@ -105,7 +109,7 @@ public class Feature extends Content implements org.apache.karaf.features.Featur
 
     public Feature(String name, String version) {
         this.name = name;
-        this.version = version;
+        this.version = VersionCleaner.clean(version);
     }
 
 
@@ -167,8 +171,9 @@ public class Feature extends Content implements org.apache.karaf.features.Featur
      * @param value allowed object is
      *              {@link String }
      */
+    @XmlAttribute
     public void setVersion(String value) {
-        this.version = value;
+        this.version = VersionCleaner.clean(value);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
index 099d175..589b719 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/service/FeaturesServiceImpl.java
@@ -39,6 +39,7 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
+import org.apache.felix.utils.version.VersionCleaner;
 import org.apache.felix.utils.version.VersionRange;
 import org.apache.felix.utils.version.VersionTable;
 import org.apache.karaf.features.Feature;
@@ -799,7 +800,7 @@ public class FeaturesServiceImpl implements FeaturesService, Deployer.DeployCall
         int idx = feature.indexOf("/");
         String name = feature.substring(0, idx);
         String version = feature.substring(idx + 1);
-        return name + "/" + VersionTable.getVersion(version).toString();
+        return name + "/" + VersionCleaner.clean(version);
     }
 
     /**
@@ -856,7 +857,7 @@ public class FeaturesServiceImpl implements FeaturesService, Deployer.DeployCall
         dstate.features = new HashMap<>();
         for (Map<String, Feature> m : getFeatures().values()) {
             for (Feature feature : m.values()) {
-                String id = feature.getName() + "/" + VersionTable.getVersion(feature.getVersion());
+                String id = feature.getId();
                 dstate.features.put(id, feature);
             }
         }

http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java b/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
index b7d4c27..33debdf 100644
--- a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
@@ -21,9 +21,9 @@ import junit.framework.TestCase;
 public class FeatureTest extends TestCase {
 	
 	public void testValueOf() {
-		Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + "version");
+		Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name/1.0.0");
 		assertEquals(feature.getName(), "name");
-		assertEquals(feature.getVersion(), "version");
+		assertEquals(feature.getVersion(), "1.0.0");
 		feature = org.apache.karaf.features.internal.model.Feature.valueOf("name");
 		assertEquals(feature.getName(), "name");
 		assertEquals(feature.getVersion(), org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);

http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
index 7f1f358..405a7e9 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesServiceImplTest.java
@@ -92,7 +92,7 @@ public class FeaturesServiceImplTest extends TestBase {
             }
         };
         assertNotNull(impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION));
-        assertSame("2.0.0", impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION).getVersion());
+        assertEquals("2.0.0", impl.getFeature("transaction", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION).getVersion());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesValidationTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesValidationTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesValidationTest.java
index 9e33ee3..8a0fbca 100644
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesValidationTest.java
+++ b/features/core/src/test/java/org/apache/karaf/features/internal/service/FeaturesValidationTest.java
@@ -24,6 +24,7 @@ import org.apache.karaf.features.internal.model.Features;
 import org.apache.karaf.features.internal.model.JaxbUtil;
 import org.junit.Test;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
@@ -97,6 +98,7 @@ public class FeaturesValidationTest {
         URL url = getClass().getResource("f07.xml");
         Features features = JaxbUtil.unmarshal(url.toExternalForm(), true);
         assertNotNull(features);
+        assertEquals("2.5.6.SEC02", features.getFeature().get(0).getVersion());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/karaf/blob/57b609d8/features/core/src/test/resources/org/apache/karaf/features/internal/service/f07.xml
----------------------------------------------------------------------
diff --git a/features/core/src/test/resources/org/apache/karaf/features/internal/service/f07.xml b/features/core/src/test/resources/org/apache/karaf/features/internal/service/f07.xml
index 354ba86..d1a5745 100644
--- a/features/core/src/test/resources/org/apache/karaf/features/internal/service/f07.xml
+++ b/features/core/src/test/resources/org/apache/karaf/features/internal/service/f07.xml
@@ -16,7 +16,7 @@
     limitations under the License.
 -->
 <features name="karaf" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0">
-    <feature name="spring" version="2.5.6.SEC02">
+    <feature name="spring" version="2.5.6-SEC02">
         <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/1.0_4</bundle>
         <bundle>mvn:org.springframework/spring-core/2.5.6.SEC02</bundle>
         <bundle>mvn:org.springframework/spring-beans/2.5.6.SEC02</bundle>