summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2015-01-27 21:17:48 +0000
committerRobert Godfrey <rgodfrey@apache.org>2015-01-27 21:17:48 +0000
commitdd4f19afa2a6fa19bb365d9416e824bacdb63b3f (patch)
tree1f98397dbabb8bb568b1b047fa7c629e223b49fb /qpid/java/broker-plugins
parentc8fd56202be79d5a1c4bc0c27552072fe6d0b580 (diff)
downloadqpid-python-dd4f19afa2a6fa19bb365d9416e824bacdb63b3f.tar.gz
QPID-6341 : Enchacements to the meta data model
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1655160 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java50
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java13
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java26
-rw-r--r--qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java59
4 files changed, 111 insertions, 37 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
index 7d86bd3c8c..24fb272186 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
@@ -54,23 +54,16 @@ public class ConfiguredObjectToMapConverter
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 ConfiguredObjectToMapConverter
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 ConfiguredObjectToMapConverter
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 ConfiguredObjectToMapConverter
}
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 ConfiguredObjectToMapConverter
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 ConfiguredObjectToMapConverter
useActualValues,
inheritedActuals,
includeSystemContext,
- extractAsConfig));
+ extractAsConfig,
+ oversizeThreshold));
}
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
index 01dd873aa5..9b384cd36f 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
@@ -43,6 +43,7 @@ import org.apache.qpid.server.model.ConfiguredAutomatedAttribute;
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 AbstractServlet
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;
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
index 71ec6e786f..1ed0741a8e 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
@@ -56,6 +56,7 @@ public class RestServlet extends AbstractServlet
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 AbstractServlet
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 AbstractServlet
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 AbstractServlet
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 AbstractServlet
response.setDateHeader ("Expires", 0);
}
- private int getDepthParameterFromRequest(HttpServletRequest request)
+ private int getIntParameterFromRequest(final HttpServletRequest request,
+ final String paramName,
+ final int defaultValue)
{
- int depth = 1;
- final String depthString = request.getParameter(DEPTH_PARAM);
- if(depthString!=null)
+ 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)
diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
index ac595154bb..f22135ef61 100644
--- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
+++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java
@@ -57,8 +57,14 @@ public class ConfiguredObjectToMapConverterTest extends TestCase
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 ConfiguredObjectToMapConverterTest extends TestCase
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 ConfiguredObjectToMapConverterTest extends TestCase
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 ConfiguredObjectToMapConverterTest extends TestCase
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 ConfiguredObjectToMapConverterTest extends TestCase
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 ConfiguredObjectToMapConverterTest extends TestCase
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");