You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2013/12/20 11:53:02 UTC
svn commit: r1552591 [2/2] - in /qpid/branches/java-broker-bdb-ha/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/resources/META-IN...
Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/util/MapValueConverter.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/util/MapValueConverter.java?rev=1552591&r1=1552590&r2=1552591&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/util/MapValueConverter.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/util/MapValueConverter.java Fri Dec 20 10:53:01 2013
@@ -313,21 +313,7 @@ public class MapValueConverter
else if (typeObject instanceof ParameterizedType)
{
ParameterizedType parameterizedType= (ParameterizedType)typeObject;
- Type type = parameterizedType.getRawType();
- if (type == Set.class)
- {
- Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
- if (actualTypeArguments.length != 1)
- {
- throw new IllegalArgumentException("Set type argument is not specified");
- }
- Class<?> classObject = (Class<?>)actualTypeArguments[0];
- value = toSet(rawValue, classObject, attributeName);
- }
- else
- {
- throw new IllegalArgumentException("Conversion into " + parameterizedType + " is not yet supported");
- }
+ value = convertParameterizedType(rawValue, parameterizedType, attributeName);
}
else
{
@@ -344,6 +330,62 @@ public class MapValueConverter
return attributes;
}
+ private static Object convertParameterizedType(Object rawValue, ParameterizedType parameterizedType, String attributeName)
+ {
+ Type type = parameterizedType.getRawType();
+ Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
+ Object convertedValue;
+ if (type == Set.class)
+ {
+ if (actualTypeArguments.length != 1)
+ {
+ throw new IllegalArgumentException("Unexpected number of Set type arguments " + actualTypeArguments.length);
+ }
+ Class<?> classObject = (Class<?>)actualTypeArguments[0];
+ convertedValue = toSet(rawValue, classObject, attributeName);
+ }
+ else if (type == Map.class)
+ {
+ if (actualTypeArguments.length != 2)
+ {
+ throw new IllegalArgumentException("Unexpected number of Map type arguments " + actualTypeArguments.length);
+ }
+ Class<?> keyClassObject = (Class<?>)actualTypeArguments[0];
+ Class<?> valueClassObject = (Class<?>)actualTypeArguments[1];
+ convertedValue = toMap(rawValue, keyClassObject, valueClassObject, attributeName);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Conversion into " + parameterizedType + " is not yet supported");
+ }
+ return convertedValue;
+ }
+
+ private static <K,V> Map<K, V> toMap(Object rawValue, Class<K> keyClassObject, Class<V> valueClassObject, String attributeName)
+ {
+ if (rawValue == null)
+ {
+ return null;
+ }
+ if (rawValue instanceof Map)
+ {
+ Map<K, V> convertedMap = new HashMap<K, V>();
+ Map<?, ?> rawMap = (Map<?,?>)rawValue;
+
+ for (Map.Entry<?, ?> entry : rawMap.entrySet())
+ {
+ K convertedKey = convert(entry.getKey(), keyClassObject, attributeName + " (map key)");
+ V convertedValue = convert(entry.getValue(), valueClassObject, attributeName + " (map value)");
+ convertedMap.put(convertedKey, convertedValue);
+ }
+ return convertedMap;
+ }
+ else
+ {
+ throw new IllegalArgumentException("rawValue is not of unexpected type Map, was : " + rawValue.getClass());
+ }
+ }
+
public static <T> Set<T> toSet(Object rawValue, Class<T> setItemClass, String attributeName)
{
if (rawValue == null)
@@ -353,7 +395,7 @@ public class MapValueConverter
HashSet<T> set = new HashSet<T>();
if (rawValue instanceof Iterable)
{
- Iterable<?> iterable = (Iterable<?>)rawValue;
+ Iterable<?> iterable = (Iterable<?>)rawValue;
for (Object object : iterable)
{
T converted = convert(object, setItemClass, attributeName);
Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java?rev=1552591&r1=1552590&r2=1552591&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/StandardVirtualHostFactory.java Fri Dec 20 10:53:01 2013
@@ -23,6 +23,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.configuration.Configuration;
import org.apache.qpid.server.configuration.VirtualHostConfiguration;
+import org.apache.qpid.server.model.ReplicationNode;
import org.apache.qpid.server.model.adapter.VirtualHostAdapter;
import org.apache.qpid.server.plugin.MessageStoreFactory;
import org.apache.qpid.server.plugin.VirtualHostFactory;
@@ -115,4 +116,10 @@ public class StandardVirtualHostFactory
return convertedMap;
}
+
+ @Override
+ public ReplicationNode createReplicationNode(Configuration configuration, org.apache.qpid.server.model.VirtualHost virtualHost)
+ {
+ return null;
+ }
}
Modified: qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java?rev=1552591&r1=1552590&r2=1552591&view=diff
==============================================================================
--- qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java (original)
+++ qpid/branches/java-broker-bdb-ha/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java Fri Dec 20 10:53:01 2013
@@ -23,13 +23,12 @@ package org.apache.qpid.server.model;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.io.File;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import junit.framework.TestCase;
-
import org.apache.qpid.server.configuration.ConfigurationEntry;
import org.apache.qpid.server.configuration.RecovererProvider;
import org.apache.qpid.server.configuration.startup.VirtualHostRecoverer;
@@ -42,6 +41,7 @@ import org.apache.qpid.server.store.Test
import org.apache.qpid.server.util.BrokerTestHelper;
import org.apache.qpid.server.virtualhost.StandardVirtualHostFactory;
import org.apache.qpid.test.utils.QpidTestCase;
+import org.apache.qpid.test.utils.TestFileUtils;
public class VirtualHostTest extends QpidTestCase
{
@@ -49,6 +49,7 @@ public class VirtualHostTest extends Qpi
private Broker _broker;
private StatisticsGatherer _statisticsGatherer;
private RecovererProvider _recovererProvider;
+ private File _configFile;
@Override
protected void setUp() throws Exception
@@ -68,6 +69,10 @@ public class VirtualHostTest extends Qpi
@Override
protected void tearDown() throws Exception
{
+ if (_configFile != null)
+ {
+ _configFile.delete();
+ }
super.tearDown();
CurrentActor.remove();
}
@@ -148,6 +153,18 @@ public class VirtualHostTest extends Qpi
}
+ public void testCreateVirtualHostFromConfigurationFile()
+ {
+ String hostName = getName();
+ int maximuMessageAge = 123;
+ VirtualHost host = createHostFromConfiguration(hostName, maximuMessageAge);
+ host.setDesiredState(State.INITIALISING, State.ACTIVE);
+ assertEquals("Unexpected host name", hostName, host.getName());
+ assertEquals("Unexpected host type", StandardVirtualHostFactory.TYPE, host.getType());
+ assertEquals("Unexpected store type", TestMemoryMessageStore.TYPE, host.getAttribute(VirtualHost.STORE_TYPE));
+ assertEquals("Unexpected maximum message age alert", maximuMessageAge, host.getAttribute(VirtualHost.QUEUE_ALERT_THRESHOLD_MESSAGE_AGE));
+ }
+
private VirtualHost createHost()
{
Map<String, Object> attributes = new HashMap<String, Object>();
@@ -167,4 +184,18 @@ public class VirtualHostTest extends Qpi
return new VirtualHostRecoverer(_statisticsGatherer).create(_recovererProvider, entry, _broker);
}
+ private VirtualHost createHostFromConfiguration(String hostName, long maximuMessageAge)
+ {
+ String content = "<virtualhosts><virtualhost><name>" + hostName + "</name><" + hostName + ">"
+ + "<queues><maximumMessageAge>" + maximuMessageAge + "</maximumMessageAge></queues>"
+ + "<store><class>" + TestMemoryMessageStore.class.getName() + "</class></store>"
+ + "</" + hostName + "></virtualhost></virtualhosts>";
+ _configFile = TestFileUtils.createTempFile(this, ".virtualhost.xml", content);
+ Map<String, Object> attributes = new HashMap<String, Object>();
+ attributes.put(VirtualHost.NAME, getName());
+ attributes.put(VirtualHost.CONFIG_PATH, _configFile.getAbsolutePath());
+ return createHost(attributes);
+ }
}
+
+
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org