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/04/28 12:38:02 UTC
svn commit: r1590593 - in /qpid/trunk/qpid/java:
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/org/apache/qpid/server/virtualhost/
broker-core/src/test/java/org/apache/qpid/server/virtualhost/
broker-plugins/manageme...
Author: rgodfrey
Date: Mon Apr 28 10:38:02 2014
New Revision: 1590593
URL: http://svn.apache.org/r1590593
Log:
QPID-5665 : Address review comments from Alex Rudyy
Modified:
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/VirtualHost.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java
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=1590593&r1=1590592&r2=1590593&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 Mon Apr 28 10:38:02 2014
@@ -1687,7 +1687,7 @@ public abstract class AbstractConfigured
}
}
- protected final static class DuplicateIdException extends RuntimeException
+ protected final static class DuplicateIdException extends IllegalArgumentException
{
public DuplicateIdException(final ConfiguredObject<?> child)
{
@@ -1695,7 +1695,7 @@ public abstract class AbstractConfigured
}
}
- protected final static class DuplicateNameException extends RuntimeException
+ protected final static class DuplicateNameException extends IllegalArgumentException
{
private final String _name;
public DuplicateNameException(final ConfiguredObject<?> child)
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1590593&r1=1590592&r2=1590593&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Mon Apr 28 10:38:02 2014
@@ -137,8 +137,7 @@ public interface VirtualHost<X extends V
Collection<Q> getQueues();
Collection<E> getExchanges();
- E createExchange(String name, State initialState, boolean durable,
- LifetimePolicy lifetime, String type, Map<String, Object> attributes)
+ E createExchange(Map<String, Object> attributes)
throws AccessControlException, IllegalArgumentException;
Q createQueue(Map<String, Object> attributes)
Modified: qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1590593&r1=1590592&r2=1590593&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Mon Apr 28 10:38:02 2014
@@ -98,8 +98,6 @@ public abstract class AbstractVirtualHos
private static final int HOUSEKEEPING_SHUTDOWN_TIMEOUT = 5;
- private final long _createTime = System.currentTimeMillis();
-
private ScheduledThreadPoolExecutor _houseKeepingTasks;
private final Broker<?> _broker;
@@ -391,14 +389,6 @@ public abstract class AbstractVirtualHos
}
}
- public String setType(final String currentType, final String desiredType)
- throws IllegalStateException, AccessControlException
- {
- throw new IllegalStateException();
- }
-
-
-
@Override
public State getState()
{
@@ -566,11 +556,6 @@ public abstract class AbstractVirtualHos
return _houseKeepingTasks.getActiveCount();
}
- public long getCreateTime()
- {
- return _createTime;
- }
-
@Override
public AMQQueue<?> getQueue(String name)
{
@@ -682,98 +667,6 @@ public abstract class AbstractVirtualHos
return children;
}
- public ExchangeImpl<?> createExchange(final String name,
- final State initialState,
- final boolean durable,
- final LifetimePolicy lifetime,
- final String type,
- final Map<String, Object> attributes)
- throws AccessControlException, IllegalArgumentException
- {
- checkVHostStateIsActive();
-
- try
- {
- String alternateExchange = null;
- if(attributes.containsKey(Exchange.ALTERNATE_EXCHANGE))
- {
- Object altExchangeObject = attributes.get(Exchange.ALTERNATE_EXCHANGE);
- if(altExchangeObject instanceof Exchange)
- {
- alternateExchange = ((Exchange) altExchangeObject).getName();
- }
- else if(altExchangeObject instanceof UUID)
- {
- for(Exchange ex : getExchanges())
- {
- if(altExchangeObject.equals(ex.getId()))
- {
- alternateExchange = ex.getName();
- break;
- }
- }
- }
- else if(altExchangeObject instanceof String)
- {
-
- for(Exchange ex : getExchanges())
- {
- if(altExchangeObject.equals(ex.getName()))
- {
- alternateExchange = ex.getName();
- break;
- }
- }
- if(alternateExchange == null)
- {
- try
- {
- UUID id = UUID.fromString(altExchangeObject.toString());
- for(Exchange ex : getExchanges())
- {
- if(id.equals(ex.getId()))
- {
- alternateExchange = ex.getName();
- break;
- }
- }
- }
- catch(IllegalArgumentException e)
- {
- // ignore
- }
-
- }
- }
- }
- Map<String,Object> attributes1 = new HashMap<String, Object>();
-
- attributes1.put(ID, null);
- attributes1.put(NAME, name);
- attributes1.put(Exchange.TYPE, type);
- attributes1.put(Exchange.DURABLE, durable);
- attributes1.put(Exchange.LIFETIME_POLICY,
- lifetime != null && lifetime != LifetimePolicy.PERMANENT
- ? LifetimePolicy.DELETE_ON_NO_LINKS : LifetimePolicy.PERMANENT);
- attributes1.put(Exchange.ALTERNATE_EXCHANGE, alternateExchange);
- ExchangeImpl exchange = createExchange(attributes1);
- return exchange;
-
- }
- catch(ExchangeExistsException e)
- {
- throw new IllegalArgumentException("Exchange with name '" + name + "' already exists");
- }
- catch(ReservedExchangeNameException e)
- {
- throw new UnsupportedOperationException("'" + name + "' is a reserved exchange name");
- }
- catch(AMQUnknownExchangeType e)
- {
- throw new IllegalArgumentException(e);
- }
- }
-
@Override
public ExchangeImpl createExchange(Map<String,Object> attributes)
@@ -1247,15 +1140,6 @@ public abstract class AbstractVirtualHos
{
return getState();
}
- else if(SUPPORTED_EXCHANGE_TYPES.equals(name))
- {
- return getObjectFactory().getSupportedTypes(Exchange.class);
- }
- else if(SUPPORTED_QUEUE_TYPES.equals(name))
- {
- // TODO
- }
-
return super.getAttribute(name);
}
@@ -1268,8 +1152,7 @@ public abstract class AbstractVirtualHos
@Override
public Collection<String> getSupportedQueueTypes()
{
- // TODO
- return null;
+ return getObjectFactory().getSupportedTypes(Queue.class);
}
@Override
Modified: qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java?rev=1590593&r1=1590592&r2=1590593&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java (original)
+++ qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/virtualhost/MockVirtualHost.java Mon Apr 28 10:38:02 2014
@@ -404,18 +404,6 @@ public class MockVirtualHost implements
return null;
}
- @Override
- public ExchangeImpl<?> createExchange(final String name,
- final State initialState,
- final boolean durable,
- final LifetimePolicy lifetime,
- final String type,
- final Map<String, Object> attributes)
- throws AccessControlException, IllegalArgumentException
- {
- return null;
- }
-
public SecurityManager getSecurityManager()
{
return null;
Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java?rev=1590593&r1=1590592&r2=1590593&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java Mon Apr 28 10:38:02 2014
@@ -42,14 +42,16 @@ import org.apache.qpid.management.common
import org.apache.qpid.management.common.mbeans.annotations.MBeanConstructor;
import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription;
import org.apache.qpid.management.common.mbeans.annotations.MBeanOperationParameter;
+import org.apache.qpid.server.exchange.AMQUnknownExchangeType;
import org.apache.qpid.server.jmx.ManagedObject;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.queue.QueueArgumentsConverter;
+import org.apache.qpid.server.virtualhost.ExchangeExistsException;
import org.apache.qpid.server.virtualhost.RequiredExchangeException;
+import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
@MBeanDescription("This MBean exposes the broker level management features")
public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean<VirtualHost> implements ManagedBroker
@@ -166,8 +168,29 @@ public class VirtualHostManagerMBean ext
try
{
- getConfiguredObject().createExchange(name, State.ACTIVE, durable,
- LifetimePolicy.PERMANENT, type, Collections.EMPTY_MAP);
+ Map<String,Object> attributes = new HashMap<>();
+ attributes.put(Exchange.NAME, name);
+ attributes.put(Exchange.TYPE, type);
+ attributes.put(Exchange.DURABLE, durable);
+ attributes.put(Exchange.LIFETIME_POLICY, LifetimePolicy.PERMANENT);
+
+ getConfiguredObject().createExchange(attributes);
+ }
+ catch(ExchangeExistsException e)
+ {
+ String message = "Exchange with name '" + name + "' already exists";
+ JMException jme = new JMException(message);
+ throw new MBeanException(jme, "Error in creating exchange " + name);
+
+ }
+ catch(ReservedExchangeNameException e)
+ {
+ throw new UnsupportedOperationException("'" + name + "' is a reserved exchange name");
+ }
+ catch(AMQUnknownExchangeType e)
+ {
+ JMException jme = new JMException(e.getMessage());
+ throw new MBeanException(jme, "Error in creating exchange " + name);
}
catch (IllegalArgumentException iae)
{
@@ -175,6 +198,7 @@ public class VirtualHostManagerMBean ext
throw new MBeanException(jme, "Error in creating exchange " + name);
}
+
}
@Override
Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java?rev=1590593&r1=1590592&r2=1590593&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java Mon Apr 28 10:38:02 2014
@@ -19,6 +19,7 @@
*/
package org.apache.qpid.server.jmx.mbeans;
+import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -32,12 +33,12 @@ import javax.management.OperationsExcept
import junit.framework.TestCase;
import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
import org.apache.qpid.server.jmx.ManagedObjectRegistry;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.queue.QueueArgumentsConverter;
@@ -150,7 +151,8 @@ public class VirtualHostManagerMBeanTest
public void testCreateNewDurableExchange() throws Exception
{
_virtualHostManagerMBean.createNewExchange(TEST_EXCHANGE_NAME, TEST_EXCHANGE_TYPE, true);
- verify(_mockVirtualHost).createExchange(TEST_EXCHANGE_NAME, State.ACTIVE, true, LifetimePolicy.PERMANENT, TEST_EXCHANGE_TYPE, EMPTY_ARGUMENT_MAP);
+
+ verify(_mockVirtualHost).createExchange(matchesMap(TEST_EXCHANGE_NAME, true, LifetimePolicy.PERMANENT, TEST_EXCHANGE_TYPE));
}
public void testCreateNewExchangeWithUnknownExchangeType() throws Exception
@@ -165,7 +167,10 @@ public class VirtualHostManagerMBeanTest
{
// PASS
}
- verify(_mockVirtualHost, never()).createExchange(TEST_EXCHANGE_NAME, State.ACTIVE, true, LifetimePolicy.PERMANENT, exchangeType, EMPTY_ARGUMENT_MAP);
+ verify(_mockVirtualHost, never()).createExchange(matchesMap(TEST_EXCHANGE_NAME,
+ true,
+ LifetimePolicy.PERMANENT,
+ exchangeType));
}
public void testUnregisterExchange() throws Exception
@@ -200,4 +205,45 @@ public class VirtualHostManagerMBeanTest
verify(mockExchange, never()).delete();
}
+
+ private static Map<String,Object> matchesMap(final String name,
+ final boolean durable,
+ final LifetimePolicy lifetimePolicy,
+ final String exchangeType)
+ {
+ return argThat(new MapMatcher(name, durable, lifetimePolicy, exchangeType));
+ }
+
+ private static class MapMatcher extends ArgumentMatcher<Map<String,Object>>
+ {
+
+ private final String _name;
+ private final boolean _durable;
+ private final LifetimePolicy _lifetimePolicy;
+ private final String _exchangeType;
+
+ public MapMatcher(final String name,
+ final boolean durable,
+ final LifetimePolicy lifetimePolicy,
+ final String exchangeType)
+ {
+ _name = name;
+ _durable = durable;
+ _lifetimePolicy = lifetimePolicy;
+ _exchangeType = exchangeType;
+
+ }
+
+ @Override
+ public boolean matches(final Object o)
+ {
+ Map<String,Object> map = (Map<String,Object>)o;
+
+ return _name.equals(map.get(Exchange.NAME))
+ && _durable == (Boolean) map.get(Exchange.DURABLE)
+ && _lifetimePolicy == map.get(Exchange.LIFETIME_POLICY)
+ && _exchangeType.equals(map.get(Exchange.TYPE));
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org