You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2012/07/02 07:51:57 UTC
svn commit: r1356072 - in /felix/trunk/scrplugin:
annotations/src/main/java/org/apache/felix/scrplugin/processing/
generator/src/main/java/org/apache/felix/scrplugin/
generator/src/main/java/org/apache/felix/scrplugin/xml/
maven-scr-plugin/src/main/jav...
Author: cziegeler
Date: Mon Jul 2 05:51:56 2012
New Revision: 1356072
URL: http://svn.apache.org/viewvc?rev=1356072&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
felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.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=1356072&r1=1356071&r2=1356072&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 05:51:56 2012
@@ -370,6 +370,8 @@ public class SCRAnnotationProcessor impl
index += 2;
}
+ final boolean hasName = ad.getStringValue("name", null) != null;
+
if (values != null) {
prop.setType(PropertyType.valueOf(type));
if (values.length == 1) {
@@ -378,40 +380,47 @@ public class SCRAnnotationProcessor impl
prop.setMultiValue(values);
}
} else if (fieldAnnotation != null) {
-
// Detect values from field
- final Object value = fieldAnnotation.getAnnotatedFieldValue();
- if (value != null) {
- if (value.getClass().isArray()) {
- values = new String[Array.getLength(value)];
- for (int i = 0; i < values.length; i++) {
- values[i] = Array.get(value, i).toString();
+ if ( hasName ) {
+ final Object value = fieldAnnotation.getAnnotatedFieldValue();
+ if (value != null) {
+ if (value.getClass().isArray()) {
+ final String[] newValues = new String[Array.getLength(value)];
+ for (int i = 0; i < newValues.length; i++) {
+ newValues[i] = Array.get(value, i).toString();
+ }
+ prop.setMultiValue(newValues);
+ prop.setType(PropertyType.from(Array.get(value, 0).getClass()));
+ } else {
+ prop.setType(PropertyType.from(value.getClass()));
+ prop.setValue(value.toString());
}
- prop.setMultiValue(values);
- prop.setType(PropertyType.from(Array.get(value, 0).getClass()));
- } else {
- prop.setType(PropertyType.from(value.getClass()));
- prop.setValue(value.toString());
}
+ } else {
+ prop.setType(PropertyType.String);
+ prop.setValue(fieldAnnotation.getAnnotatedField().getName());
}
}
- final String defaultName;
- if (fieldAnnotation != null) {
+ final String name;
+ if ( hasName ) {
+ name = ad.getStringValue("name", null);
+ } else if (fieldAnnotation != null) {
if (values == null) {
- defaultName = fieldAnnotation.getAnnotatedField().getName();
- } else {
final Object value = fieldAnnotation.getAnnotatedFieldValue();
if (value != null) {
- defaultName = value.toString();
+ name = value.toString();
} else {
- defaultName = null;
+ name = null;
}
+ } else {
+ name = fieldAnnotation.getAnnotatedField().getName();
}
} else {
- defaultName = null;
+ name = null;
}
- prop.setName(ad.getStringValue("name", defaultName));
+
+ prop.setName(name);
prop.setLabel(ad.getStringValue("label", null));
prop.setDescription(ad.getStringValue("description", null));
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=1356072&r1=1356071&r2=1356072&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 05:51:56 2012
@@ -438,6 +438,7 @@ public class SCRDescriptorGenerator {
final PropertyDescription pid = new PropertyDescription(null);
pid.setName( org.osgi.framework.Constants.SERVICE_PID );
pid.setValue( componentDesc.getName() );
+ pid.setType(PropertyType.String);
container.getProperties().put(org.osgi.framework.Constants.SERVICE_PID, pid);
}
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=1356072&r1=1356071&r2=1356072&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 05:51:56 2012
@@ -496,7 +496,8 @@ public class ComponentDescriptorIO {
try {
cl = this.classLoader.loadClass(className);
} catch (final Throwable e) {
- iLog.addWarning("Unable to load class " + className + " from dependencies.", this.location);
+ // this doesn't have an effect as the classes we processed are loaded
+ // anyway.
}
this.currentClass = new ClassDescription(cl, "classpath:" + className);
this.currentClass.add(this.currentComponent);
Modified: felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java?rev=1356072&r1=1356071&r2=1356072&view=diff
==============================================================================
--- felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java (original)
+++ felix/trunk/scrplugin/maven-scr-plugin/src/main/java/org/apache/felix/scrplugin/mojo/SCRDescriptorMojo.java Mon Jul 2 05:51:56 2012
@@ -24,9 +24,9 @@ import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -149,7 +149,7 @@ public class SCRDescriptorMojo extends A
*
* @parameter
*/
- private Map<String, String> properties = new HashMap<String, String>();
+ private Map<String, String> properties = new LinkedHashMap<String, String>();
/**
* The version of the DS spec this plugin generates a descriptor for. By