FELIX-2333 : service.ranking property type should be Integer by default

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@945597 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/helper/PropertyHandler.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/helper/PropertyHandler.java
index 69b42cc..88d81de 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/helper/PropertyHandler.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/helper/PropertyHandler.java
@@ -18,15 +18,9 @@
  */
 package org.apache.felix.scrplugin.helper;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
-import org.apache.felix.scrplugin.Constants;
-import org.apache.felix.scrplugin.SCRDescriptorException;
-import org.apache.felix.scrplugin.SCRDescriptorGenerator;
+import org.apache.felix.scrplugin.*;
 import org.apache.felix.scrplugin.om.Component;
 import org.apache.felix.scrplugin.om.Property;
 import org.apache.felix.scrplugin.om.metatype.AttributeDefinition;
@@ -70,7 +64,13 @@
     throws SCRDescriptorException {
         final Property prop = new Property(tag);
         prop.setName(name);
-        prop.setType(tag.getNamedParameter(Constants.PROPERTY_TYPE));
+        // special handling for service.ranking - FELIX-2333
+        if (name.equals(org.osgi.framework.Constants.SERVICE_RANKING)) {
+            prop.setType(Constants.PROPERTY_TYPE_INTEGER);
+        }
+        if ( tag.getNamedParameter(Constants.PROPERTY_TYPE) != null ) {
+            prop.setType(tag.getNamedParameter(Constants.PROPERTY_TYPE));
+        }
         // let's first check for a value attribute
         final String value = tag.getNamedParameter(Constants.PROPERTY_VALUE);
         if ( value != null ) {
@@ -182,21 +182,20 @@
 
         component.addProperty(prop);
     }
-    
+
     private boolean isPrivate(String name, JavaTag tag) {
         if (name.equals(org.osgi.framework.Constants.SERVICE_RANKING)) {
             return SCRDescriptorGenerator.getBoolean(tag,
                 Constants.PROPERTY_PRIVATE, true);
-        } else {
-            return SCRDescriptorGenerator.getBoolean(tag,
-                Constants.PROPERTY_PRIVATE, false)
-                || name.equals(org.osgi.framework.Constants.SERVICE_PID)
-                || name.equals(org.osgi.framework.Constants.SERVICE_DESCRIPTION)
-                || name.equals(org.osgi.framework.Constants.SERVICE_ID)
-                || name.equals(org.osgi.framework.Constants.SERVICE_VENDOR)
-                || name.equals(ConfigurationAdmin.SERVICE_BUNDLELOCATION)
-                || name.equals(ConfigurationAdmin.SERVICE_FACTORYPID);
         }
+        return SCRDescriptorGenerator.getBoolean(tag,
+            Constants.PROPERTY_PRIVATE, false)
+            || name.equals(org.osgi.framework.Constants.SERVICE_PID)
+            || name.equals(org.osgi.framework.Constants.SERVICE_DESCRIPTION)
+            || name.equals(org.osgi.framework.Constants.SERVICE_ID)
+            || name.equals(org.osgi.framework.Constants.SERVICE_VENDOR)
+            || name.equals(ConfigurationAdmin.SERVICE_BUNDLELOCATION)
+            || name.equals(ConfigurationAdmin.SERVICE_FACTORYPID);
     }
 
     /**