/** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public void setProperty(String key, Object value) { if (!ff4jStore.existProperty(key)) { addProperty(key, value); } Property<Object> ap = (Property<Object>) ff4jStore().readProperty(key); ap.setValue(String.valueOf(value)); ff4jStore().updateProperty(ap); }
/** {@inheritDoc} */ public Map<String, Property<?>> readAllProperties() { return target.readAllProperties(); }
/** {@inheritDoc} */ public Set<String> listPropertyNames() { return target.listPropertyNames(); }
/** TDD. */ @Test(expected = PropertyNotFoundException.class) public void deleteKOdoesnotexist() { // Given Assert.assertFalse(testedStore.existProperty(INVALID)); // When testedStore.deleteProperty(INVALID); }
/** TDD. */ @Test(expected = IllegalArgumentException.class) public void updateKOInvalidValue() { // Given testedStore.createProperty(new PropertyLogLevel("updateKOInvalidValue", LogLevel.ERROR)); // When testedStore.updateProperty("updateKOInvalidValue", "KO"); }
private Property<?> readProperty(Field field, String propertyName, boolean required) { if (!ff4j.getPropertiesStore().existProperty(propertyName)) { if (required) { throw new IllegalArgumentException("Cannot autowiring field '" + field.getName() + "' with FF4J property as" + " target property has not been found"); } else { logger.warn("Property '" + propertyName + "' has not been found but not required"); return null; } } return ff4j.getPropertiesStore().readProperty(propertyName); }
} else if (ff4j.getPropertiesStore().existProperty(uid)) { ap = ff4j.getPropertiesStore().readProperty(uid); ff4j.getPropertiesStore().updateProperty(ap); } else { ap = PropertyFactory.createProperty(name, type, value); ff4j.getPropertiesStore().deleteProperty(name); ff4j.getPropertiesStore().createProperty(ap); ff4j.getPropertiesStore().deleteProperty(uid); ff4j.getPropertiesStore().createProperty(ap);
public FeatureActions createOrUpdateProperty(String propertyName, PropertyApiBean propertyApiBean) { propertyValidator.assertPropertyNameNotBlank(propertyApiBean.getName()); propertyValidator.assertPropertyNameMatch(propertyName, propertyApiBean.getName()); Property<?> property = propertyApiBean.asProperty(); if (ff4j.getPropertiesStore().existProperty(propertyName)) { ff4j.getPropertiesStore().updateProperty(property); return FeatureActions.UPDATED; } else { ff4j.getPropertiesStore().createProperty(property); return FeatureActions.CREATED; } }
msg = "Property name not found"; } else { getFf4j().getPropertiesStore().deleteProperty(propertyName); msg = propertyName + " has been DELETED"; Set< String> propertiesNames = getFf4j().getPropertiesStore().listPropertyNames(); if (propertiesNames.contains(newName)) { msgType = "warning"; msg = "Cannot rename " + propertyName + " to " + newName + " : it already exists"; } else { Property<?> newProperty = getFf4j().getPropertiesStore().readProperty(propertyName); newProperty.setName(newName); getFf4j().getPropertiesStore().deleteProperty(propertyName); getFf4j().getPropertiesStore().createProperty(newProperty); msg = "Property " + propertyName + " has been renamed to " + newName; Set< String> propertiesNames = getFf4j().getPropertiesStore().listPropertyNames(); if (propertiesNames.contains(newName)) { msgType = "warning"; msg = "Cannot copy " + propertyName + " to " + newName + " : it already exists"; } else { Property<?> p = getFf4j().getPropertiesStore().readProperty(propertyName); Property<?> newProperty = PropertyFactory.createProperty(newName, p.getType(), p.asString(), p.getDescription(), null); for(Object o : p.getFixedValues()) { newProperty.add2FixedValueFromString(o.toString()); getFf4j().getPropertiesStore().createProperty(newProperty); msg = "Property " + propertyName + " has been copied to " + newName;
/** TDD. */ @Test(expected = IllegalArgumentException.class) public void existKOEmpty() { // Given testedStore.existProperty(""); // Then // then expect to fail }
/** TDD. */ @Test public void updateOK() { // Given testedStore.createProperty(new PropertyLogLevel(UPDATE_OK, LogLevel.ERROR)); // When testedStore.updateProperty(UPDATE_OK, "INFO"); // Then Assert.assertEquals(LogLevel.INFO, testedStore.readProperty(UPDATE_OK).getValue()); }
if (pathParts.length > 3) { String propertyName = pathParts[3]; if (getFf4j().getPropertiesStore().existProperty(propertyName)) { Property<?> p = getFf4j().getPropertiesStore().readProperty(propertyName); res.getWriter().println(p.toJson()); } else { Map< String, Property<?> > mapOfFeatures = getFf4j().getPropertiesStore().readAllProperties(); StringBuilder sb = new StringBuilder("["); boolean first = true;
/** TDD. */ @Test public void deleteOK() { // Given testedStore.createProperty(new PropertyString(DELETE_OK, "ff4j")); Assert.assertTrue(testedStore.existProperty(DELETE_OK)); // When testedStore.deleteProperty(DELETE_OK); // Then Assert.assertFalse(testedStore.existProperty(DELETE_OK)); }
/** TDD. */ @Test public void addPropertyOKsimple() { // Given Assert.assertFalse(testedStore.existProperty(ADD_PROPERTY_O_KSIMPLE)); // When testedStore.createProperty(new PropertyString(ADD_PROPERTY_O_KSIMPLE, "ff4j")); // Then Assert.assertTrue(testedStore.existProperty(ADD_PROPERTY_O_KSIMPLE)); }
/** TDD. */ @Test(expected = PropertyNotFoundException.class) public void updateKOdoesnotExist() { // Given Assert.assertFalse(testedStore.existProperty(INVALID)); // When testedStore.updateProperty(INVALID, "aa"); }
/** TDD. */ @Test public void clear() { // Given Assert.assertNotNull(testedStore); Map <String, Property<?>> before = testedStore.readAllProperties(); Assert.assertFalse(before.isEmpty()); // When testedStore.clear(); // Then Assert.assertTrue(testedStore.readAllProperties().isEmpty()); /// Reinit for (Map.Entry<String,Property<?>> pName : before.entrySet()) { testedStore.createProperty(pName.getValue()); } }
String message = null; if (OP_RMV_PROPERTY.equalsIgnoreCase(operation)) { getFf4j().getPropertiesStore().deleteProperty(uid); LOGGER.info("Property '" + uid + "' has been deleted"); message = renderMsgProperty(uid, "DELETED"); Property<?> ap = getFf4j().getPropertiesStore().readProperty(uid); res.setContentType(CONTENT_TYPE_JSON); res.getWriter().println(ap.toString()); Property<?> ap = getFf4j().getPropertiesStore().readProperty(uid); ap.getFixedValues().remove(fixedValue); getFf4j().getPropertiesStore().updateProperty(ap); Property<?> ap = getFf4j().getPropertiesStore().readProperty(uid); ap.add2FixedValueFromString(fixedValue); getFf4j().getPropertiesStore().updateProperty(ap);
/** {@inheritDoc} */ @Override public Property<?> readProperty(String name, Property<?> defaultValue) { return target.readProperty(name, defaultValue); }
/** TDD. */ @Test(expected = IllegalArgumentException.class) public void updateKOnull() { // When testedStore.updateProperty(null, "aa"); }
/** {@inheritDoc} */ @Override public Configuration subset(String prefix) { Map < String, Property<?>> myProps = ff4jStore().readAllProperties(); PropertyStore ps = new InMemoryPropertyStore(); for (Map.Entry< String, Property<?>> prop : myProps.entrySet()) { if (prop.getKey().startsWith(prefix)) { ps.createProperty(prop.getValue()); } } return new FF4jConfiguration(ps); }