Author: justin
Date: Wed Aug 20 16:02:38 2014
New Revision: 1619134

URL: http://svn.apache.org/r1619134
Log:
SLING-3861 - adding condition option for @Model annotation

Modified:
    
sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java
    
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java

Modified: 
sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java?rev=1619134&r1=1619133&r2=1619134&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java
 (original)
+++ 
sling/trunk/bundles/extensions/models/api/src/main/java/org/apache/sling/models/annotations/Model.java
 Wed Aug 20 16:02:38 2014
@@ -33,4 +33,6 @@ public @interface Model {
 
     public DefaultInjectionStrategy defaultInjectionStrategy() default 
DefaultInjectionStrategy.REQUIRED;
 
+    public String condition() default "";
+
 }

Modified: 
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java?rev=1619134&r1=1619133&r2=1619134&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
 (original)
+++ 
sling/trunk/bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelPackageBundleListener.java
 Wed Aug 20 16:02:38 2014
@@ -40,6 +40,11 @@ public class ModelPackageBundleListener 
 
     private static final String HEADER = "Sling-Model-Packages";
 
+    /**
+     * Service registration property for the adapter condition.
+     */
+    private static final String PROP_ADAPTER_CONDITION = "adapter.condition";
+
     private static final Logger log = 
LoggerFactory.getLogger(ModelPackageBundleListener.class);
     
     private final BundleContext bundleContext;
@@ -87,6 +92,11 @@ public class ModelPackageBundleListener 
                             Dictionary<String, Object> registrationProps = new 
Hashtable<String, Object>();
                             
registrationProps.put(AdapterFactory.ADAPTER_CLASSES, className);
                             
registrationProps.put(AdapterFactory.ADAPTABLE_CLASSES, classNames);
+
+                            String condition = annotation.condition();
+                            if (StringUtils.isNotBlank(condition)) {
+                                registrationProps.put(PROP_ADAPTER_CONDITION, 
condition);
+                            }
                             ServiceRegistration reg = 
bundleContext.registerService(AdapterFactory.SERVICE_NAME,
                                     factory, registrationProps);
                             regs.add(reg);


Reply via email to