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);