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 2009/06/15 11:47:06 UTC

svn commit: r784704 - in /felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin: Constants.java SCRDescriptorMojo.java om/Reference.java tags/annotation/defaulttag/ComponentTag.java tags/annotation/defaulttag/Util.java

Author: cziegeler
Date: Mon Jun 15 09:47:06 2009
New Revision: 784704

URL: http://svn.apache.org/viewvc?rev=784704&view=rev
Log:
FELIX-1229 : Fix some bugs introduced with implemented the new features.

Modified:
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/Constants.java
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/om/Reference.java
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/Constants.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/Constants.java?rev=784704&r1=784703&r2=784704&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/Constants.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/Constants.java Mon Jun 15 09:47:06 2009
@@ -94,7 +94,7 @@
     public static final String PROPERTY_TYPE_DOUBLE = "Double";
     public static final String PROPERTY_TYPE_FLOAT = "Float";
     public static final String PROPERTY_TYPE_INTEGER = "Integer";
-    public static final String PROPERTY_TYPE_BYTE = "Bye";
+    public static final String PROPERTY_TYPE_BYTE = "Byte";
     public static final String PROPERTY_TYPE_CHAR = "Char";
     public static final String PROPERTY_TYPE_CHAR_1_1 = "Character";
     public static final String PROPERTY_TYPE_BOOLEAN = "Boolean";

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java?rev=784704&r1=784703&r2=784704&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java Mon Jun 15 09:47:06 2009
@@ -223,11 +223,11 @@
                             boolean createBind = false;
                             boolean createUnbind = false;
                             // Only create method if no bind name has been specified
-                            if ( bindValue == null && ref.findMethod(specVersion, ref.getBind()) == null ) {
+                            if ( bindValue == null && ref.findMethod(specVersion, "bind") == null ) {
                                 // create bind method
                                 createBind = true;
                             }
-                            if ( unbindValue == null && ref.findMethod(specVersion, ref.getUnbind()) == null ) {
+                            if ( unbindValue == null && ref.findMethod(specVersion, "unbind") == null ) {
                                 // create unbind method
                                 createUnbind = true;
                             }

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/om/Reference.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/om/Reference.java?rev=784704&r1=784703&r2=784704&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/om/Reference.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/om/Reference.java Mon Jun 15 09:47:06 2009
@@ -60,9 +60,6 @@
     public Reference(JavaTag t, JavaClassDescription desc) {
         super(t);
         this.javaClassDescription = desc;
-        // set default values
-        this.setBind("bind");
-        this.setUnbind("unbind");
     }
 
     public String getName() {
@@ -194,6 +191,13 @@
 
         // validate bind and unbind methods
         if (!isLookupStrategy()) {
+            // set default values
+            if ( this.bind == null ) {
+                this.setBind("bind");
+            }
+            if ( this.unbind == null ) {
+                this.setUnbind("unbind");
+            }
             final String oldBind = this.bind;
             final String oldUnbind = this.unbind;
             this.bind = this.validateMethod(specVersion, this.bind, componentIsAbstract, iLog);

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java?rev=784704&r1=784703&r2=784704&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java Mon Jun 15 09:47:06 2009
@@ -91,7 +91,7 @@
             }
 
             public ConfigurationPolicy policy() {
-                return Util.getEnumValue(annotation, "policy", ConfigurationPolicy.class, Component.class);
+                return Util.getEnumValue(annotation, "policy", ConfigurationPolicy.class, Component.class, false);
             }
 
             public Class<? extends java.lang.annotation.Annotation> annotationType() {
@@ -126,7 +126,9 @@
         map.put(Constants.COMPONENT_CREATE_PID, String.valueOf(this.annotation.createPid()));
 
         // version 1.1
-        map.put(Constants.COMPONENT_CONFIG_POLICY, this.annotation.policy().getPolicyString());
+        if ( this.annotation.policy() != null ) {
+            map.put(Constants.COMPONENT_CONFIG_POLICY, this.annotation.policy().getPolicyString());
+        }
         final JavaMethod[] jms = this.sourceAnnotation.getContext().getParent().getParentSource().getClasses()[0].getMethods();
         for(final JavaMethod jm : jms) {
             final Annotation[] annotations = jm.getAnnotations();

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java?rev=784704&r1=784703&r2=784704&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java Mon Jun 15 09:47:06 2009
@@ -303,13 +303,19 @@
         }
     }
 
-    public static <T extends Enum> T getEnumValue(Annotation annotation, String name, final Class<T> enumClass, final Class<?> clazz) {
+    public static <T extends Enum> T getEnumValue(Annotation annotation,
+                                                  String name,
+                                                  final Class<T> enumClass,
+                                                  final Class<?> clazz,
+                                                  final boolean returnDefault) {
         Object obj = annotation.getNamedParameter(name);
         if (obj == null) {
-            try {
-                obj = clazz.getMethod(name).getDefaultValue();
-            } catch( NoSuchMethodException mnfe) {
-                // we ignore this
+            if ( returnDefault ) {
+                try {
+                    obj = clazz.getMethod(name).getDefaultValue();
+                } catch( NoSuchMethodException mnfe) {
+                    // we ignore this
+                }
             }
         }
         if ( obj != null ) {
@@ -329,6 +335,13 @@
         return null;
     }
 
+    public static <T extends Enum> T getEnumValue(Annotation annotation,
+            String name,
+            final Class<T> enumClass,
+            final Class<?> clazz) {
+        return getEnumValue(annotation, name, enumClass, clazz, true);
+    }
+
     private static String getAnnotationValue(final AnnotationValue av, final JavaClassDescription desc)
     throws IllegalArgumentException
     {