You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2014/11/09 20:30:33 UTC

svn commit: r1637722 - in /felix/trunk/metatype/src: main/java/org/apache/felix/metatype/AD.java main/java/org/apache/felix/metatype/MetaDataReader.java test/java/org/apache/felix/metatype/MetaDataReaderTest.java

Author: djencks
Date: Sun Nov  9 19:30:32 2014
New Revision: 1637722

URL: http://svn.apache.org/r1637722
Log:
FELIX-4687 support proposed R6 metatype 1.3 namespace

Modified:
    felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java
    felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
    felix/trunk/metatype/src/test/java/org/apache/felix/metatype/MetaDataReaderTest.java

Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java?rev=1637722&r1=1637721&r2=1637722&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/AD.java Sun Nov  9 19:30:32 2014
@@ -317,7 +317,7 @@ public class AD extends OptionalAttribut
         {
             return AttributeDefinition.BYTE;
         }
-        else if ("Char".equals(typeString))
+        else if ("Character".equals(typeString) || "Char".equals(typeString))
         {
             return AttributeDefinition.CHARACTER;
         }

Modified: felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java?rev=1637722&r1=1637721&r2=1637722&view=diff
==============================================================================
--- felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java (original)
+++ felix/trunk/metatype/src/main/java/org/apache/felix/metatype/MetaDataReader.java Sun Nov  9 19:30:32 2014
@@ -62,17 +62,22 @@ public class MetaDataReader
      * Specification 4.2. We still have to support this namespace for
      * backwards compatibility.
      */
-    private static final String NAMESPACE_1_0 = "http://www.osgi.org/xmlns/metatype/v1.0.0";
+    static final String NAMESPACE_1_0 = "http://www.osgi.org/xmlns/metatype/v1.0.0";
 
     /**
      * The XML Namespace for Metatype 1.1 descriptors.
      */
-    private static final String NAMESPACE_1_1 = "http://www.osgi.org/xmlns/metatype/v1.1.0";
+    static final String NAMESPACE_1_1 = "http://www.osgi.org/xmlns/metatype/v1.1.0";
 
     /**
      * The XML Namespace for Metatype 1.2 descriptors.
      */
-    private static final String NAMESPACE_1_2 = "http://www.osgi.org/xmlns/metatype/v1.2.0";
+    static final String NAMESPACE_1_2 = "http://www.osgi.org/xmlns/metatype/v1.2.0";
+
+    /**
+     * The XML Namespace for Metatype 1.2 descriptors.
+     */
+    static final String NAMESPACE_1_3 = "http://www.osgi.org/xmlns/metatype/v1.3.0";
 
     /** The XML parser used to read the XML documents */
     private KXmlParser parser = new KXmlParser();
