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 2015/01/27 22:17:49 UTC
svn commit: r1655160 - in /qpid/trunk/qpid/java:
broker-core/src/main/java/org/apache/qpid/server/model/
broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/
broker-plugins/management-http/src/test/java/or...
Author: rgodfrey
Date: Tue Jan 27 21:17:48 2015
New Revision: 1655160
URL: http://svn.apache.org/r1655160
Log:
QPID-6341 : Enchacements to the meta data model
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java Tue Jan 27 21:17:48 2015
@@ -123,6 +123,12 @@ public class ConfiguredAutomatedAttribut
return _annotation.persist();
}
+ @Override
+ public boolean isOversized()
+ {
+ return _annotation.oversize();
+ }
+
public String getDescription()
{
return _annotation.description();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredDerivedAttribute.java Tue Jan 27 21:17:48 2015
@@ -54,6 +54,12 @@ public class ConfiguredDerivedAttribute<
return _annotation.persist();
}
+ @Override
+ public boolean isOversized()
+ {
+ return _annotation.oversize();
+ }
+
public String getDescription()
{
return _annotation.description();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java Tue Jan 27 21:17:48 2015
@@ -43,6 +43,8 @@ public abstract class ConfiguredObjectAt
public abstract boolean isPersisted();
+ public abstract boolean isOversized();
+
public abstract String getDescription();
public T convert(final Object value, C object)
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/DerivedAttribute.java Tue Jan 27 21:17:48 2015
@@ -31,5 +31,5 @@ public @interface DerivedAttribute
boolean secure() default false;
boolean persist() default false;
String description() default "";
-
+ boolean oversize() default false;
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java Tue Jan 27 21:17:48 2015
@@ -35,4 +35,5 @@ public @interface ManagedAttribute
String defaultValue() default "";
String description() default "";
String[] validValues() default {};
+ boolean oversize() default false;
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java Tue Jan 27 21:17:48 2015
@@ -37,4 +37,6 @@ public @interface ManagedObject
String type() default "";
String validChildTypes() default "";
boolean register() default true;
+ String description() default "";
+ boolean deprecated() default false;
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java Tue Jan 27 21:17:48 2015
@@ -54,23 +54,16 @@ public class ConfiguredObjectToMapConver
Class<? extends ConfiguredObject> clazz,
int depth,
final boolean useActualValues,
- final boolean includeSystemContext,
- final boolean extractAsConfig)
- {
- return convertObjectToMap(confObject, clazz, depth, useActualValues, false, includeSystemContext, extractAsConfig);
- }
-
- public Map<String, Object> convertObjectToMap(final ConfiguredObject<?> confObject,
- Class<? extends ConfiguredObject> clazz,
- int depth,
- final boolean useActualValues,
final boolean inheritedActuals,
final boolean includeSystemContext,
- final boolean extractAsConfig)
+ final boolean extractAsConfig,
+ final int oversizeThreshold
+ )
{
Map<String, Object> object = new LinkedHashMap<>();
- incorporateAttributesIntoMap(confObject, object, useActualValues, inheritedActuals, includeSystemContext, extractAsConfig);
+ incorporateAttributesIntoMap(confObject, object, useActualValues, inheritedActuals, includeSystemContext,
+ extractAsConfig, oversizeThreshold);
if(!extractAsConfig)
{
incorporateStatisticsIntoMap(confObject, object);
@@ -78,7 +71,8 @@ public class ConfiguredObjectToMapConver
if(depth > 0)
{
- incorporateChildrenIntoMap(confObject, clazz, depth, object, useActualValues, inheritedActuals, includeSystemContext, extractAsConfig);
+ incorporateChildrenIntoMap(confObject, clazz, depth, object, useActualValues, inheritedActuals,
+ includeSystemContext, extractAsConfig, oversizeThreshold);
}
return object;
}
@@ -90,7 +84,8 @@ public class ConfiguredObjectToMapConver
final boolean useActualValues,
final boolean inheritedActuals,
final boolean includeSystemContext,
- final boolean extractAsConfig)
+ final boolean extractAsConfig,
+ final int oversizeThreshold)
{
// if extracting as config add a fake attribute for each secondary parent
if(extractAsConfig && confObject.getModel().getParentTypes(confObject.getCategoryClass()).size()>1)
@@ -160,7 +155,26 @@ public class ConfiguredObjectToMapConver
}
else if (value != null)
{
- object.put(name, value);
+ ConfiguredObjectAttribute<?, ?> attribute = confObject.getModel()
+ .getTypeRegistry()
+ .getAttributeTypes(confObject.getClass())
+ .get(name);
+ if(attribute.isOversized() && !extractAsConfig)
+ {
+ String valueString = String.valueOf(value);
+ if(valueString.length() > oversizeThreshold)
+ {
+ object.put(name, String.valueOf(value).substring(0,oversizeThreshold-4) + "...");
+ }
+ else
+ {
+ object.put(name, value);
+ }
+ }
+ else
+ {
+ object.put(name, value);
+ }
}
else if (extractAsConfig)
{
@@ -220,7 +234,8 @@ public class ConfiguredObjectToMapConver
final boolean useActualValues,
final boolean inheritedActuals,
final boolean includeSystemContext,
- final boolean extractAsConfig)
+ final boolean extractAsConfig,
+ final int oversizeThreshold)
{
List<Class<? extends ConfiguredObject>> childTypes = new ArrayList<>(confObject.getModel().getChildTypes(clazz));
@@ -262,7 +277,8 @@ public class ConfiguredObjectToMapConver
useActualValues,
inheritedActuals,
includeSystemContext,
- extractAsConfig));
+ extractAsConfig,
+ oversizeThreshold));
}
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java Tue Jan 27 21:17:48 2015
@@ -43,6 +43,7 @@ import org.apache.qpid.server.model.Conf
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObjectAttribute;
import org.apache.qpid.server.model.ConfiguredObjectTypeRegistry;
+import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.Model;
public class MetaDataServlet extends AbstractServlet
@@ -103,6 +104,18 @@ public class MetaDataServlet extends Abs
typeDetails.put("attributes", processAttributes(type));
typeDetails.put("managedInterfaces", getManagedInterfaces(type));
typeDetails.put("validChildTypes", getValidChildTypes(type));
+ ManagedObject annotation = type.getAnnotation(ManagedObject.class);
+ if(annotation != null)
+ {
+ if(annotation.deprecated())
+ {
+ typeDetails.put("deprecated",true);
+ }
+ if(!"".equals(annotation.description() ) )
+ {
+ typeDetails.put("description", annotation.description());
+ }
+ }
return typeDetails;
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Tue Jan 27 21:17:48 2015
@@ -56,6 +56,7 @@ public class RestServlet extends Abstrac
private static final String HIERARCHY_INIT_PARAMETER = "hierarchy";
public static final String DEPTH_PARAM = "depth";
+ public static final String OVERSIZE_PARAM = "oversize";
public static final String ACTUALS_PARAM = "actuals";
public static final String SORT_PARAM = "sort";
public static final String INCLUDE_SYS_CONTEXT_PARAM = "includeSysContext";
@@ -71,6 +72,7 @@ public class RestServlet extends Abstrac
public static final Set<String> RESERVED_PARAMS =
new HashSet<>(Arrays.asList(DEPTH_PARAM,
SORT_PARAM,
+ OVERSIZE_PARAM,
ACTUALS_PARAM,
INCLUDE_SYS_CONTEXT_PARAM,
EXTRACT_INITIAL_CONFIG_PARAM,
@@ -345,17 +347,20 @@ public class RestServlet extends Abstrac
boolean actuals;
boolean includeSystemContext;
boolean inheritedActuals;
+ int oversizeThreshold;
if(extractInitialConfig)
{
depth = Integer.MAX_VALUE;
+ oversizeThreshold = Integer.MAX_VALUE;
actuals = true;
includeSystemContext = false;
inheritedActuals = false;
}
else
{
- depth = getDepthParameterFromRequest(request);
+ depth = getIntParameterFromRequest(request, DEPTH_PARAM, 1);
+ oversizeThreshold = getIntParameterFromRequest(request, OVERSIZE_PARAM, 120);
actuals = getBooleanParameterFromRequest(request, ACTUALS_PARAM);
includeSystemContext = getBooleanParameterFromRequest(request, INCLUDE_SYS_CONTEXT_PARAM);
inheritedActuals = getBooleanParameterFromRequest(request, INHERITED_ACTUALS_PARAM);
@@ -364,8 +369,9 @@ public class RestServlet extends Abstrac
List<Map<String, Object>> output = new ArrayList<>();
for(ConfiguredObject configuredObject : allObjects)
{
+
output.add(_objectConverter.convertObjectToMap(configuredObject, getConfiguredClass(),
- depth, actuals, inheritedActuals, includeSystemContext, extractInitialConfig));
+ depth, actuals, inheritedActuals, includeSystemContext, extractInitialConfig, oversizeThreshold));
}
@@ -679,22 +685,24 @@ public class RestServlet extends Abstrac
response.setDateHeader ("Expires", 0);
}
- private int getDepthParameterFromRequest(HttpServletRequest request)
- {
- int depth = 1;
- final String depthString = request.getParameter(DEPTH_PARAM);
- if(depthString!=null)
+ private int getIntParameterFromRequest(final HttpServletRequest request,
+ final String paramName,
+ final int defaultValue)
+ {
+ int intValue = defaultValue;
+ final String stringValue = request.getParameter(paramName);
+ if(stringValue!=null)
{
try
{
- depth = Integer.parseInt(depthString);
+ intValue = Integer.parseInt(stringValue);
}
catch (NumberFormatException e)
{
- LOGGER.warn("Could not parse " + depthString + " as integer");
+ LOGGER.warn("Could not parse " + stringValue + " as integer for parameter " + paramName);
}
}
- return depth;
+ return intValue;
}
private boolean getBooleanParameterFromRequest(HttpServletRequest request, final String paramName)
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java?rev=1655160&r1=1655159&r2=1655160&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java Tue Jan 27 21:17:48 2015
@@ -57,8 +57,14 @@ public class ConfiguredObjectToMapConver
when(_configuredObject.getStatistics()).thenReturn(Collections.singletonMap(statisticName, (Number) statisticValue));
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
- false, false, false);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 0,
+ false,
+ false,
+ false,
+ false,
+ 120);
Map<String, Object> statsAsMap = (Map<String, Object>) resultMap.get(STATISTICS_MAP_KEY);
assertNotNull("Statistics should be part of map", statsAsMap);
assertEquals("Unexpected number of statistics", 1, statsAsMap.size());
@@ -71,8 +77,14 @@ public class ConfiguredObjectToMapConver
final String attributeValue = "value";
configureMockToReturnOneAttribute(_configuredObject, attributeName, attributeValue);
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
- false, false, false);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 0,
+ false,
+ false,
+ false,
+ false,
+ 120);
assertEquals("Unexpected number of attributes", 1, resultMap.size());
assertEquals("Unexpected attribute value", attributeValue, resultMap.get(attributeName));
}
@@ -89,8 +101,14 @@ public class ConfiguredObjectToMapConver
configureMockToReturnOneAttribute(_configuredObject, attributeName, attributeValue);
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
- false, false, false);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 0,
+ false,
+ false,
+ false,
+ false,
+ 120);
assertEquals("Unexpected number of attributes", 1, resultMap.size());
assertEquals("Unexpected attribute value", "attributeConfiguredObjectName", resultMap.get(attributeName));
}
@@ -108,8 +126,14 @@ public class ConfiguredObjectToMapConver
configureMockToReturnOneAttribute(mockChild, childAttributeName, childAttributeValue);
when(_configuredObject.getChildren(TestChild.class)).thenReturn(Arrays.asList(mockChild));
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1,
- false, false, false);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 1,
+ false,
+ false,
+ false,
+ false,
+ 120);
assertEquals("Unexpected parent map size", 1, resultMap.size());
final List<Map<String, Object>> childList = (List<Map<String, Object>>) resultMap.get("testchilds");
@@ -146,8 +170,14 @@ public class ConfiguredObjectToMapConver
when(_configuredObject.getChildren(TestChild.class)).thenReturn(Arrays.asList(mockChild));
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1, true,
- false, false);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 1,
+ true,
+ false,
+ false,
+ false,
+ 120);
assertEquals("Unexpected parent map size", 2, resultMap.size());
assertEquals("Incorrect context", resultMap.get(ConfiguredObject.CONTEXT), actualContext);
List<Map<String, Object>> childList = (List<Map<String, Object>>) resultMap.get("testchilds");
@@ -158,7 +188,14 @@ public class ConfiguredObjectToMapConver
assertEquals("Unexpected child attribute value", childActualAttributeValue, childMap.get(childAttributeName));
- resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1, false, false, false);
+ resultMap = _converter.convertObjectToMap(_configuredObject,
+ ConfiguredObject.class,
+ 1,
+ false,
+ false,
+ false,
+ false,
+ 120);
assertEquals("Unexpected parent map size", 2, resultMap.size());
Map<String, Object> inheritedContext = new HashMap<>();
inheritedContext.put("key","value");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org