diff options
author | Liam Fallon <liam.fallon@ericsson.com> | 2018-06-19 21:09:34 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-06-19 21:09:34 +0000 |
commit | cea49f658fe6eb93c6d9d8fd1049f2fcb77b1ac4 (patch) | |
tree | 1376b517fbdd6dc456fa2684f0aab3edd46ca794 /policy-core/src | |
parent | eb5d536f169528a6e86c03feb4c2b21743936f34 (diff) | |
parent | fd7593078cddbed63a8c68bc8f6352283a3fb849 (diff) |
Merge "Add setXxx methods for @Property annotation"
Diffstat (limited to 'policy-core/src')
-rw-r--r-- | policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java | 107 | ||||
-rw-r--r-- | policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java | 47 |
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); } } |