You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ma...@apache.org on 2010/03/03 16:35:20 UTC

svn commit: r918515 - in /felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation: api/AspectService.java plugin/bnd/AnnotationCollector.java

Author: marrs
Date: Wed Mar  3 15:35:20 2010
New Revision: 918515

URL: http://svn.apache.org/viewvc?rev=918515&view=rev
Log:
Implemented the ranking property of aspects.

Modified:
    felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AspectService.java
    felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java

Modified: felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AspectService.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AspectService.java?rev=918515&r1=918514&r2=918515&view=diff
==============================================================================
--- felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AspectService.java (original)
+++ felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/api/AspectService.java Wed Mar  3 15:35:20 2010
@@ -46,11 +46,20 @@
      * the filter condition to use with the service interface this aspect is applying to.
      * @return the filter condition to use with the service interface
      */
-    String filter();
+    String filter() default "";
     
     /**
      * Additional properties to use with the aspect service registration
      * @return additional properties to use with the aspect service registration
      */
-    Param[] properties();
+    Param[] properties() default {};
+    
+    /**
+     * Ranking of this aspect. Since aspects are chained, the ranking defines the order in which they are chained.
+     * Chain ranking is implemented as a service ranking so service lookups automatically retrieve the top of the
+     * chain.
+     * 
+     * @return the ranking of this aspect
+     */
+    int ranking();
 }

Modified: felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java?rev=918515&r1=918514&r2=918515&view=diff
==============================================================================
--- felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java (original)
+++ felix/trunk/dependencymanager/annotation/src/main/java/org/apache/felix/dm/annotation/plugin/bnd/AnnotationCollector.java Wed Mar  3 15:35:20 2010
@@ -146,7 +146,8 @@
         adapterProperties,
         adapteeService,
         adapteeFilter,
-        stateMask
+        stateMask,
+        ranking
     };
 
     /**
@@ -602,8 +603,14 @@
         
         // Parse service filter
         String filter = annotation.get(Params.filter.toString());
-        Verifier.verifyFilter(filter, 0);
-        info.addParam(Params.filter, filter);
+        if (filter != null) {
+            Verifier.verifyFilter(filter, 0);
+            info.addParam(Params.filter, filter);
+        }
+        
+        // Parse service aspect ranking
+        Integer ranking = annotation.get(Params.ranking.toString());
+        info.addParam(Params.ranking, ranking.toString());
                 
         // Generate Aspect Implementation
         info.addParam(Params.impl, m_className);