You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2016/12/09 21:44:20 UTC
svn commit: r1773477 -
/sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
Author: sseifert
Date: Fri Dec 9 21:44:20 2016
New Revision: 1773477
URL: http://svn.apache.org/viewvc?rev=1773477&view=rev
Log:
SLING-6372 support ReferencePolicyOption
Modified:
sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
Modified: sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java
URL: http://svn.apache.org/viewvc/sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java?rev=1773477&r1=1773476&r2=1773477&view=diff
==============================================================================
--- sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java (original)
+++ sling/branches/testing/mocks/osgi-mock-1.x/src/main/java/org/apache/sling/testing/mock/osgi/OsgiMetadataUtil.java Fri Dec 9 21:44:20 2016
@@ -386,6 +386,7 @@ final class OsgiMetadataUtil {
private final String interfaceType;
private final ReferenceCardinality cardinality;
private final ReferencePolicy policy;
+ private final ReferencePolicyOption policyOption;
private final String bind;
private final String unbind;
@@ -395,6 +396,7 @@ final class OsgiMetadataUtil {
this.interfaceType = getAttributeValue(node, "interface");
this.cardinality = toCardinality(getAttributeValue(node, "cardinality"));
this.policy = toPolicy(getAttributeValue(node, "policy"));
+ this.policyOption = toPolicyOption(getAttributeValue(node, "policy-option"));
this.bind = getAttributeValue(node, "bind");
this.unbind = getAttributeValue(node, "unbind");
}
@@ -419,6 +421,10 @@ final class OsgiMetadataUtil {
return policy;
}
+ public ReferencePolicyOption getPolicyOption() {
+ return policyOption;
+ }
+
public String getBind() {
return this.bind;
}
@@ -445,6 +451,15 @@ final class OsgiMetadataUtil {
return ReferencePolicy.STATIC;
}
+ private static ReferencePolicyOption toPolicyOption(String value) {
+ for (ReferencePolicyOption item : ReferencePolicyOption.values()) {
+ if (StringUtils.equalsIgnoreCase(item.name(), value)) {
+ return item;
+ }
+ }
+ return ReferencePolicyOption.RELUCTANT;
+ }
+
}
@@ -513,4 +528,28 @@ final class OsgiMetadataUtil {
DYNAMIC;
}
+ /**
+ * Options for {@link Reference#policyOption()} property.
+ */
+ enum ReferencePolicyOption {
+
+ /**
+ * The reluctant policy option is the default policy option.
+ * When a new target service for a reference becomes available,
+ * references having the reluctant policy option for the static
+ * policy or the dynamic policy with a unary cardinality will
+ * ignore the new target service. References having the dynamic
+ * policy with a multiple cardinality will bind the new
+ * target service
+ */
+ RELUCTANT,
+
+ /**
+ * When a new target service for a reference becomes available,
+ * references having the greedy policy option will bind the new
+ * target service.
+ */
+ GREEDY;
+ }
+
}