Author: cziegeler
Date: Wed Oct 21 05:47:52 2015
New Revision: 1709720

URL: http://svn.apache.org/viewvc?rev=1709720&view=rev
Log:
SLING-5148 : Support OSGi Subsystems in the Sling Provisioning model.

Added:
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
   (with props)
Modified:
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Feature.java
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
    
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
    
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/FeatureTest.java
    
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelProcessorTest.java
    
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelUtilityTest.java
    
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Feature.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Feature.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Feature.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/Feature.java
 Wed Oct 21 05:47:52 2015
@@ -32,43 +32,11 @@ public class Feature
     extends Commentable
     implements Comparable<Feature> {
 
-    /**
-     * The feature type
-     * @since 1.4.0
-     */
-    public enum Type {
-        PLAIN("plain"),
-        SUBSYSTEM_FEATURE("osgi.subsystem.feature"),
-        SUBSYSTEM_APPLICATION("osgi.subsystem.application"),
-        SUBSYSTEM_COMPOSITE("osgi.subsystem.composite");
-
-        private final String textRepresentation;
-
-        private Type(final String textRep) {
-            textRepresentation = textRep;
-        }
-
-        public String getTextRepresentation() {
-            return textRepresentation;
-        }
-
-        public static Type fromTextRepresentation(final String textRep) {
-            if (textRep == null)
-                return PLAIN;
-
-            for (final Type t : values()) {
-                if (t.getTextRepresentation().equals(textRep))
-                    return t;
-            }
-            return null;
-        }
-    }
-
     /** All run modes. */
     private final List<RunMode> runModes = new ArrayList<RunMode>();
 
     /** The type of feature */
-    private volatile Type type = Type.PLAIN;
+    private volatile String type = FeatureTypes.PLAIN;
 
     /** Variables. */
     private final KeyValueMap<String> variables = new KeyValueMap<String>();
@@ -156,7 +124,7 @@ public class Feature
      * @return The feature type.
      * @since 1.4.0
      */
-    public Type getType() {
+    public String getType() {
         return type;
     }
 
@@ -165,8 +133,8 @@ public class Feature
      * @param t The new type
      * @since 1.4.0
      */
-    public void setType(final Type t) {
-        type = ( t == null ? Type.PLAIN : t);
+    public void setType(final String t) {
+        type = ( t == null ? FeatureTypes.PLAIN : t);
     }
 
     /**
@@ -213,7 +181,7 @@ public class Feature
     public String toString() {
         return "Feature [runModes=" + runModes + ", variables=" + variables
                 + ", name=" + name
-                + ( type != Type.PLAIN ? ", type=" + type : "" )
+                + ( FeatureTypes.PLAIN.equals(this.type) ? "" : ", type=" + 
type )
                 + ( additionalSections.isEmpty() ? "" : ", 
additionalSections=" + this.additionalSections)
                 + ( this.getLocation() != null ? ", location=" + 
this.getLocation() : "")
                 + "]";

Added: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java?rev=1709720&view=auto
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
 (added)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
 Wed Oct 21 05:47:52 2015
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You 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.sling.provisioning.model;
+
+/**
+ * Constants for common feature types.
+ * @since 1.4.0
+ */
+public abstract class FeatureTypes {
+
+    public static final String PLAIN = "plain";
+    public static final String SUBSYSTEM_FEATURE = "osgi.subsystem.feature";
+    public static final String SUBSYSTEM_APPLICATION = 
"osgi.subsystem.application";
+    public static final String SUBSYSTEM_COMPOSITE = 
"osgi.subsystem.composite";
+
+}

Propchange: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/FeatureTypes.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
 Wed Oct 21 05:47:52 2015
@@ -196,7 +196,7 @@ public class ModelReader {
                                        throw new IOException(exceptionPrefix + 
"Duplicate feature in line " + this.lineNumberReader.getLineNumber() + ": " + 
line);
                                    }
                                    this.feature = 
model.getOrCreateFeature(name);
-                                   
this.feature.setType(Feature.Type.fromTextRepresentation(parameters.get("type")));
+                                   
this.feature.setType(parameters.get("type"));
                                    this.init(this.feature);
                                    this.runMode = null;
                                    this.artifactGroup = null;

Modified: 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelWriter.java
 Wed Oct 21 05:47:52 2015
@@ -30,6 +30,7 @@ import org.apache.sling.provisioning.mod
 import org.apache.sling.provisioning.model.Commentable;
 import org.apache.sling.provisioning.model.Configuration;
 import org.apache.sling.provisioning.model.Feature;
+import org.apache.sling.provisioning.model.FeatureTypes;
 import org.apache.sling.provisioning.model.Model;
 import org.apache.sling.provisioning.model.ModelConstants;
 import org.apache.sling.provisioning.model.RunMode;
@@ -88,9 +89,9 @@ public class ModelWriter {
             writeComment(pw, feature);
             pw.print("[feature name=");
             pw.print(feature.getName());
-            if (feature.getType() != Feature.Type.PLAIN) {
+            if (! FeatureTypes.PLAIN.equals(feature.getType()) ) {
                 pw.print(" type=");
-                pw.print(feature.getType().getTextRepresentation());
+                pw.print(feature.getType());
             }
             pw.println("]");
             pw.println();

Modified: 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/FeatureTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/FeatureTest.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/FeatureTest.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/FeatureTest.java
 Wed Oct 21 05:47:52 2015
@@ -16,35 +16,18 @@
  */
 package org.apache.sling.provisioning.model;
 
-import org.junit.Test;
-
 import static org.junit.Assert.assertEquals;
 
-public class FeatureTest {
-    @Test
-    public void testTypeEnum() {
-        assertEquals(Feature.Type.SUBSYSTEM_APPLICATION,
-                
Feature.Type.fromTextRepresentation("osgi.subsystem.application"));
-        assertEquals(Feature.Type.SUBSYSTEM_COMPOSITE,
-                
Feature.Type.fromTextRepresentation("osgi.subsystem.composite"));
-        assertEquals(Feature.Type.SUBSYSTEM_FEATURE,
-                Feature.Type.fromTextRepresentation("osgi.subsystem.feature"));
-        assertEquals(Feature.Type.PLAIN, 
Feature.Type.fromTextRepresentation(null));
+import org.junit.Test;
 
-        assertEquals("osgi.subsystem.application",
-                Feature.Type.SUBSYSTEM_APPLICATION.getTextRepresentation());
-        assertEquals("osgi.subsystem.composite",
-                Feature.Type.SUBSYSTEM_COMPOSITE.getTextRepresentation());
-        assertEquals("osgi.subsystem.feature",
-                Feature.Type.SUBSYSTEM_FEATURE.getTextRepresentation());
-    }
+public class FeatureTest {
 
     @Test
     public void testFeatureType() {
         Feature f = new Feature("blah");
-        assertEquals(Feature.Type.PLAIN, f.getType());
+        assertEquals(FeatureTypes.PLAIN, f.getType());
 
-        f.setType(Feature.Type.SUBSYSTEM_APPLICATION);
-        assertEquals(Feature.Type.SUBSYSTEM_APPLICATION, f.getType());
+        f.setType(FeatureTypes.SUBSYSTEM_APPLICATION);
+        assertEquals(FeatureTypes.SUBSYSTEM_APPLICATION, f.getType());
     }
 }

Modified: 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelProcessorTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelProcessorTest.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelProcessorTest.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelProcessorTest.java
 Wed Oct 21 05:47:52 2015
@@ -18,15 +18,15 @@
  */
 package org.apache.sling.provisioning.model;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
 import java.util.Enumeration;
 import java.util.Map.Entry;
 
 import org.junit.Before;
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
 public class ModelProcessorTest {
 
     private Model testModel;
@@ -40,7 +40,7 @@ public class ModelProcessorTest {
         Feature feature1 = testModel.getOrCreateFeature("feature1");
         feature1.setLocation("LocF1");
         feature1.setComment("ComF1");
-        feature1.setType(Feature.Type.SUBSYSTEM_COMPOSITE);
+        feature1.setType(FeatureTypes.SUBSYSTEM_COMPOSITE);
         feature1.getVariables().setLocation("LocFV1");
         feature1.getVariables().setComment("ComFV1");
         feature1.getVariables().put("k1", "v1");
@@ -96,7 +96,7 @@ public class ModelProcessorTest {
         assertNotNull(feature1);
         assertEquals("LocF1", feature1.getLocation());
         assertEquals("ComF1", feature1.getComment());
-        assertEquals(Feature.Type.SUBSYSTEM_COMPOSITE, feature1.getType());
+        assertEquals(FeatureTypes.SUBSYSTEM_COMPOSITE, feature1.getType());
         assertEquals("LocFV1", feature1.getVariables().getLocation());
         assertEquals("ComFV1", feature1.getVariables().getComment());
         assertEquals("#v1", feature1.getVariables().get("k1"));

Modified: 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelUtilityTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelUtilityTest.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelUtilityTest.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/ModelUtilityTest.java
 Wed Oct 21 05:47:52 2015
@@ -16,16 +16,16 @@
  */
 package org.apache.sling.provisioning.model;
 
-import java.util.List;
-
-import org.junit.Test;
-
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import java.util.List;
+
+import org.junit.Test;
+
 public class ModelUtilityTest {
 
     @Test public void mergeArtifactsTest() throws Exception {
@@ -41,7 +41,7 @@ public class ModelUtilityTest {
         final List<Artifact> list = 
U.assertArtifactsInGroup(model.getFeature("f").getRunMode().getArtifactGroup(3),
 1);
 
         U.assertArtifact(list.get(0), "g", "a", "2.0.0", "jar", null);
-        assertEquals(Feature.Type.SUBSYSTEM_COMPOSITE, 
model.getFeature("f").getType());
+        assertEquals(FeatureTypes.SUBSYSTEM_COMPOSITE, 
model.getFeature("f").getType());
     }
 
     @Test public void removeTest() throws Exception {
@@ -52,7 +52,7 @@ public class ModelUtilityTest {
         assertNotNull(model.getFeature("f").getRunMode());
         assertNotNull(model.getFeature("f").getRunMode().getArtifactGroup(5));
         assertNotNull(model.getFeature("f").getRunMode().getArtifactGroup(7));
-        assertEquals(Feature.Type.PLAIN, model.getFeature("f").getType());
+        assertEquals(FeatureTypes.PLAIN, model.getFeature("f").getType());
 
         final List<Artifact> group5 = 
U.assertArtifactsInGroup(model.getFeature("f").getRunMode().getArtifactGroup(5),
 1);
         U.assertArtifact(group5.get(0), "g", "a", "1.0.0", "jar", null);

Modified: 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java?rev=1709720&r1=1709719&r2=1709720&view=diff
==============================================================================
--- 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java
 (original)
+++ 
sling/trunk/tooling/support/provisioning-model/src/test/java/org/apache/sling/provisioning/model/U.java
 Wed Oct 21 05:47:52 2015
@@ -16,14 +16,6 @@
  */
 package org.apache.sling.provisioning.model;
 
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.sling.provisioning.model.io.ModelReader;
-
 import static 
org.apache.sling.provisioning.model.ModelConstants.DEFAULT_RUN_MODE;
 import static 
org.apache.sling.provisioning.model.ModelConstants.DEFAULT_START_LEVEL;
 import static org.junit.Assert.assertEquals;
@@ -32,6 +24,14 @@ import static org.junit.Assert.assertNot
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.sling.provisioning.model.io.ModelReader;
+
 /** Test utilities */
 public class U {
 
@@ -120,7 +120,7 @@ public class U {
         final Feature exampleFeature = m.getFeature("example");
         final RunMode defaultExampleRM = exampleFeature.getRunMode();
         final List<Configuration> configs = 
assertConfigurationsInRunMode(defaultExampleRM, 3);
-        assertEquals(Feature.Type.SUBSYSTEM_FEATURE, exampleFeature.getType());
+        assertEquals(FeatureTypes.SUBSYSTEM_FEATURE, exampleFeature.getType());
         final Configuration cfg = assertConfiguration(configs, 
"org.apache.sling.another.config");
     }
 


Reply via email to