summaryrefslogtreecommitdiffstats
path: root/policy-core
diff options
context:
space:
mode:
authorLiam Fallon <liam.fallon@ericsson.com>2018-06-19 21:09:34 +0000
committerGerrit Code Review <gerrit@onap.org>2018-06-19 21:09:34 +0000
commitcea49f658fe6eb93c6d9d8fd1049f2fcb77b1ac4 (patch)
tree1376b517fbdd6dc456fa2684f0aab3edd46ca794 /policy-core
parenteb5d536f169528a6e86c03feb4c2b21743936f34 (diff)
parentfd7593078cddbed63a8c68bc8f6352283a3fb849 (diff)
Merge "Add setXxx methods for @Property annotation"
Diffstat (limited to 'policy-core')
-rw-r--r--policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java107
-rw-r--r--policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java47
2 files changed, 16 insertions, 138 deletions
diff --git a/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java b/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
index 800b6e89..e604c30a 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
@@ -20,17 +20,10 @@
package org.onap.policy.drools.util;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
import java.util.Properties;
-import org.onap.policy.common.utils.properties.SpecPropertyConfiguration;
-import org.onap.policy.common.utils.properties.exception.PropertyException;
/**
- * Checks whether or not a feature is enabled. The name of the "enable" property
- * is assumed to be of the form accepted by a {@link SpecPropertyConfiguration},
- * which contains a substitution place-holder into which a "specializer" (e.g.,
- * controller or session name) is substituted.
+ * Checks whether or not a feature is enabled.
*/
public class FeatureEnabledChecker {
@@ -42,101 +35,15 @@ public class FeatureEnabledChecker {
}
/**
- * Determines if a feature is enabled for a particular specializer.
+ * Determines if a feature is enabled.
*
* @param props properties from which to extract the "enabled" flag
- * @param specializer specializer to be substituted into the property name
- * when extracting
* @param propName the name of the "enabled" property
- * @return {@code true} if the feature is enabled, or {@code false} if it is
- * not enabled (or if the property doesn't exist)
- * @throws IllegalArgumentException if the "enabled" property is not a
- * boolean value
+ * @return {@code true} if the feature is enabled, or {@code false} if it is not
+ * enabled (or if the property doesn't exist)
*/
- public static boolean isFeatureEnabled(Properties props, String specializer, String propName) {
-
- try {
- return new Config(specializer, props, propName).isEnabled();
-
- } catch (PropertyException e) {
- throw new IllegalArgumentException("cannot check property " + propName, e);
- }
+ public static boolean isFeatureEnabled(Properties props, String propName) {
+ String val = props.getProperty(propName);
+ return (val != null ? Boolean.valueOf(val) : false);
}
-
-
- /**
- * Configuration used to extract the value.
- */
- private static class Config extends SpecPropertyConfiguration {
-
- /**
- * There is a bit of trickery here. This annotation is just a
- * place-holder to get the superclass to invoke the
- * {@link #setValue(java.lang.reflect.Field, Properties, Property)
- * setValue()} method. When that's invoked, we'll substitute
- * {@link #propOverride} instead of this annotation.
- */
- @Property(name = "feature-enabled-property-place-holder")
- private boolean enabled;
-
- /**
- * Annotation that will actually be used to set the field.
- */
- private Property propOverride;
-
- /**
- *
- * @param specializer specializer to be substituted into the property
- * name when extracting
- * @param props properties from which to extract the "enabled" flag
- * @param propName the name of the "enabled" property
- * @throws PropertyException if an error occurs
- */
- public Config(String specializer, Properties props, String propName) throws PropertyException {
- super(specializer);
-
- propOverride = new Property() {
-
- @Override
- public String name() {
- return propName;
- }
-
- @Override
- public String defaultValue() {
- // feature is disabled by default
- return "false";
- }
-
- @Override
- public String accept() {
- return "";
- }
-
- @Override
- public Class<? extends Annotation> annotationType() {
- return Property.class;
- }
- };
-
- setAllFields(props);
- }
-
- /**
- * Substitutes {@link #propOverride} for "prop".
- */
- @Override
- protected boolean setValue(Field field, Properties props, Property prop) throws PropertyException {
- return super.setValue(field, props, propOverride);
- }
-
- /**
- *
- * @return {@code true} if the feature is enabled, {@code false}
- * otherwise
- */
- public boolean isEnabled() {
- return enabled;
- }
- };
}
diff --git a/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java b/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
index 3bb135fe..cd79592f 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
@@ -22,64 +22,35 @@ package org.onap.policy.drools.util;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import static org.onap.policy.common.utils.properties.SpecPropertyConfiguration.generalize;
-import static org.onap.policy.common.utils.properties.SpecPropertyConfiguration.specialize;
import java.util.Properties;
import org.junit.Test;
-import org.onap.policy.drools.util.FeatureEnabledChecker;
public class FeatureEnabledCheckerTest {
- private static final String PROP_NAME = "enable.{?.}it";
-
- private static final String SPEC = "my.specializer";
+ private static final String PROP_NAME = "enable.it";
@Test
public void test() {
- assertFalse(check(null, null));
- assertTrue(check(null, true));
- assertFalse(check(null, false));
-
- assertTrue(check(true, null));
- assertTrue(check(true, true));
- assertFalse(check(true, false));
-
- assertFalse(check(false, null));
- assertTrue(check(false, true));
- assertFalse(check(false, false));
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void test_ArgEx() {
-
- // check case where there's an exception in the property
- Properties props = new Properties();
- props.setProperty(generalize(PROP_NAME), "invalid-boolean");
-
- assertFalse(FeatureEnabledChecker.isFeatureEnabled(props, SPEC, PROP_NAME));
+ assertFalse(check(null));
+ assertTrue(check(true));
+ assertFalse(check(false));
}
/**
* Adds properties, as specified, and checks if the feature is enabled.
*
- * @param wantGen value to assign to the generalized property, or
- * {@code null} to leave it unset
- * @param wantSpec value to assign to the specialized property, or
+ * @param want value to assign to the specialized property, or
* {@code null} to leave it unset
* @return {@code true} if the feature is enabled, {@code false} otherwise
*/
- public boolean check(Boolean wantGen, Boolean wantSpec) {
+ public boolean check(Boolean want) {
Properties props = new Properties();
- if (wantGen != null) {
- props.setProperty(generalize(PROP_NAME), wantGen.toString());
- }
-
- if (wantSpec != null) {
- props.setProperty(specialize(PROP_NAME, SPEC), wantSpec.toString());
+ if (want != null) {
+ props.setProperty(PROP_NAME, want.toString());
}
- return FeatureEnabledChecker.isFeatureEnabled(props, SPEC, PROP_NAME);
+ return FeatureEnabledChecker.isFeatureEnabled(props, PROP_NAME);
}
}