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 2014/07/29 14:58:38 UTC
svn commit: r1614333 - in /qpid/trunk/qpid/java:
bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/
bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/
bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/b...
Author: rgodfrey
Date: Tue Jul 29 12:58:37 2014
New Revision: 1614333
URL: http://svn.apache.org/r1614333
Log:
QPID-5937 : [Java Broker] Add parameters to REST servlet to allow return of actual vs. effective attribute values
Modified:
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java
qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCMessageStore.java
qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCDetails.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/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/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/StandardEnvironmentFacadeFactory.java Tue Jul 29 12:58:37 2014
@@ -71,7 +71,7 @@ public class StandardEnvironmentFacadeFa
for (ConfigParam cp : EnvironmentParams.SUPPORTED_PARAMS.values())
{
final String parameterName = cp.getName();
- Set<String> contextKeys = parent.getContextKeys();
+ Set<String> contextKeys = parent.getContextKeys(false);
if (!cp.isForReplication() && contextKeys.contains(parameterName))
{
envConfigMap.put(parameterName, parent.getContextValue(String.class, parameterName));
Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeFactory.java Tue Jul 29 12:58:37 2014
@@ -126,7 +126,7 @@ public class ReplicatedEnvironmentFacade
private Map<String, String> buildConfig(ConfiguredObject<?> parent, Pattern paramName)
{
Map<String, String> targetMap = new HashMap<>();
- for (String name : parent.getContextKeys())
+ for (String name : parent.getContextKeys(false))
{
if (paramName.matcher(name).matches())
{
Modified: qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java Tue Jul 29 12:58:37 2014
@@ -418,7 +418,7 @@ public class BDBHAVirtualHostNodeImpl ex
LOGGER.debug("Creating new virtualhost with name : " + getGroupName());
}
- boolean hasBlueprint = getContextKeys().contains(VIRTUALHOST_BLUEPRINT_CONTEXT_VAR);
+ boolean hasBlueprint = getContextKeys(false).contains(VIRTUALHOST_BLUEPRINT_CONTEXT_VAR);
boolean blueprintUtilised = getContext().containsKey(VIRTUALHOST_BLUEPRINT_UTILISED_CONTEXT_VAR)
&& Boolean.parseBoolean(String.valueOf(getContext().get(
VIRTUALHOST_BLUEPRINT_UTILISED_CONTEXT_VAR)));
Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBMessageStoreQuotaEventsTest.java Tue Jul 29 12:58:37 2014
@@ -64,7 +64,7 @@ public class BDBMessageStoreQuotaEventsT
final BDBVirtualHost parent = mock(BDBVirtualHost.class);
Map<String, String> contextMap = Collections.singletonMap("je.log.fileMax", MAX_BDB_LOG_SIZE);
when(parent.getContext()).thenReturn(contextMap);
- when(parent.getContextKeys()).thenReturn(contextMap.keySet());
+ when(parent.getContextKeys(false)).thenReturn(contextMap.keySet());
when(parent.getContextValue(eq(String.class),eq("je.log.fileMax"))).thenReturn(MAX_BDB_LOG_SIZE);
when(parent.getStorePath()).thenReturn(storeLocation);
when(parent.getStoreOverfullSize()).thenReturn(OVERFULL_SIZE);
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Tue Jul 29 12:58:37 2014
@@ -1340,9 +1340,14 @@ public abstract class AbstractConfigured
}
@Override
- public Set<String> getContextKeys()
+ public Set<String> getContextKeys(final boolean excludeSystem)
{
Map<String,String> inheritedContext = new HashMap<>();
+ if(!excludeSystem)
+ {
+ inheritedContext.putAll(System.getenv());
+ inheritedContext.putAll((Map) System.getProperties());
+ }
generateInheritedContext(getModel(), this, inheritedContext);
return Collections.unmodifiableSet(inheritedContext.keySet());
}
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Tue Jul 29 12:58:37 2014
@@ -79,7 +79,7 @@ public interface ConfiguredObject<X exte
<T> T getContextValue(Class<T> clazz, String propertyName);
- Set<String> getContextKeys();
+ Set<String> getContextKeys(final boolean includeSystem);
@DerivedAttribute( persist = true )
String getLastUpdatedBy();
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractStandardVirtualHostNode.java Tue Jul 29 12:58:37 2014
@@ -90,7 +90,7 @@ public abstract class AbstractStandardVi
if (host == null)
{
- boolean hasBlueprint = getContextKeys().contains(VIRTUALHOST_BLUEPRINT_CONTEXT_VAR);
+ boolean hasBlueprint = getContextKeys(false).contains(VIRTUALHOST_BLUEPRINT_CONTEXT_VAR);
boolean blueprintUtilised = getContext().containsKey(VIRTUALHOST_BLUEPRINT_UTILISED_CONTEXT_VAR)
&& Boolean.parseBoolean(String.valueOf(getContext().get(VIRTUALHOST_BLUEPRINT_UTILISED_CONTEXT_VAR)));
Modified: qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java Tue Jul 29 12:58:37 2014
@@ -54,7 +54,7 @@ public class DerbyMessageStoreQuotaEvent
{
final DerbyVirtualHost parent = mock(DerbyVirtualHost.class);
when(parent.getContext()).thenReturn(createContextSettings());
- when(parent.getContextKeys()).thenReturn(Collections.emptySet());
+ when(parent.getContextKeys(false)).thenReturn(Collections.emptySet());
when(parent.getStorePath()).thenReturn(storeLocation);
when(parent.getStoreOverfullSize()).thenReturn(OVERFULL_SIZE);
when(parent.getStoreUnderfullSize()).thenReturn(UNDERFULL_SIZE);
Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCConfigurationStore.java Tue Jul 29 12:58:37 2014
@@ -114,7 +114,7 @@ public class GenericJDBCConfigurationSto
{
Map<String, String> providerAttributes = new HashMap<>();
Set<String> providerAttributeNames = connectionProviderFactory.getProviderAttributeNames();
- providerAttributeNames.retainAll(parent.getContextKeys());
+ providerAttributeNames.retainAll(parent.getContextKeys(false));
for(String attr : providerAttributeNames)
{
providerAttributes.put(attr, parent.getContextValue(String.class, attr));
Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCMessageStore.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCMessageStore.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/GenericJDBCMessageStore.java Tue Jul 29 12:58:37 2014
@@ -93,7 +93,7 @@ public class GenericJDBCMessageStore ext
{
Map<String, String> providerAttributes = new HashMap<>();
Set<String> providerAttributeNames = connectionProviderFactory.getProviderAttributeNames();
- providerAttributeNames.retainAll(parent.getContextKeys());
+ providerAttributeNames.retainAll(parent.getContextKeys(false));
for(String attr : providerAttributeNames)
{
providerAttributes.put(attr, parent.getContextValue(String.class, attr));
Modified: qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCDetails.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCDetails.java?rev=1614333&r1=1614332&r2=1614333&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCDetails.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCDetails.java Tue Jul 29 12:58:37 2014
@@ -224,7 +224,7 @@ public abstract class JDBCDetails
public static JDBCDetails getDetailsForJdbcUrl(String jdbcUrl, final ConfiguredObject<?> object)
{
- final Set<String> contextKeys = object.getContextKeys();
+ final Set<String> contextKeys = object.getContextKeys(false);
Map<String,String> mapConversion = new AbstractMap<String, String>()
{
@Override
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=1614333&r1=1614332&r2=1614333&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 Jul 29 12:58:37 2014
@@ -21,6 +21,7 @@ package org.apache.qpid.server.managemen
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -33,32 +34,54 @@ public class ConfiguredObjectToMapConver
public static final String STATISTICS_MAP_KEY = "statistics";
public Map<String, Object> convertObjectToMap(final ConfiguredObject<?> confObject,
- Class<? extends ConfiguredObject> clazz,
- int depth)
+ Class<? extends ConfiguredObject> clazz,
+ int depth,
+ final boolean useActualValues,
+ final boolean includeSystemContext)
{
Map<String, Object> object = new LinkedHashMap<String, Object>();
- incorporateAttributesIntoMap(confObject, object);
+ incorporateAttributesIntoMap(confObject, object, useActualValues, includeSystemContext);
incorporateStatisticsIntoMap(confObject, object);
if(depth > 0)
{
- incorporateChildrenIntoMap(confObject, clazz, depth, object);
+ incorporateChildrenIntoMap(confObject, clazz, depth, object, useActualValues, includeSystemContext);
}
return object;
}
private void incorporateAttributesIntoMap(
- final ConfiguredObject<?> confObject, Map<String, Object> object)
+ final ConfiguredObject<?> confObject,
+ Map<String, Object> object,
+ final boolean useActualValues,
+ final boolean includeSystemContext)
{
+
for(String name : confObject.getAttributeNames())
{
- Object value = confObject.getAttribute(name);
+ Object value = useActualValues ? confObject.getActualAttributes().get(name) : confObject.getAttribute(name);
if(value instanceof ConfiguredObject)
{
object.put(name, ((ConfiguredObject) value).getName());
}
+ else if(ConfiguredObject.CONTEXT.equals(name))
+ {
+ Map<String,Object> contextValues = new HashMap<>();
+ if(useActualValues)
+ {
+ contextValues.putAll(confObject.getContext());
+ }
+ else
+ {
+ for(String contextName : confObject.getContextKeys(!includeSystemContext))
+ {
+ contextValues.put(contextName, confObject.getContextValue(String.class, contextName));
+ }
+ }
+ object.put(ConfiguredObject.CONTEXT, contextValues);
+ }
else if(value instanceof Collection)
{
List<Object> converted = new ArrayList();
@@ -98,7 +121,7 @@ public class ConfiguredObjectToMapConver
private void incorporateChildrenIntoMap(
final ConfiguredObject confObject,
Class<? extends ConfiguredObject> clazz, int depth,
- Map<String, Object> object)
+ Map<String, Object> object, final boolean useActualValues, final boolean includeSystemContext)
{
for(Class<? extends ConfiguredObject> childClass : confObject.getModel().getChildTypes(clazz))
{
@@ -109,7 +132,7 @@ public class ConfiguredObjectToMapConver
for(ConfiguredObject child : children)
{
- childObjects.add(convertObjectToMap(child, childClass, depth-1));
+ childObjects.add(convertObjectToMap(child, childClass, depth-1, useActualValues, includeSystemContext));
}
if(!childObjects.isEmpty())
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=1614333&r1=1614332&r2=1614333&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 Jul 29 12:58:37 2014
@@ -53,9 +53,11 @@ public class RestServlet extends Abstrac
private static final String HIERARCHY_INIT_PARAMETER = "hierarchy";
public static final String DEPTH_PARAM = "depth";
+ public static final String ACTUALS_PARAM = "actuals";
public static final String SORT_PARAM = "sort";
+ public static final String INCLUDE_SYS_CONTEXT_PARAM = "includeSysContext";
- public static final Set<String> RESERVED_PARAMS = new HashSet<String>(Arrays.asList(DEPTH_PARAM, SORT_PARAM));
+ public static final Set<String> RESERVED_PARAMS = new HashSet<String>(Arrays.asList(DEPTH_PARAM, SORT_PARAM, ACTUALS_PARAM, INCLUDE_SYS_CONTEXT_PARAM));
private Class<? extends ConfiguredObject>[] _hierarchy;
@@ -311,12 +313,14 @@ public class RestServlet extends Abstrac
// TODO - sort special params, everything else should act as a filter
int depth = getDepthParameterFromRequest(request);
+ boolean actuals = getBooleanParameterFromRequest(request, ACTUALS_PARAM);
+ boolean includeSystemContext = getBooleanParameterFromRequest(request, INCLUDE_SYS_CONTEXT_PARAM);
List<Map<String, Object>> output = new ArrayList<Map<String, Object>>();
for(ConfiguredObject configuredObject : allObjects)
{
output.add(_objectConverter.convertObjectToMap(configuredObject, getConfiguredClass(),
- depth));
+ depth, actuals, includeSystemContext));
}
final Writer writer = new BufferedWriter(response.getWriter());
@@ -576,5 +580,22 @@ public class RestServlet extends Abstrac
return depth;
}
+ private boolean getBooleanParameterFromRequest(HttpServletRequest request, final String paramName)
+ {
+ boolean value = false;
+ final String stringValue = request.getParameter(paramName);
+ if(stringValue!=null)
+ {
+ try
+ {
+ value = Boolean.parseBoolean(stringValue);
+ }
+ catch (NumberFormatException e)
+ {
+ LOGGER.warn("Could not parse " + stringValue + " as integer");
+ }
+ }
+ return value;
+ }
}
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=1614333&r1=1614332&r2=1614333&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 Jul 29 12:58:37 2014
@@ -19,15 +19,19 @@
*/
package org.apache.qpid.server.management.plugin.servlet.rest;
+import static org.apache.qpid.server.management.plugin.servlet.rest.ConfiguredObjectToMapConverter.STATISTICS_MAP_KEY;
+import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.apache.qpid.server.management.plugin.servlet.rest.ConfiguredObjectToMapConverter.STATISTICS_MAP_KEY;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import junit.framework.TestCase;
@@ -52,7 +56,8 @@ public class ConfiguredObjectToMapConver
when(_configuredObject.getStatistics()).thenReturn(Collections.singletonMap(statisticName, (Number) statisticValue));
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
+ false, false);
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());
@@ -65,7 +70,8 @@ public class ConfiguredObjectToMapConver
final String attributeValue = "value";
configureMockToReturnOneAttribute(_configuredObject, attributeName, attributeValue);
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
+ false, false);
assertEquals("Unexpected number of attributes", 1, resultMap.size());
assertEquals("Unexpected attribute value", attributeValue, resultMap.get(attributeName));
}
@@ -82,7 +88,8 @@ public class ConfiguredObjectToMapConver
configureMockToReturnOneAttribute(_configuredObject, attributeName, attributeValue);
- Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0,
+ false, false);
assertEquals("Unexpected number of attributes", 1, resultMap.size());
assertEquals("Unexpected attribute value", "attributeConfiguredObjectName", resultMap.get(attributeName));
}
@@ -100,7 +107,8 @@ 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);
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1,
+ false, false);
assertEquals("Unexpected parent map size", 1, resultMap.size());
final List<Map<String, Object>> childList = (List<Map<String, Object>>) resultMap.get("testchilds");
@@ -112,6 +120,58 @@ public class ConfiguredObjectToMapConver
assertEquals("Unexpected child attribute value", childAttributeValue, childMap.get(childAttributeName));
}
+ public void testActuals()
+ {
+ final String childAttributeName = "childattribute";
+ final String childAttributeValue = "childvalue";
+ final String childActualAttributeValue = "${actualvalue}";
+ final Map<String,Object> actualContext = Collections.<String,Object>singletonMap("key","value");
+ final Set<String> inheritedKeys = new HashSet<>(Arrays.asList("key","inheritedkey"));
+
+ Model model = createTestModel();
+
+ TestChild mockChild = mock(TestChild.class);
+ when(mockChild.getModel()).thenReturn(model);
+ when(_configuredObject.getModel()).thenReturn(model);
+ when(_configuredObject.getAttributeNames()).thenReturn(Collections.singletonList(ConfiguredObject.CONTEXT));
+ when(_configuredObject.getContextValue(eq(String.class), eq("key"))).thenReturn("value");
+ when(_configuredObject.getContextValue(eq(String.class),eq("inheritedkey"))).thenReturn("foo");
+ when(_configuredObject.getContextKeys(false)).thenReturn(inheritedKeys);
+ when(_configuredObject.getContext()).thenReturn(actualContext);
+ when(mockChild.getAttributeNames()).thenReturn(Arrays.asList(childAttributeName, ConfiguredObject.CONTEXT));
+ when(mockChild.getAttribute(childAttributeName)).thenReturn(childAttributeValue);
+ when(mockChild.getActualAttributes()).thenReturn(Collections.singletonMap(childAttributeName, childActualAttributeValue));
+ when(_configuredObject.getChildren(TestChild.class)).thenReturn(Arrays.asList(mockChild));
+
+
+ Map<String, Object> resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1, true,
+ false);
+ 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");
+ assertEquals("Unexpected number of children", 1, childList.size());
+ Map<String, Object> childMap = childList.get(0);
+ assertEquals("Unexpected child map size", 2, childMap.size());
+ assertNotNull(childMap);
+
+ assertEquals("Unexpected child attribute value", childActualAttributeValue, childMap.get(childAttributeName));
+
+ resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 1, false, false);
+ assertEquals("Unexpected parent map size", 2, resultMap.size());
+ Map<String, Object> inheritedContext = new HashMap<>();
+ inheritedContext.put("key","value");
+ inheritedContext.put("inheritedkey","foo");
+ assertEquals("Incorrect context", resultMap.get(ConfiguredObject.CONTEXT), inheritedContext);
+ childList = (List<Map<String, Object>>) resultMap.get("testchilds");
+ assertEquals("Unexpected number of children", 1, childList.size());
+ childMap = childList.get(0);
+ assertEquals("Unexpected child map size", 2, childMap.size());
+ assertNotNull(childMap);
+
+ assertEquals("Unexpected child attribute value", childAttributeValue, childMap.get(childAttributeName));
+
+ }
+
private Model createTestModel()
{
Model model = mock(Model.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org