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