You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/03/02 19:52:37 UTC
svn commit: r1733351 - in /qpid/java/trunk:
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/
broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton...
Author: rgodfrey
Date: Wed Mar 2 18:52:36 2016
New Revision: 1733351
URL: http://svn.apache.org/viewvc?rev=1733351&view=rev
Log:
QPID-7066 : Add valid values pattern to metadata
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Wed Mar 2 18:52:36 2016
@@ -26,6 +26,7 @@ import java.lang.reflect.InvocationHandl
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Proxy;
import java.lang.reflect.Type;
import java.security.AccessControlException;
@@ -52,6 +53,7 @@ import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.regex.Pattern;
import javax.security.auth.Subject;
@@ -447,6 +449,44 @@ public abstract class AbstractConfigured
return false;
}
+ private boolean checkValidValuePattern(final ConfiguredSettableAttribute attribute, final Object desiredValue)
+ {
+ Collection<String> valuesToCheck;
+
+ if(attribute.getType().equals(String.class))
+ {
+ valuesToCheck = Collections.singleton(desiredValue.toString());
+ }
+ else if(Collection.class.isAssignableFrom(attribute.getType()) && attribute.getGenericType() instanceof ParameterizedType)
+ {
+ ParameterizedType paramType = (ParameterizedType)attribute.getGenericType();
+ if(paramType.getActualTypeArguments().length == 1 && paramType.getActualTypeArguments()[0] == String.class)
+ {
+ valuesToCheck = (Collection<String>)desiredValue;
+ }
+ else
+ {
+ valuesToCheck = Collections.emptySet();
+ }
+ }
+ else
+ {
+ valuesToCheck = Collections.emptySet();
+ }
+
+ Pattern pattern = Pattern.compile(attribute.vaidValuePattern());
+ for (String value : valuesToCheck)
+ {
+ if(!pattern.matcher(value).matches())
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+
@Override
public final void open()
{
@@ -1084,6 +1124,20 @@ public abstract class AbstractConfigured
+ autoAttr.validValues());
}
}
+ else if(!"".equals(autoAttr.vaidValuePattern()))
+ {
+ Object desiredValueOrDefault = autoAttr.getValue(this);
+
+ if (desiredValueOrDefault != null && !checkValidValuePattern(autoAttr, desiredValueOrDefault))
+ {
+ throw new IllegalConfigurationException("Attribute '" + autoAttr.getName()
+ + "' instance of "+ getClass().getName()
+ + " named '" + getName() + "'"
+ + " cannot have value '" + desiredValueOrDefault + "'"
+ + ". Valid values pattern is: "
+ + autoAttr.vaidValuePattern());
+ }
+ }
if(autoAttr.isMandatory() && autoAttr.getValue(this) == null)
{
throw new IllegalConfigurationException("Attribute '" + autoAttr.getName()
@@ -2505,6 +2559,21 @@ public abstract class AbstractConfigured
+ autoAttr.validValues());
}
}
+ else if(!"".equals(autoAttr.vaidValuePattern()))
+ {
+ Object desiredValueOrDefault = autoAttr.getValue(proxyForValidation);
+
+ if (desiredValueOrDefault != null && !checkValidValuePattern(autoAttr, desiredValueOrDefault))
+ {
+ throw new IllegalConfigurationException("Attribute '" + autoAttr.getName()
+ + "' instance of "+ getClass().getName()
+ + " named '" + getName() + "'"
+ + " cannot have value '" + desiredValueOrDefault + "'"
+ + ". Valid values pattern is: "
+ + autoAttr.vaidValuePattern());
+ }
+ }
+
if(autoAttr.isMandatory() && autoAttr.getValue(proxyForValidation) == null)
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java Wed Mar 2 18:52:36 2016
@@ -200,4 +200,10 @@ public class ConfiguredAutomatedAttribut
{
return validValues() != null && validValues().size() > 0;
}
+
+ @Override
+ public String vaidValuePattern()
+ {
+ return _annotation.validValuePattern();
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java Wed Mar 2 18:52:36 2016
@@ -32,5 +32,7 @@ public interface ConfiguredSettableAttri
Collection<String> validValues();
+ String vaidValuePattern();
+
boolean hasValidValues();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java Wed Mar 2 18:52:36 2016
@@ -49,20 +49,21 @@ public class ConfiguredSettableInjectedA
private final String _oversizedAltText;
private final String _description;
private final String[] _validValues;
+ private final String _validValuePattern;
public ConfiguredSettableInjectedAttribute(final String name,
- final Class<T> type,
- final Type genericType,
- final String defaultValue,
- final boolean secure,
- final boolean persisted,
- final boolean immutable,
- final String secureValueFilter,
- final boolean oversized,
- final String oversizedAltText,
- final String description,
- final String[] validValues,
- final TypeValidator typeValidator)
+ final Class<T> type,
+ final Type genericType,
+ final String defaultValue,
+ final boolean secure,
+ final boolean persisted,
+ final boolean immutable,
+ final String secureValueFilter,
+ final boolean oversized,
+ final String oversizedAltText,
+ final String description,
+ final String[] validValues,
+ final String validValuePattern, final TypeValidator typeValidator)
{
super(name, type, genericType, typeValidator);
@@ -74,6 +75,7 @@ public class ConfiguredSettableInjectedA
_oversizedAltText = oversizedAltText;
_description = description;
_validValues = validValues;
+ _validValuePattern = validValuePattern;
Method validValuesMethod = null;
@@ -240,4 +242,9 @@ public class ConfiguredSettableInjectedA
return convert(value, configuredObject);
}
+ @Override
+ public String vaidValuePattern()
+ {
+ return _validValuePattern;
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java Wed Mar 2 18:52:36 2016
@@ -35,6 +35,7 @@ public @interface ManagedAttribute
String defaultValue() default "";
String description() default "";
String[] validValues() default {};
+ String validValuePattern() default "";
boolean oversize() default false;
String oversizedAltText() default "";
String secureValueFilter() default "";
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/hierarchy/InjectedAttributeTest.java Wed Mar 2 18:52:36 2016
@@ -124,7 +124,7 @@ public class InjectedAttributeTest exten
"",
"",
null,
- validator);
+ "", validator);
TestModel model = new TestModel(null, new TestInjector(attrInjector));
@@ -172,7 +172,7 @@ public class InjectedAttributeTest exten
"",
"",
new String[] { "42", "49" },
- validator);
+ "", validator);
TestModel model = new TestModel(null, new TestInjector(attrInjector));
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/AbstractConfiguredObjectTest.java Wed Mar 2 18:52:36 2016
@@ -347,6 +347,48 @@ public class AbstractConfiguredObjectTes
assertEquals(TestSingleton.VALID_VALUE1, object.getValidValue());
}
+ public void testCreateEnforcesAttributeValidValuePattern() throws Exception
+ {
+ final String objectName = getName();
+ Map<String, Object> illegalCreateAttributes = new HashMap<>();
+ illegalCreateAttributes.put(ConfiguredObject.NAME, objectName);
+ illegalCreateAttributes.put(TestSingleton.VALUE_WITH_PATTERN, "illegal");
+
+ try
+ {
+ _model.getObjectFactory().create(TestSingleton.class, illegalCreateAttributes);
+ fail("Exception not thrown");
+ }
+ catch (IllegalConfigurationException ice)
+ {
+ // PASS
+ }
+
+ illegalCreateAttributes = new HashMap<>();
+ illegalCreateAttributes.put(ConfiguredObject.NAME, objectName);
+ illegalCreateAttributes.put(TestSingleton.LIST_VALUE_WITH_PATTERN, Arrays.asList("1.1.1.1", "1"));
+
+ try
+ {
+ _model.getObjectFactory().create(TestSingleton.class, illegalCreateAttributes);
+ fail("Exception not thrown");
+ }
+ catch (IllegalConfigurationException ice)
+ {
+ // PASS
+ }
+
+
+ Map<String, Object> legalCreateAttributes = new HashMap<>();
+ legalCreateAttributes.put(ConfiguredObject.NAME, objectName);
+ legalCreateAttributes.put(TestSingleton.VALUE_WITH_PATTERN, "foozzzzzbar");
+ legalCreateAttributes.put(TestSingleton.LIST_VALUE_WITH_PATTERN, Arrays.asList("1.1.1.1", "255.255.255.255"));
+
+ TestSingleton object = _model.getObjectFactory().create(TestSingleton.class, legalCreateAttributes);
+ assertEquals("foozzzzzbar", object.getValueWithPattern());
+ }
+
+
public void testChangeEnforcesAttributeValidValues() throws Exception
{
final String objectName = getName();
@@ -415,6 +457,62 @@ public class AbstractConfiguredObjectTes
}
}
+
+ public void testChangeEnforcesAttributeValidValuePatterns() throws Exception
+ {
+ final String objectName = getName();
+ Map<String, Object> legalCreateAttributes = new HashMap<>();
+ legalCreateAttributes.put(ConfiguredObject.NAME, objectName);
+ legalCreateAttributes.put(TestSingleton.VALUE_WITH_PATTERN, "foozzzzzbar");
+ legalCreateAttributes.put(TestSingleton.LIST_VALUE_WITH_PATTERN, Arrays.asList("1.1.1.1", "255.255.255.255"));
+
+ TestSingleton object = _model.getObjectFactory().create(TestSingleton.class, legalCreateAttributes);
+ assertEquals("foozzzzzbar", object.getValueWithPattern());
+ assertEquals(Arrays.asList("1.1.1.1", "255.255.255.255"), object.getListValueWithPattern());
+
+ object.setAttributes(Collections.singletonMap(TestSingleton.VALUE_WITH_PATTERN, "foobar"));
+ assertEquals("foobar", object.getValueWithPattern());
+
+ object.setAttributes(Collections.singletonMap(TestSingleton.LIST_VALUE_WITH_PATTERN, Collections.singletonList("1.2.3.4")));
+ assertEquals(Collections.singletonList("1.2.3.4"), object.getListValueWithPattern());
+
+
+ try
+ {
+ object.setAttributes(Collections.singletonMap(TestSingleton.VALUE_WITH_PATTERN, "foobaz"));
+ fail("Exception not thrown");
+ }
+ catch (IllegalConfigurationException iae)
+ {
+ // PASS
+ }
+
+
+ try
+ {
+ object.setAttributes(Collections.singletonMap(TestSingleton.LIST_VALUE_WITH_PATTERN, Arrays.asList("1.1.1.1", "1")));
+ fail("Exception not thrown");
+ }
+ catch (IllegalConfigurationException iae)
+ {
+ // PASS
+ }
+
+ assertEquals("foobar", object.getValueWithPattern());
+ assertEquals(Collections.singletonList("1.2.3.4"), object.getListValueWithPattern());
+
+
+ object.setAttributes(Collections.singletonMap(TestSingleton.VALUE_WITH_PATTERN, null));
+ assertNull(object.getValueWithPattern());
+
+ object.setAttributes(Collections.singletonMap(TestSingleton.LIST_VALUE_WITH_PATTERN, Collections.emptyList()));
+ assertEquals(Collections.emptyList(), object.getListValueWithPattern());
+
+ object.setAttributes(Collections.singletonMap(TestSingleton.LIST_VALUE_WITH_PATTERN, null));
+ assertNull(object.getListValueWithPattern());
+
+ }
+
public void testDefaultContextIsInContextKeys()
{
final String objectName = "myName";
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingleton.java Wed Mar 2 18:52:36 2016
@@ -18,6 +18,7 @@
*/
package org.apache.qpid.server.model.testmodels.singleton;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -39,6 +40,8 @@ public interface TestSingleton<X extends
String ENUM_VALUE = "enumValue";
String INT_VALUE = "intValue";
String VALID_VALUE = "validValue";
+ String VALUE_WITH_PATTERN = "valueWithPattern";
+ String LIST_VALUE_WITH_PATTERN = "listValueWithPattern";
String SECURE_VALUE = "secureValue";
String ENUMSET_VALUES = "enumSetValues";
String IMMUTABLE_VALUE = "immutableValue";
@@ -82,6 +85,12 @@ public interface TestSingleton<X extends
@ManagedAttribute( validValues = {"[\"TEST_ENUM1\"]", "[\"TEST_ENUM2\", \"TEST_ENUM3\"]"})
Set<TestEnum> getEnumSetValues();
+ @ManagedAttribute(validValuePattern = "foo.*bar" )
+ String getValueWithPattern();
+
+ @ManagedAttribute(validValuePattern = "[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}" )
+ List<String> getListValueWithPattern();
+
@DerivedAttribute
long getDerivedValue();
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/testmodels/singleton/TestSingletonImpl.java Wed Mar 2 18:52:36 2016
@@ -18,6 +18,7 @@
*/
package org.apache.qpid.server.model.testmodels.singleton;
+import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -72,6 +73,12 @@ public class TestSingletonImpl extends A
@ManagedAttributeField
private String _immutableValue;
+ @ManagedAttributeField
+ private String _valueWithPattern;
+
+ @ManagedAttributeField
+ private List<String> _listValueWithPattern;
+
@ManagedObjectFactoryConstructor
public TestSingletonImpl(final Map<String, Object> attributes)
{
@@ -171,4 +178,16 @@ public class TestSingletonImpl extends A
{
return _securityManager;
}
+
+ @Override
+ public String getValueWithPattern()
+ {
+ return _valueWithPattern;
+ }
+
+ @Override
+ public List<String> getListValueWithPattern()
+ {
+ return _listValueWithPattern;
+ }
}
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ApiDocsServlet.java Wed Mar 2 18:52:36 2016
@@ -394,20 +394,33 @@ public class ApiDocsServlet extends Abst
private String renderType(final ConfiguredObjectAttribute attribute)
{
final Class type = attribute.getType();
- return renderType(type,
- attribute instanceof ConfiguredSettableAttribute && ((ConfiguredSettableAttribute)attribute).hasValidValues()
- ? ((ConfiguredSettableAttribute)attribute).validValues() : null);
+ Collection<String> validValues;
+ String validValuePattern;
+
+ if(attribute instanceof ConfiguredSettableAttribute)
+ {
+ ConfiguredSettableAttribute<?,?> settableAttribute = (ConfiguredSettableAttribute<?,?>) attribute;
+ validValues = settableAttribute.hasValidValues() ? settableAttribute.validValues() : null;
+ validValuePattern = settableAttribute.vaidValuePattern();
+ }
+ else
+ {
+ validValues = null;
+ validValuePattern = "";
+ }
+
+ return renderType(type, validValues, validValuePattern);
}
private String renderType(final OperationParameter parameter)
{
final Class type = parameter.getType();
List<String> validValues = parameter.getValidValues();
- return renderType(type, validValues);
+ return renderType(type, validValues, "");
}
- private String renderType(Class type, Collection<String> validValues) {
+ private String renderType(Class type, Collection<String> validValues, final String validValuePattern) {
if(Enum.class.isAssignableFrom(type))
{
return "<div class=\"restriction\" title=\"enum: " + EnumSet.allOf(type) + "\">string</div>";
@@ -424,10 +437,16 @@ public class ApiDocsServlet extends Abst
{
StringBuilder returnVal = new StringBuilder();
final boolean hasValuesRestriction = validValues != null && !validValues.isEmpty();
+
+ // TODO - valid values and patterns might contain characters which should be escaped
if(hasValuesRestriction)
{
returnVal.append("<div class=\"restricted\" title=\"Valid values: " + validValues + "\">");
}
+ else if(validValuePattern != null && !"".equals(validValuePattern))
+ {
+ returnVal.append("<div class=\"restricted\" title=\"Valid value pattern: " + validValuePattern+ "\">");
+ }
if(Number.class.isAssignableFrom(type))
{
Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java?rev=1733351&r1=1733350&r2=1733351&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java Wed Mar 2 18:52:36 2016
@@ -193,6 +193,10 @@ public class MetaDataServlet extends Abs
}
attrDetails.put("validValues", convertedValues);
}
+ else if(!"".equals(automatedAttribute.vaidValuePattern()))
+ {
+ attrDetails.put("validValuesPattern", automatedAttribute.vaidValuePattern());
+ }
}
if (attribute.isSecure())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org