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