@@ -151,8 +156,11 @@ public class MetaDataReader
     private void checkMetatypeNamespace() throws IOException
     {
         final String namespace = this.parser.getNamespace();
-        if ( namespace != null && namespace.length() > 0 && !NAMESPACE_1_0.equals( namespace )
-            && !NAMESPACE_1_1.equals( namespace ) && !NAMESPACE_1_2.equals( namespace ) )
+        if ( namespace != null && namespace.length() > 0 && 
+            !NAMESPACE_1_0.equals( namespace ) &&
+            !NAMESPACE_1_1.equals( namespace ) &&
+            !NAMESPACE_1_2.equals( namespace ) &&
+            !NAMESPACE_1_3.equals( namespace ) )
         {
             throw new IOException( "Unsupported Namespace " + namespace );
         }

Modified: felix/trunk/metatype/src/test/java/org/apache/felix/metatype/MetaDataReaderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/metatype/src/test/java/org/apache/felix/metatype/MetaDataReaderTest.java?rev=1637722&r1=1637721&r2=1637722&view=diff
==============================================================================
--- felix/trunk/metatype/src/test/java/org/apache/felix/metatype/MetaDataReaderTest.java (original)
+++ felix/trunk/metatype/src/test/java/org/apache/felix/metatype/MetaDataReaderTest.java Sun Nov  9 19:30:32 2014
@@ -85,7 +85,7 @@ public class MetaDataReaderTest extends 
 
     public void testWithNamespace_1_0_0() throws IOException, XmlPullParserException
     {
-        String empty = "<metatype:MetaData xmlns:metatype=\"http://www.osgi.org/xmlns/metatype/v1.0.0\" "
+        String empty = "<metatype:MetaData xmlns:metatype=\"" + MetaDataReader.NAMESPACE_1_0 + "\" "
             + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ></metatype:MetaData>";
         MetaData mti = read( empty );
 
@@ -97,7 +97,7 @@ public class MetaDataReaderTest extends 
 
     public void testWithNamespace_1_1_0() throws IOException, XmlPullParserException
     {
-        String empty = "<metatype:MetaData xmlns:metatype=\"http://www.osgi.org/xmlns/metatype/v1.1.0\" "
+        String empty = "<metatype:MetaData xmlns:metatype=\"" + MetaDataReader.NAMESPACE_1_1 + "\" "
             + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ></metatype:MetaData>";
         MetaData mti = read( empty );
 
@@ -109,7 +109,19 @@ public class MetaDataReaderTest extends 
 
     public void testWithNamespace_1_2_0() throws IOException, XmlPullParserException
     {
-        String empty = "<metatype:MetaData xmlns:metatype=\"http://www.osgi.org/xmlns/metatype/v1.1.0\" "
+        String empty = "<metatype:MetaData xmlns:metatype=\"" + MetaDataReader.NAMESPACE_1_2 + "\" "
+            + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ></metatype:MetaData>";
+        MetaData mti = read( empty );
+
+        assertNotNull( mti );
+        assertNull( mti.getLocalePrefix() );
+        assertNull( mti.getObjectClassDefinitions() );
+    }
+
+
+    public void testWithNamespace_1_3_0() throws IOException, XmlPullParserException
+    {
+        String empty = "<metatype:MetaData xmlns:metatype=\"" + MetaDataReader.NAMESPACE_1_3 + "\" "
             + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ></metatype:MetaData>";
         MetaData mti = read( empty );
 
@@ -188,6 +200,27 @@ public class MetaDataReaderTest extends 
 
     public void testSingleOCDSingleRequiredAttr() throws IOException, XmlPullParserException
     {
+        testSingleOCDSingleRequiredAttr("String", AttributeDefinition.STRING, MetaDataReader.NAMESPACE_1_0);
+        testSingleOCDSingleRequiredAttr("String", AttributeDefinition.STRING, MetaDataReader.NAMESPACE_1_1);
+        testSingleOCDSingleRequiredAttr("String", AttributeDefinition.STRING, MetaDataReader.NAMESPACE_1_2);
+        testSingleOCDSingleRequiredAttr("String", AttributeDefinition.STRING, MetaDataReader.NAMESPACE_1_3);
+
+        testSingleOCDSingleRequiredAttr("Char", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_0);
+        testSingleOCDSingleRequiredAttr("Char", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_1);
+        testSingleOCDSingleRequiredAttr("Char", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_2);
+        testSingleOCDSingleRequiredAttr("Char", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_3);
+        
+        testSingleOCDSingleRequiredAttr("Character", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_0);
+        testSingleOCDSingleRequiredAttr("Character", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_1);
+        testSingleOCDSingleRequiredAttr("Character", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_2);
+        testSingleOCDSingleRequiredAttr("Character", AttributeDefinition.CHARACTER, MetaDataReader.NAMESPACE_1_3);
+
+    }
+
+
+    private void testSingleOCDSingleRequiredAttr(String adType, int typeCode,
+        String namespace) throws IOException
+    {
         String ocdName = "ocd0";
         String ocdId = "id.ocd0";
         String ocdDescription = "ocd0 description";
@@ -195,14 +228,13 @@ public class MetaDataReaderTest extends 
         String adId = "id.ad0";
         String adName = "ad0";
         String adDescription = "ad0 description";
-        String adType = "String";
         int adCardinality = 789;
         String adDefault = "    a    ,   b    ,    c    ";
 
-        String empty = "<MetaData>" + "<OCD id=\"" + ocdId + "\" name=\"" + ocdName + "\" description=\""
+        String empty = "<metatype:MetaData xmlns:metatype=\"" + namespace + "\">" + "<OCD id=\"" + ocdId + "\" name=\"" + ocdName + "\" description=\""
             + ocdDescription + "\">" + "<AD id=\"" + adId + "\" name=\"" + adName + "\" type=\"" + adType
             + "\" description=\"" + adDescription + "\" cardinality=\"" + adCardinality + "\" default=\"" + adDefault
-            + "\">" + "</AD>" + "</OCD>" + "</MetaData>";
+            + "\">" + "</AD>" + "</OCD>" + "</metatype:MetaData>";
         MetaData mti = read( empty );
 
         assertNull( mti.getLocalePrefix() );
@@ -218,7 +250,7 @@ public class MetaDataReaderTest extends 
         assertEquals( adId, ad.getID() );
         assertEquals( adName, ad.getName() );
         assertEquals( adDescription, ad.getDescription() );
-        assertEquals( AttributeDefinition.STRING, ad.getType() );
+        assertEquals( typeCode, ad.getType() );
         assertEquals( adCardinality, ad.getCardinality() );
         assertNotNull( ad.getDefaultValue() );
         assertEquals( 3, ad.getDefaultValue().length );