Author: cziegeler
Date: Mon Jul  2 10:57:16 2012
New Revision: 1356177

URL: http://svn.apache.org/viewvc?rev=1356177&view=rev
Log:
FELIX-3550 : Reimplement the SCR Generator

Modified:
    
felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
    
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/SCRDescriptorGenerator.java
    
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java

Modified: 
felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java?rev=1356177&r1=1356176&r2=1356177&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
 (original)
+++ 
felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
 Mon Jul  2 10:57:16 2012
@@ -370,7 +370,7 @@ public class SCRAnnotationProcessor impl
                 index += 2;
             }
 
-            final boolean hasName = ad.getStringValue("name", null) != null;
+            String name = ad.getStringValue("name", null);
 
             if (values != null) {
                 prop.setType(PropertyType.valueOf(type));
@@ -379,9 +379,16 @@ public class SCRAnnotationProcessor impl
                 } else {
                     prop.setMultiValue(values);
                 }
+                if ( name == null ) {
+                    final Object value = 
fieldAnnotation.getAnnotatedFieldValue();
+                    if (value != null) {
+                        name = value.toString();
+                    }
+                }
+
             } else if (fieldAnnotation != null) {
                 // Detect values from field
-                if ( hasName ) {
+                if ( name != null ) {
                     final Object value = 
fieldAnnotation.getAnnotatedFieldValue();
                     if (value != null) {
                         if (value.getClass().isArray()) {
@@ -398,26 +405,11 @@ public class SCRAnnotationProcessor impl
                     }
                 } else {
                     prop.setType(PropertyType.String);
-                    
prop.setValue(fieldAnnotation.getAnnotatedField().getName());
-                }
-            }
-
-            final String name;
-            if ( hasName ) {
-                name = ad.getStringValue("name", null);
-            } else if (fieldAnnotation != null) {
-                if (values == null) {
                     final Object value = 
fieldAnnotation.getAnnotatedFieldValue();
                     if (value != null) {
                         name = value.toString();
-                    } else {
-                        name = null;
                     }
-                } else {
-                    name = fieldAnnotation.getAnnotatedField().getName();
                 }
-            } else {
-                name = null;
             }
 
             prop.setName(name);

Modified: 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/SCRDescriptorGenerator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/SCRDescriptorGenerator.java?rev=1356177&r1=1356176&r2=1356177&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/SCRDescriptorGenerator.java
 (original)
+++ 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/SCRDescriptorGenerator.java
 Mon Jul  2 10:57:16 2012
@@ -433,6 +433,9 @@ public class SCRDescriptorGenerator {
             }
         } while ( current != null);
 
+        // global properties
+        this.processGlobalProperties(desc, container.getProperties());
+
         // PID handling
         if ( componentDesc.isCreatePid() && 
!container.getProperties().containsKey(org.osgi.framework.Constants.SERVICE_PID))
 {
             final PropertyDescription pid = new PropertyDescription(null);
@@ -442,7 +445,6 @@ public class SCRDescriptorGenerator {
 
             
container.getProperties().put(org.osgi.framework.Constants.SERVICE_PID, pid);
         }
-        this.processGlobalProperties(desc, container.getProperties());
 
         return container;
     }

Modified: 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java?rev=1356177&r1=1356176&r2=1356177&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java
 (original)
+++ 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/xml/ComponentDescriptorIO.java
 Mon Jul  2 10:57:16 2012
@@ -310,7 +310,9 @@ public class ComponentDescriptorIO {
     protected static void generatePropertyXML(PropertyDescription property, 
ContentHandler contentHandler) throws SAXException {
         final AttributesImpl ai = new AttributesImpl();
         IOUtils.addAttribute(ai, "name", property.getName());
-        IOUtils.addAttribute(ai, "type", property.getType());
+        if ( property.getType() != PropertyType.String ) {
+            IOUtils.addAttribute(ai, "type", property.getType());
+        }
         IOUtils.addAttribute(ai, "value", property.getValue());
 
         IOUtils.indent(contentHandler, 2);


Reply via email to