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 2016/05/23 15:25:45 UTC
svn commit: r1745217 - in /qpid/java/trunk:
broker-core/src/main/java/org/apache/qpid/server/logging/
broker-core/src/main/java/org/apache/qpid/server/logging/subjects/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/o...
Author: rgodfrey
Date: Mon May 23 15:25:45 2016
New Revision: 1745217
URL: http://svn.apache.org/viewvc?rev=1745217&view=rev
Log:
QPID-7000 : Add a $management address space containing a management node for the broker
Added:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemAddressSpaceAlias.java
- copied, changed from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/PatternMatchingAlias.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemAddressSpaceCreator.java
- copied, changed from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistryImpl.java
- copied, changed from r1745216, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/SystemAddressSpaceAliasImpl.java
- copied, changed from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/PatternMatchingAliasImpl.java
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java (with props)
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpaceCreator.java
- copied, changed from r1745130, qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpacePrincipal.java
- copied, changed from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPrincipal.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AMQPConnection.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPropertiesNode.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/SecurityManagerTest.java
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractMessageLogger.java Mon May 23 15:25:45 2016
@@ -149,7 +149,7 @@ public abstract class AbstractMessageLog
{
if (connection.getAuthorizedPrincipal() != null)
{
- if (connection.getVirtualHostName() != null)
+ if (connection.getAddressSpaceName() != null)
{
/**
* LOG FORMAT used by the AMQPConnectorActor follows
@@ -165,7 +165,7 @@ public abstract class AbstractMessageLog
connection.getConnectionId(),
connection.getAuthorizedPrincipal().getName(),
connection.getRemoteAddressString(),
- connection.getVirtualHostName())
+ connection.getAddressSpaceName())
+ "] ";
}
@@ -198,9 +198,9 @@ public abstract class AbstractMessageLog
(connection == null || connection.getRemoteAddressString() == null)
? "?"
: connection.getRemoteAddressString(),
- (connection == null || connection.getVirtualHostName() == null)
+ (connection == null || connection.getAddressSpaceName() == null)
? "?"
- : connection.getVirtualHostName(),
+ : connection.getAddressSpaceName(),
session.getChannelId())
+ "] ";
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java Mon May 23 15:25:45 2016
@@ -48,7 +48,7 @@ public class ChannelLogSubject extends A
connection == null ? -1L : connection.getConnectionId(),
(connection == null || connection.getAuthorizedPrincipal() == null) ? "?" : connection.getAuthorizedPrincipal().getName(),
(connection == null || connection.getRemoteAddressString() == null) ? "?" : connection.getRemoteAddressString(),
- (connection == null || connection.getVirtualHostName() == null) ? "?" : connection.getVirtualHostName(),
+ (connection == null || connection.getAddressSpaceName() == null) ? "?" : connection.getAddressSpaceName(),
session.getChannelId());
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java Mon May 23 15:25:45 2016
@@ -58,7 +58,7 @@ public class ConnectionLogSubject extend
{
if (_connection.getAuthorizedPrincipal() != null)
{
- if (_connection.getVirtualHostName() != null)
+ if (_connection.getAddressSpaceName() != null)
{
/**
* LOG FORMAT used by the AMQPConnectorActor follows
@@ -74,7 +74,7 @@ public class ConnectionLogSubject extend
_connection.getConnectionId(),
_connection.getAuthorizedPrincipal().getName(),
_connection.getRemoteAddressString(),
- _connection.getVirtualHostName())
+ _connection.getAddressSpaceName())
+ "] ");
_upToDate = true;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Mon May 23 15:25:45 2016
@@ -249,6 +249,8 @@ public interface Broker<X extends Broker
Collection<AccessControlProvider<?>> getAccessControlProviders();
+ NamedAddressSpace getSystemAddressSpace(String name);
+
Collection<GroupProvider<?>> getGroupProviders();
/**
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java Mon May 23 15:25:45 2016
@@ -22,6 +22,7 @@ package org.apache.qpid.server.model;
import java.security.Principal;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import org.apache.qpid.server.message.MessageDestination;
@@ -66,4 +67,5 @@ public interface NamedAddressSpace exten
Collection<? extends Connection<?>> getConnections();
+ List<String> getGlobalAddressDomains();
}
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemAddressSpaceAlias.java (from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/PatternMatchingAlias.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemAddressSpaceAlias.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemAddressSpaceAlias.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/PatternMatchingAlias.java&r1=1745130&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/PatternMatchingAlias.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemAddressSpaceAlias.java Mon May 23 15:25:45 2016
@@ -20,11 +20,11 @@
*/
package org.apache.qpid.server.model;
-@ManagedObject( category = false, type = PatternMatchingAlias.TYPE_NAME)
-public interface PatternMatchingAlias<X extends PatternMatchingAlias<X>> extends FixedVirtualHostNodeAlias<X>
+@ManagedObject( category = false, type = SystemAddressSpaceAlias.TYPE_NAME)
+public interface SystemAddressSpaceAlias<X extends SystemAddressSpaceAlias<X>> extends VirtualHostAlias<X>
{
- String TYPE_NAME = "patternMatchingAlias";
+ String TYPE_NAME = "systemAddressAlias";
String PATTERN = "pattern";
@@ -32,5 +32,8 @@ public interface PatternMatchingAlias<X
int getPriority();
@ManagedAttribute( mandatory = true)
- public String getPattern();
+ String getPattern();
+
+ @ManagedAttribute( mandatory = true)
+ String getSystemAddressSpace();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Mon May 23 15:25:45 2016
@@ -38,6 +38,7 @@ import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -45,6 +46,8 @@ import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
@@ -58,6 +61,7 @@ import org.apache.qpid.bytebuffer.QpidBy
import org.apache.qpid.server.BrokerPrincipal;
import org.apache.qpid.server.logging.QpidLoggerTurboFilter;
import org.apache.qpid.server.logging.StartupAppender;
+import org.apache.qpid.server.plugin.SystemAddressSpaceCreator;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.HousekeepingExecutor;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
@@ -141,6 +145,8 @@ public class BrokerAdapter extends Abstr
private final BufferPoolMXBean _bufferPoolMXBean;
private final List<String> _jvmArguments;
private HousekeepingExecutor _houseKeepingTaskExecutor;
+ private final AddressSpaceRegistry _addressSpaceRegistry = new AddressSpaceRegistry();
+
@ManagedObjectFactoryConstructor
public BrokerAdapter(Map<String, Object> attributes,
@@ -211,6 +217,17 @@ public class BrokerAdapter extends Abstr
}
}
+ private void registerSystemAddressSpaces()
+ {
+ QpidServiceLoader qpidServiceLoader = new QpidServiceLoader();
+ Iterable<SystemAddressSpaceCreator> factories = qpidServiceLoader.instancesOf(SystemAddressSpaceCreator.class);
+ for(SystemAddressSpaceCreator creator : factories)
+ {
+ creator.register(_addressSpaceRegistry);
+ }
+ }
+
+
@Override
protected void postResolve()
{
@@ -606,10 +623,18 @@ public class BrokerAdapter extends Abstr
getEventLogger().message(BrokerMessages.PROCESS(SystemUtils.getProcessPid()));
}
+ registerSystemAddressSpaces();
+
assignTargetSizes();
}
@Override
+ public NamedAddressSpace getSystemAddressSpace(String name)
+ {
+ return _addressSpaceRegistry.getAddressSpace(name);
+ }
+
+ @Override
public Collection<GroupProvider<?>> getGroupProviders()
{
Collection children = getChildren(GroupProvider.class);
@@ -1304,4 +1329,39 @@ public class BrokerAdapter extends Abstr
return "text/plain;charset=utf-8";
}
}
+
+ private class AddressSpaceRegistry implements SystemAddressSpaceCreator.AddressSpaceRegistry
+ {
+ private final ConcurrentMap<String, NamedAddressSpace> _systemAddressSpaces = new ConcurrentHashMap<>();
+
+ @Override
+ public void registerAddressSpace(final NamedAddressSpace addressSpace)
+ {
+ _systemAddressSpaces.put(addressSpace.getName(), addressSpace);
+ }
+
+ @Override
+ public void removeAddressSpace(final NamedAddressSpace addressSpace)
+ {
+ _systemAddressSpaces.remove(addressSpace.getName(), addressSpace);
+ }
+
+ @Override
+ public void removeAddressSpace(final String name)
+ {
+ _systemAddressSpaces.remove(name);
+ }
+
+ @Override
+ public NamedAddressSpace getAddressSpace(final String name)
+ {
+ return _systemAddressSpaces.get(name);
+ }
+
+ @Override
+ public Broker<?> getBroker()
+ {
+ return BrokerAdapter.this;
+ }
+ }
}
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemAddressSpaceCreator.java (from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemAddressSpaceCreator.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemAddressSpaceCreator.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java&r1=1745130&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemNodeCreator.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/SystemAddressSpaceCreator.java Mon May 23 15:25:45 2016
@@ -20,22 +20,22 @@
*/
package org.apache.qpid.server.plugin;
-import org.apache.qpid.server.message.MessageNode;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.NamedAddressSpace;
-public interface SystemNodeCreator extends Pluggable
+public interface SystemAddressSpaceCreator extends Pluggable
{
- interface SystemNodeRegistry
+ interface AddressSpaceRegistry
{
- void registerSystemNode(MessageNode node);
- void removeSystemNode(MessageNode node);
- void removeSystemNode(String name);
+ void registerAddressSpace(NamedAddressSpace addressSpace);
+ void removeAddressSpace(NamedAddressSpace addressSpace);
+ void removeAddressSpace(String name);
+ NamedAddressSpace getAddressSpace(String name);
- VirtualHost<?> getVirtualHost();
+ Broker<?> getBroker();
- boolean hasSystemNode(String name);
}
- void register(SystemNodeRegistry registry);
+ void register(AddressSpaceRegistry registry);
}
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java?rev=1745217&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java Mon May 23 15:25:45 2016
@@ -0,0 +1,34 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.protocol;
+
+public interface LinkRegistry
+{
+ LinkModel getDurableSendingLink(String name);
+
+ boolean registerSendingLink(String name, LinkModel link);
+
+ boolean unregisterSendingLink(String name);
+
+ LinkModel getDurableReceivingLink(String name);
+
+ boolean registerReceivingLink(String name, LinkModel link);
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistryImpl.java (from r1745216, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistryImpl.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistryImpl.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java&r1=1745216&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistry.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/protocol/LinkRegistryImpl.java Mon May 23 15:25:45 2016
@@ -23,16 +23,18 @@ package org.apache.qpid.server.protocol;
import java.util.HashMap;
import java.util.Map;
-public class LinkRegistry
+public class LinkRegistryImpl implements LinkRegistry
{
private final Map<String, LinkModel> _sendingLinks = new HashMap<String, LinkModel>();
private final Map<String, LinkModel> _receivingLinks = new HashMap<String, LinkModel>();
+ @Override
public synchronized LinkModel getDurableSendingLink(String name)
{
return _sendingLinks.get(name);
}
+ @Override
public synchronized boolean registerSendingLink(String name, LinkModel link)
{
if(_sendingLinks.containsKey(name))
@@ -46,6 +48,7 @@ public class LinkRegistry
}
}
+ @Override
public synchronized boolean unregisterSendingLink(String name)
{
if(!_sendingLinks.containsKey(name))
@@ -59,11 +62,13 @@ public class LinkRegistry
}
}
+ @Override
public synchronized LinkModel getDurableReceivingLink(String name)
{
return _receivingLinks.get(name);
}
+ @Override
public synchronized boolean registerReceivingLink(String name, LinkModel link)
{
if(_receivingLinks.containsKey(name))
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/SecurityManager.java Mon May 23 15:25:45 2016
@@ -310,7 +310,7 @@ public class SecurityManager
public void authoriseCreateConnection(final AMQPConnection<?> connection)
{
- String virtualHostName = connection.getVirtualHostName();
+ String virtualHostName = connection.getAddressSpaceName();
ObjectProperties properties = new ObjectProperties(virtualHostName);
properties.put(Property.VIRTUALHOST_NAME, virtualHostName);
if (!checkAllPlugins(ObjectType.VIRTUALHOST, properties, Operation.ACCESS))
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AMQPConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AMQPConnection.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AMQPConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AMQPConnection.java Mon May 23 15:25:45 2016
@@ -41,7 +41,7 @@ public interface AMQPConnection<C extend
String getRemoteAddressString();
- String getVirtualHostName();
+ String getAddressSpaceName();
void notifyWork();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/AbstractAMQPConnection.java Mon May 23 15:25:45 2016
@@ -293,7 +293,7 @@ public abstract class AbstractAMQPConnec
}
@Override
- public final String getVirtualHostName()
+ public final String getAddressSpaceName()
{
return getAddressSpace() == null ? null : getAddressSpace().getName();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/NonBlockingConnection.java Mon May 23 15:25:45 2016
@@ -298,7 +298,8 @@ public class NonBlockingConnection imple
}
}
- catch (IOException | ConnectionScopedRuntimeException e)
+ catch (IOException |
+ ConnectionScopedRuntimeException e)
{
if (LOGGER.isDebugEnabled())
{
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java?rev=1745217&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java Mon May 23 15:25:45 2016
@@ -0,0 +1,41 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.txn;
+
+import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
+
+public class DtxNotSupportedException extends ConnectionScopedRuntimeException
+{
+ public DtxNotSupportedException(final String message)
+ {
+ super(message);
+ }
+
+ public DtxNotSupportedException(final String message, final Throwable cause)
+ {
+ super(message, cause);
+ }
+
+ public DtxNotSupportedException(final Throwable cause)
+ {
+ super(cause);
+ }
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxNotSupportedException.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractSystemMessageSource.java Mon May 23 15:25:45 2016
@@ -38,6 +38,7 @@ import org.apache.qpid.server.message.Me
import org.apache.qpid.server.message.MessageSource;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.message.internal.InternalMessage;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.store.MessageDurability;
@@ -52,16 +53,15 @@ public abstract class AbstractSystemMess
{
protected final UUID _id;
protected final String _name;
- protected final VirtualHost<?> _virtualHost;
+ protected final NamedAddressSpace _addressSpace;
private List<Consumer> _consumers = new CopyOnWriteArrayList<>();
- public AbstractSystemMessageSource(
- String name, final VirtualHost<?> virtualHost)
+ public AbstractSystemMessageSource(String name, final NamedAddressSpace addressSpace)
{
_name = name;
- _id = UUID.nameUUIDFromBytes((getClass().getSimpleName() + "/" + virtualHost.getName() + "/" + name).getBytes(
+ _id = UUID.nameUUIDFromBytes((getClass().getSimpleName() + "/" + addressSpace.getName() + "/" + name).getBytes(
StandardCharsets.UTF_8));
- _virtualHost = virtualHost;
+ _addressSpace = addressSpace;
}
@Override
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Mon May 23 15:25:45 2016
@@ -76,6 +76,7 @@ import org.apache.qpid.server.plugin.Qpi
import org.apache.qpid.server.plugin.SystemNodeCreator;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.protocol.LinkRegistry;
+import org.apache.qpid.server.protocol.LinkRegistryImpl;
import org.apache.qpid.server.queue.QueueEntry;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.stats.StatisticsCounter;
@@ -1079,7 +1080,7 @@ public abstract class AbstractVirtualHos
LinkRegistry linkRegistry = _linkRegistry.get(remoteContainerId);
if(linkRegistry == null)
{
- linkRegistry = new LinkRegistry();
+ linkRegistry = new LinkRegistryImpl();
_linkRegistry.put(remoteContainerId, linkRegistry);
}
return linkRegistry;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPropertiesNode.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPropertiesNode.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPropertiesNode.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPropertiesNode.java Mon May 23 15:25:45 2016
@@ -32,16 +32,17 @@ import org.apache.qpid.server.filter.Fil
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.message.internal.InternalMessage;
import org.apache.qpid.server.message.internal.InternalMessageHeader;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.VirtualHost;
public class VirtualHostPropertiesNode extends AbstractSystemMessageSource
{
- public VirtualHostPropertiesNode(final VirtualHost<?> virtualHost)
+ public VirtualHostPropertiesNode(final NamedAddressSpace virtualHost)
{
this(virtualHost, "$virtualhostProperties");
}
- public VirtualHostPropertiesNode(final VirtualHost<?> virtualHost, String name)
+ public VirtualHostPropertiesNode(final NamedAddressSpace virtualHost, String name)
{
super(name, virtualHost);
}
@@ -66,7 +67,7 @@ public class VirtualHostPropertiesNode e
Map<String, Object> headers = new HashMap<>();
- final List<String> globalAddresseDomains = _virtualHost.getGlobalAddressDomains();
+ final List<String> globalAddresseDomains = _addressSpace.getGlobalAddressDomains();
if (globalAddresseDomains != null && !globalAddresseDomains.isEmpty())
{
String primaryDomain = globalAddresseDomains.get(0);
@@ -86,7 +87,7 @@ public class VirtualHostPropertiesNode e
null, null, (byte) 4, System.currentTimeMillis(),
0L, null, null);
final InternalMessage message =
- InternalMessage.createBytesMessage(_virtualHost.getMessageStore(), header, new byte[0]);
+ InternalMessage.createBytesMessage(_addressSpace.getMessageStore(), header, new byte[0]);
message.setInitialRoutingAddress(getName());
return message;
}
Copied: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/SystemAddressSpaceAliasImpl.java (from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/PatternMatchingAliasImpl.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/SystemAddressSpaceAliasImpl.java?p2=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/SystemAddressSpaceAliasImpl.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/PatternMatchingAliasImpl.java&r1=1745130&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/PatternMatchingAliasImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/SystemAddressSpaceAliasImpl.java Mon May 23 15:25:45 2016
@@ -26,26 +26,30 @@ import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
+import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.PatternMatchingAlias;
import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.SystemAddressSpaceAlias;
-public final class PatternMatchingAliasImpl
- extends AbstractFixedVirtualHostNodeAlias<PatternMatchingAliasImpl>
- implements PatternMatchingAlias<PatternMatchingAliasImpl>
+public final class SystemAddressSpaceAliasImpl
+ extends AbstractVirtualHostAlias<SystemAddressSpaceAliasImpl>
+ implements SystemAddressSpaceAlias<SystemAddressSpaceAliasImpl>
{
@ManagedAttributeField
private String _pattern;
+ @ManagedAttributeField
+ private String _systemAddressSpace;
@ManagedObjectFactoryConstructor
- protected PatternMatchingAliasImpl(final Map<String, Object> attributes, final Port port)
+ protected SystemAddressSpaceAliasImpl(final Map<String, Object> attributes, final Port port)
{
super(attributes, port);
}
- @Override
protected boolean matches(final String name)
{
return name == null ? "".matches(_pattern) : name.matches(_pattern);
@@ -84,4 +88,16 @@ public final class PatternMatchingAliasI
{
return _pattern;
}
+
+ @Override
+ public String getSystemAddressSpace()
+ {
+ return _systemAddressSpace;
+ }
+
+ @Override
+ public NamedAddressSpace getAddressSpace(final String name)
+ {
+ return matches(name) ? getParent(Broker.class).getSystemAddressSpace(getSystemAddressSpace()) : null;
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java Mon May 23 15:25:45 2016
@@ -44,14 +44,19 @@ public final class VirtualHostNameAliasI
public NamedAddressSpace getAddressSpace(final String name)
{
Broker<?> broker = getPort().getParent(Broker.class);
- for(VirtualHostNode<?> vhn : broker.getVirtualHostNodes())
+ NamedAddressSpace addressSpace = broker.getSystemAddressSpace(name);
+ if(addressSpace == null)
{
- VirtualHost<?> vh = vhn.getVirtualHost();
- if(vh != null && vh.getName().equals(name))
+ for (VirtualHostNode<?> vhn : broker.getVirtualHostNodes())
{
- return vh;
+ VirtualHost<?> vh = vhn.getVirtualHost();
+ if (vh != null && vh.getName().equals(name))
+ {
+ addressSpace = vh;
+ break;
+ }
}
}
- return null;
+ return addressSpace;
}
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubjectTest.java Mon May 23 15:25:45 2016
@@ -52,7 +52,7 @@ public class ConnectionLogSubjectTest ex
when(_connection.getConnectionId()).thenReturn(CONNECTION_ID);
when(_connection.getAuthorizedPrincipal()).thenReturn(principal);
when(_connection.getRemoteAddressString()).thenReturn("/"+IP_STRING);
- when(_connection.getVirtualHostName()).thenReturn(VHOST);
+ when(_connection.getAddressSpaceName()).thenReturn(VHOST);
_subject = new ConnectionLogSubject(_connection);
}
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/SecurityManagerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/SecurityManagerTest.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/SecurityManagerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/SecurityManagerTest.java Mon May 23 15:25:45 2016
@@ -192,7 +192,7 @@ public class SecurityManagerTest extends
public void testAuthoriseCreateConnection()
{
AMQPConnection<?> connection = mock(AMQPConnection.class);
- when(connection.getVirtualHostName()).thenReturn(TEST_VIRTUAL_HOST);
+ when(connection.getAddressSpaceName()).thenReturn(TEST_VIRTUAL_HOST);
ObjectProperties properties = new ObjectProperties();
properties.put(Property.NAME, TEST_VIRTUAL_HOST);
Added: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java?rev=1745217&view=auto
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java (added)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java Mon May 23 15:25:45 2016
@@ -0,0 +1,273 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.management.amqp;
+
+import java.security.Principal;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.apache.qpid.exchange.ExchangeDefaults;
+import org.apache.qpid.server.message.InstanceProperties;
+import org.apache.qpid.server.message.MessageDestination;
+import org.apache.qpid.server.message.MessageInstance;
+import org.apache.qpid.server.message.MessageSource;
+import org.apache.qpid.server.message.ServerMessage;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.Connection;
+import org.apache.qpid.server.model.NamedAddressSpace;
+import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.plugin.SystemAddressSpaceCreator;
+import org.apache.qpid.server.protocol.LinkModel;
+import org.apache.qpid.server.protocol.LinkRegistry;
+import org.apache.qpid.server.security.SecurityManager;
+import org.apache.qpid.server.store.MemoryMessageStore;
+import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.store.StorableMessageMetaData;
+import org.apache.qpid.server.transport.AMQPConnection;
+import org.apache.qpid.server.txn.DtxNotSupportedException;
+import org.apache.qpid.server.txn.DtxRegistry;
+import org.apache.qpid.server.txn.ServerTransaction;
+import org.apache.qpid.server.util.Action;
+import org.apache.qpid.server.util.ConnectionScopedRuntimeException;
+import org.apache.qpid.server.virtualhost.VirtualHostPropertiesNode;
+
+public class ManagementAddressSpace implements NamedAddressSpace
+{
+
+ public static final String MANAGEMENT_ADDRESS_SPACE_NAME = "$management";
+ private static final String MANAGEMENT_NODE_NAME = "$management";
+
+ private final String _name;
+ private final SystemAddressSpaceCreator.AddressSpaceRegistry _addressSpaceRegistry;
+ private final ManagementNode _managementNode;
+ private final VirtualHostPropertiesNode _propertiesNode;
+ private final MessageStore _messageStore;
+ private final MessageDestination _defaultDestination = new DefaultDestination();
+ private final List<AMQPConnection<?>> _connections = new CopyOnWriteArrayList<>();
+ private final LinkRegistry _linkRegistry = new NonDurableLinkRegistry();
+ private final Broker<?> _broker;
+ private final Principal _principal;
+
+ public ManagementAddressSpace(final SystemAddressSpaceCreator.AddressSpaceRegistry addressSpaceRegistry)
+ {
+ this(MANAGEMENT_ADDRESS_SPACE_NAME, addressSpaceRegistry);
+ }
+
+ public ManagementAddressSpace(String name, final SystemAddressSpaceCreator.AddressSpaceRegistry addressSpaceRegistry)
+ {
+ _name = name;
+ _addressSpaceRegistry = addressSpaceRegistry;
+ _broker = addressSpaceRegistry.getBroker();
+
+ _managementNode = new ManagementNode(this, addressSpaceRegistry.getBroker(), null);
+ _propertiesNode = new VirtualHostPropertiesNode(this);
+ _messageStore = new MemoryMessageStore();
+ _principal = new ManagementAddressSpacePrincipal(this);
+ }
+
+
+ @Override
+ public MessageSource getAttainedMessageSource(final String name)
+ {
+ if(_managementNode.getName().equals(name))
+ {
+ return _managementNode;
+ }
+ else if(_propertiesNode.getName().equals(name))
+ {
+ return _propertiesNode;
+ }
+ return null;
+ }
+
+ @Override
+ public MessageDestination getAttainedMessageDestination(final String name)
+ {
+ if(_managementNode.getName().equals(name))
+ {
+ return _managementNode;
+ }
+ return null;
+ }
+
+ @Override
+ public void registerConnection(final AMQPConnection<?> connection)
+ {
+ _connections.add(connection);
+ }
+
+ @Override
+ public void deregisterConnection(final AMQPConnection<?> connection)
+ {
+ _connections.remove(connection);
+ }
+
+ @Override
+ public String getRedirectHost(final AmqpPort<?> port)
+ {
+ return null;
+ }
+
+ @Override
+ public Principal getPrincipal()
+ {
+ return _principal;
+ }
+
+ @Override
+ public boolean isActive()
+ {
+ return true;
+ }
+
+ @Override
+ public MessageDestination getDefaultDestination()
+ {
+ return _defaultDestination;
+ }
+
+ @Override
+ public LinkRegistry getLinkRegistry(final String remoteContainerId)
+ {
+ return _linkRegistry;
+ }
+
+ @Override
+ public boolean authoriseCreateConnection(final AMQPConnection<?> connection)
+ {
+ SecurityManager securityManager = _broker.getSecurityManager();
+ securityManager.authoriseCreateConnection(connection);
+ securityManager.accessManagement();
+ return true;
+ }
+
+ @Override
+ public DtxRegistry getDtxRegistry()
+ {
+ throw new DtxNotSupportedException("Distributed Transactions are not supported within this address space");
+ }
+
+ @Override
+ public MessageStore getMessageStore()
+ {
+ return _messageStore;
+ }
+
+ @Override
+ public <T extends MessageSource> T createMessageSource(final Class<T> clazz, final Map<String, Object> attributes)
+ {
+ return null;
+ }
+
+ @Override
+ public <T extends MessageDestination> T createMessageDestination(final Class<T> clazz,
+ final Map<String, Object> attributes)
+ {
+ return null;
+ }
+
+ @Override
+ public boolean hasMessageSources()
+ {
+ return true;
+ }
+
+ @Override
+ public Collection<? extends Connection<?>> getConnections()
+ {
+ return Collections.unmodifiableList(_connections);
+ }
+
+ @Override
+ public String getName()
+ {
+ return _name;
+ }
+
+ @Override
+ public List<String> getGlobalAddressDomains()
+ {
+ return Collections.emptyList();
+ }
+
+ private class DefaultDestination implements MessageDestination
+ {
+ @Override
+ public String getName()
+ {
+ return ExchangeDefaults.DEFAULT_EXCHANGE_NAME;
+ }
+
+ @Override
+ public <M extends ServerMessage<? extends StorableMessageMetaData>> int send(final M message,
+ final String routingAddress,
+ final InstanceProperties instanceProperties,
+ final ServerTransaction txn,
+ final Action<? super MessageInstance> postEnqueueAction)
+ {
+ MessageDestination destination = getAttainedMessageDestination(routingAddress);
+ if(destination == null || destination == this)
+ {
+ return 0;
+ }
+ else
+ {
+ return destination.send(message, routingAddress, instanceProperties, txn, postEnqueueAction);
+ }
+ }
+ }
+
+ private class NonDurableLinkRegistry implements LinkRegistry
+ {
+ @Override
+ public LinkModel getDurableSendingLink(final String name)
+ {
+ return null;
+ }
+
+ @Override
+ public boolean registerSendingLink(final String name, final LinkModel link)
+ {
+ throw new ConnectionScopedRuntimeException("Durable links are not supported");
+ }
+
+ @Override
+ public boolean unregisterSendingLink(final String name)
+ {
+ return false;
+ }
+
+ @Override
+ public LinkModel getDurableReceivingLink(final String name)
+ {
+ return null;
+ }
+
+ @Override
+ public boolean registerReceivingLink(final String name, final LinkModel link)
+ {
+ throw new ConnectionScopedRuntimeException("Durable links are not supported");
+ }
+ }
+}
Propchange: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpace.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpaceCreator.java (from r1745130, qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpaceCreator.java?p2=qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpaceCreator.java&p1=qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java&r1=1745130&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpaceCreator.java Mon May 23 15:25:45 2016
@@ -21,21 +21,22 @@
package org.apache.qpid.server.management.amqp;
import org.apache.qpid.server.plugin.PluggableService;
-import org.apache.qpid.server.plugin.SystemNodeCreator;
+import org.apache.qpid.server.plugin.SystemAddressSpaceCreator;
@PluggableService
-public class ManagementNodeCreator implements SystemNodeCreator
+public class ManagementAddressSpaceCreator implements SystemAddressSpaceCreator
{
+
@Override
- public void register(final SystemNodeRegistry registry)
+ public String getType()
{
- ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHost());
- registry.registerSystemNode(managementNode);
+ return "AMQP-SYSTEM-MANAGEMENT";
}
@Override
- public String getType()
+ public void register(final AddressSpaceRegistry registry)
{
- return "AMQP-VIRTUALHOST-MANAGEMENT";
+ ManagementAddressSpace addressSpace = new ManagementAddressSpace(registry);
+ registry.registerAddressSpace(addressSpace);
}
}
Copied: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpacePrincipal.java (from r1745130, qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPrincipal.java)
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpacePrincipal.java?p2=qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpacePrincipal.java&p1=qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPrincipal.java&r1=1745130&r2=1745217&rev=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostPrincipal.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementAddressSpacePrincipal.java Mon May 23 15:25:45 2016
@@ -18,21 +18,21 @@
* under the License.
*
*/
-package org.apache.qpid.server.virtualhost;
+package org.apache.qpid.server.management.amqp;
import java.security.Principal;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.NamedAddressSpace;
-public class VirtualHostPrincipal implements Principal
+class ManagementAddressSpacePrincipal implements Principal
{
- private final VirtualHost<?> _virtualHost;
+ private final NamedAddressSpace _addressSpace;
private final String _name;
- public VirtualHostPrincipal(VirtualHost<?> virtualHost)
+ public ManagementAddressSpacePrincipal(NamedAddressSpace addressSpace)
{
- _virtualHost = virtualHost;
- _name = "virtualhost:" + virtualHost.getName() + "-" + virtualHost.getId();
+ _addressSpace = addressSpace;
+ _name = "addressspace:" + addressSpace.getName();
}
@Override
@@ -53,13 +53,13 @@ public class VirtualHostPrincipal implem
return false;
}
- VirtualHostPrincipal that = (VirtualHostPrincipal) o;
- return _virtualHost.equals(that._virtualHost);
+ ManagementAddressSpacePrincipal that = (ManagementAddressSpacePrincipal) o;
+ return _addressSpace.equals(that._addressSpace);
}
@Override
public int hashCode()
{
- return _virtualHost.hashCode();
+ return _addressSpace.hashCode();
}
}
Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java Mon May 23 15:25:45 2016
@@ -52,8 +52,8 @@ import org.apache.qpid.server.message.in
import org.apache.qpid.server.model.ConfigurationChangeListener;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ManagedObject;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.plugin.MessageConverter;
import org.apache.qpid.server.plugin.SystemNodeCreator;
import org.apache.qpid.server.protocol.AMQSessionModel;
@@ -102,11 +102,11 @@ class ManagementNode implements MessageS
public static final String RESULTS = "results";
- private final VirtualHost<?> _virtualHost;
+ private final NamedAddressSpace _addressSpace;
private final UUID _id;
- private final SystemNodeCreator.SystemNodeRegistry _registry;
+ private final Action<ManagementNode> _onDelete;
private final ConfiguredObject<?> _managedObject;
private Map<String, ManagementNodeConsumer> _consumers = new ConcurrentHashMap<String, ManagementNodeConsumer>();
@@ -115,11 +115,13 @@ class ManagementNode implements MessageS
private Map<ManagedEntityType,Map<String,ConfiguredObject>> _entities = Collections.synchronizedMap(new LinkedHashMap<ManagedEntityType,Map<String,ConfiguredObject>>());
- public ManagementNode(final SystemNodeCreator.SystemNodeRegistry registry,
- final ConfiguredObject<?> configuredObject)
+
+ public ManagementNode(final NamedAddressSpace addressSpace,
+ final ConfiguredObject<?> configuredObject,
+ final Action<ManagementNode> onDelete)
{
- _virtualHost = registry.getVirtualHost();
- _registry = registry;
+ _addressSpace = addressSpace;
+ _onDelete = onDelete;
final String name = configuredObject.getId() + MANAGEMENT_NODE_NAME;
_id = UUID.nameUUIDFromBytes(name.getBytes(Charset.defaultCharset()));
@@ -127,7 +129,6 @@ class ManagementNode implements MessageS
_managedObject = configuredObject;
configuredObject.addChangeListener(new ModelObjectListener());
-
}
private Class getManagementClass(Class objectClass)
@@ -265,7 +266,7 @@ class ManagementNode implements MessageS
MessageConverter converter =
MessageConverterRegistry.getConverter(message.getClass(), InternalMessage.class);
- final InternalMessage msg = (InternalMessage) converter.convert(message, _virtualHost);
+ final InternalMessage msg = (InternalMessage) converter.convert(message, _addressSpace);
if(validateMessage(msg))
{
@@ -364,10 +365,10 @@ class ManagementNode implements MessageS
}
else
{
- _virtualHost.getDefaultDestination().send(response,
- message.getMessageHeader().getReplyTo(), InstanceProperties.EMPTY,
- new AutoCommitTransaction(_virtualHost.getMessageStore()),
- null);
+ _addressSpace.getDefaultDestination().send(response,
+ message.getMessageHeader().getReplyTo(), InstanceProperties.EMPTY,
+ new AutoCommitTransaction(_addressSpace.getMessageStore()),
+ null);
}
// TODO - route to a queue
@@ -475,7 +476,7 @@ class ManagementNode implements MessageS
responseBody.put(attribute, fixValue(entity.getAttribute(attribute)));
}
- return InternalMessage.createMapMessage(_virtualHost.getMessageStore(),responseHeader, responseBody);
+ return InternalMessage.createMapMessage(_addressSpace.getMessageStore(), responseHeader, responseBody);
}
@@ -501,7 +502,7 @@ class ManagementNode implements MessageS
responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_FORBIDDEN);
}
- return InternalMessage.createMapMessage(_virtualHost.getMessageStore(),responseHeader, Collections.emptyMap());
+ return InternalMessage.createMapMessage(_addressSpace.getMessageStore(), responseHeader, Collections.emptyMap());
}
@@ -612,7 +613,7 @@ class ManagementNode implements MessageS
}
responseHeader.setHeader(STATUS_CODE_HEADER, statusCode);
responseHeader.setHeader(STATUS_DESCRIPTION_HEADER, MessageFormat.format(stateDescription, params));
- return InternalMessage.createBytesMessage(_virtualHost.getMessageStore(), responseHeader, new byte[0]);
+ return InternalMessage.createBytesMessage(_addressSpace.getMessageStore(), responseHeader, new byte[0]);
}
@@ -646,7 +647,7 @@ class ManagementNode implements MessageS
}
else
{
- responseMessage = InternalMessage.createBytesMessage(_virtualHost.getMessageStore(), requestHeader, new byte[0]);
+ responseMessage = InternalMessage.createBytesMessage(_addressSpace.getMessageStore(), requestHeader, new byte[0]);
}
return responseMessage;
}
@@ -689,7 +690,7 @@ class ManagementNode implements MessageS
responseMap.put(type.getName(), parentNames);
}
}
- responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap);
+ responseMessage = InternalMessage.createMapMessage(_addressSpace.getMessageStore(), responseHeader, responseMap);
return responseMessage;
}
@@ -727,7 +728,7 @@ class ManagementNode implements MessageS
responseMap.put(restriction, Arrays.asList(entityMapCopy.get(restriction).getAttributes()));
}
- responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap);
+ responseMessage = InternalMessage.createMapMessage(_addressSpace.getMessageStore(), responseHeader, responseMap);
return responseMessage;
}
@@ -766,7 +767,7 @@ class ManagementNode implements MessageS
ManagedEntityType type = entityMapCopy.get(restriction);
responseMap.put(type.getName(), Arrays.asList(type.getOperations()));
}
- responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap);
+ responseMessage = InternalMessage.createMapMessage(_addressSpace.getMessageStore(), responseHeader, responseMap);
return responseMessage;
}
@@ -887,7 +888,7 @@ class ManagementNode implements MessageS
Map<String,List> responseMap = new HashMap<String, List>();
responseMap.put(ATTRIBUTE_NAMES, attributes);
responseMap.put(RESULTS, responseList);
- responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(),
+ responseMessage = InternalMessage.createMapMessage(_addressSpace.getMessageStore(),
responseHeader,
responseMap);
return responseMessage;
@@ -1223,7 +1224,10 @@ class ManagementNode implements MessageS
{
if(newState == State.DELETED)
{
- _registry.removeSystemNode(ManagementNode.this);
+ if(_onDelete != null)
+ {
+ _onDelete.performAction(ManagementNode.this);
+ }
}
else if(newState == State.ACTIVE && object instanceof org.apache.qpid.server.model.VirtualHost)
{
Modified: qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java?rev=1745217&r1=1745216&r2=1745217&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java (original)
+++ qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java Mon May 23 15:25:45 2016
@@ -22,6 +22,7 @@ package org.apache.qpid.server.managemen
import org.apache.qpid.server.plugin.PluggableService;
import org.apache.qpid.server.plugin.SystemNodeCreator;
+import org.apache.qpid.server.util.Action;
@PluggableService
public class ManagementNodeCreator implements SystemNodeCreator
@@ -29,7 +30,15 @@ public class ManagementNodeCreator imple
@Override
public void register(final SystemNodeRegistry registry)
{
- ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHost());
+ ManagementNode managementNode = new ManagementNode(registry.getVirtualHost(),
+ registry.getVirtualHost(), new Action<ManagementNode>()
+ {
+ @Override
+ public void performAction(final ManagementNode node)
+ {
+ registry.removeSystemNode(node);
+ }
+ });
registry.registerSystemNode(managementNode);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org