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 2011/08/11 13:51:53 UTC

svn commit: r1156580 - in /felix/trunk/scrplugin: generator/ generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ maven-scr-plugin/ scrtask/

Author: cziegeler
Date: Thu Aug 11 11:51:52 2011
New Revision: 1156580

URL: http://svn.apache.org/viewvc?rev=1156580&view=rev
Log:
FELIX-2963 : scr annotations @Activate @Deactivate @Modified are not detected with class inheritance

Modified:
    felix/trunk/scrplugin/generator/changelog.txt
    felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
    felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaTag.java
    felix/trunk/scrplugin/maven-scr-plugin/changelog.txt
    felix/trunk/scrplugin/maven-scr-plugin/pom.xml
    felix/trunk/scrplugin/scrtask/changelog.txt

Modified: felix/trunk/scrplugin/generator/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/changelog.txt?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/generator/changelog.txt (original)
+++ felix/trunk/scrplugin/generator/changelog.txt Thu Aug 11 11:51:52 2011
@@ -1,3 +1,10 @@
+Changes from 1.1.2 to 1.1.4
+---------------------------
+
+** Bug
+    * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
+
+
 Changes from 1.1.0 to 1.1.2
 ---------------------------
 

Modified: felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java (original)
+++ felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java Thu Aug 11 11:51:52 2011
@@ -18,21 +18,12 @@
  */
 package org.apache.felix.scrplugin.tags.cl;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.felix.scrplugin.Constants;
-import org.apache.felix.scrplugin.JavaClassDescriptorManager;
-import org.apache.felix.scrplugin.SCRDescriptorException;
+import java.lang.reflect.*;
+import java.util.*;
+
+import org.apache.felix.scrplugin.*;
 import org.apache.felix.scrplugin.om.Component;
-import org.apache.felix.scrplugin.tags.JavaClassDescription;
-import org.apache.felix.scrplugin.tags.JavaField;
-import org.apache.felix.scrplugin.tags.JavaMethod;
-import org.apache.felix.scrplugin.tags.JavaTag;
+import org.apache.felix.scrplugin.tags.*;
 
 /**
  * <code>ClassLoaderJavaClassDescription.java</code>...
@@ -185,8 +176,10 @@ public class ClassLoaderJavaClassDescrip
      * @see org.apache.felix.scrplugin.tags.JavaClassDescription#getTagByName(java.lang.String)
      */
     public JavaTag getTagByName(String name) {
-        // this is only used to retrieve the component tag, so we can ignore it
-        // for classes from other bundles and simply return null
+        // this is only used to retrieve the component tag, so we just support this
+        if ( this.component != null && name.equals(Constants.COMPONENT) ) {
+            return new ClassLoaderJavaTag(this, this.component);
+        }
         return null;
     }
 

Modified: felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaTag.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaTag.java?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaTag.java (original)
+++ felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaTag.java Thu Aug 11 11:51:52 2011
@@ -32,31 +32,43 @@ import org.apache.felix.scrplugin.tags.*
 public class ClassLoaderJavaTag implements JavaTag {
 
     protected final JavaClassDescription description;
+    protected final Component component;
     protected final Reference reference;
     protected final Property property;
     protected final Interface interf;
     protected boolean isServiceFactory;
 
-    public ClassLoaderJavaTag(JavaClassDescription desc, Reference reference) {
+    public ClassLoaderJavaTag(final JavaClassDescription desc, final Component component) {
+        this.description = desc;
+        this.reference = null;
+        this.interf = null;
+        this.property = null;
+        this.component = component;
+    }
+
+    public ClassLoaderJavaTag(final JavaClassDescription desc, final Reference reference) {
         this.description = desc;
         this.reference = reference;
         this.interf = null;
         this.property = null;
+        this.component = null;
     }
 
-    public ClassLoaderJavaTag(JavaClassDescription desc, Property property) {
+    public ClassLoaderJavaTag(final JavaClassDescription desc, final Property property) {
         this.description = desc;
         this.property = property;
         this.reference = null;
         this.interf = null;
+        this.component = null;
     }
 
-    public ClassLoaderJavaTag(JavaClassDescription desc, Interface i, boolean isSF) {
+    public ClassLoaderJavaTag(final JavaClassDescription desc, final Interface i, final boolean isSF) {
         this.interf = i;
         this.description = desc;
         this.property = null;
         this.reference = null;
         this.isServiceFactory = isSF;
+        this.component = null;
     }
 
     /**
@@ -84,6 +96,8 @@ public class ClassLoaderJavaTag implemen
             return Constants.PROPERTY;
         } else if ( this.interf != null ) {
             return Constants.SERVICE;
+        } else if ( this.component != null ) {
+            return Constants.COMPONENT;
         }
         return null;
     }
@@ -153,6 +167,18 @@ public class ClassLoaderJavaTag implemen
                 map.put(Constants.SERVICE_FACTORY, "true");
             }
             return map;
+        } else if ( this.component != null ) {
+            final Map<String, String> map = new HashMap<String, String>();
+            if ( this.component.getActivate() != null ) {
+                map.put(Constants.COMPONENT_ACTIVATE, this.component.getActivate());
+            }
+            if ( this.component.getDeactivate() != null ) {
+                map.put(Constants.COMPONENT_DEACTIVATE, this.component.getDeactivate());
+            }
+            if ( this.component.getModified() != null ) {
+                map.put(Constants.COMPONENT_MODIFIED, this.component.getModified());
+            }
+            return map;
         }
         return null;
     }

Modified: felix/trunk/scrplugin/maven-scr-plugin/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/changelog.txt?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/maven-scr-plugin/changelog.txt (original)
+++ felix/trunk/scrplugin/maven-scr-plugin/changelog.txt Thu Aug 11 11:51:52 2011
@@ -1,6 +1,9 @@
 Changes from 1.7.2 to 1.7.4
 ---------------------------
 
+** Bug
+    * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
+
 ** Improvement
     * [FELIX-3066] - Add support for source directory include filter via plugin configuration
 

Modified: felix/trunk/scrplugin/maven-scr-plugin/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/maven-scr-plugin/pom.xml?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/maven-scr-plugin/pom.xml (original)
+++ felix/trunk/scrplugin/maven-scr-plugin/pom.xml Thu Aug 11 11:51:52 2011
@@ -57,7 +57,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.scr.generator</artifactId>
-            <version>1.1.2</version>
+            <version>1.1.3-SNAPSHOT</version>
             <scope>compile</scope>
         </dependency>
     </dependencies>

Modified: felix/trunk/scrplugin/scrtask/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/scrtask/changelog.txt?rev=1156580&r1=1156579&r2=1156580&view=diff
==============================================================================
--- felix/trunk/scrplugin/scrtask/changelog.txt (original)
+++ felix/trunk/scrplugin/scrtask/changelog.txt Thu Aug 11 11:51:52 2011
@@ -1,8 +1,14 @@
-Changes from 1.1.0 to 1.1.2
+Changes from 1.1.2 to 1.1.4
 ---------------------------
 
 ** Bug
     * [FELIX-2963] - scr annotations @Activate @Deactivate @Modified are not detected with class inheritance
+
+
+Changes from 1.1.0 to 1.1.2
+---------------------------
+
+** Bug
     * [FELIX-2978] - Lookup reference policy does not work for inherited components
     * [FELIX-2945] - SCR plugin: Parsing of "options" for property tag broken for java annotations
     * [FELIX-2906] - @Property(cardinality=Integer.MAX_Int, ...) causes java.lang.NumberFormatException