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/22 21:03:47 UTC
svn commit: r1745091 [1/3] - in /qpid/java/trunk:
bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/
broker-codegen/src/main/java/org/apache/qpid/server/model/validation/
broker-core/src/main/java/org/apache/qpid/server/configuration...
Author: rgodfrey
Date: Sun May 22 21:03:46 2016
New Revision: 1745091
URL: http://svn.apache.org/viewvc?rev=1745091&view=rev
Log:
QPID-7000 : Allow for the creation of synthetic address spaces which do not have all the other attributes/behaviours of a full "VirtualHost"
Added:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java (with props)
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java (with props)
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java (with props)
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8Impl.java
- copied, changed from r1744872, qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8.java
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttributeOrStatistic.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectInjectedAttributeOrStatistic.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttributeOrStatistic.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortFactory.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/MessageConverter.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/txn/DistributedTransaction.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.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/AsynchronousMessageStoreRecoverer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractFixedVirtualHostNodeAlias.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/VirtualHostNameAliasImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhostalias/VirtualHostAliasTest.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/AMQPConnection_0_10.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ConsumerTarget_0_10.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSession.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegateTest.java
qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/test/java/org/apache/qpid/server/protocol/v0_10/ServerSessionTest.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/BrokerDecoder.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ConsumerTarget_0_8.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_8.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolEngineCreator_0_9_1.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ProtocolOutputConverterImpl.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQChannelTest.java
qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AMQPConnection_0_8Test.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ConsumerTarget_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_v1_0_to_Internal.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ReceivingLink_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/TxnCoordinatorLink_1_0.java
qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/test/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0Test.java
qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
qpid/java/trunk/broker-plugins/derby-store/src/test/java/org/apache/qpid/server/store/derby/DerbyMessageStoreQuotaEventsTest.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MetaDataServlet.java
Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Sun May 22 21:03:46 2016
@@ -119,6 +119,12 @@ public class BDBHAReplicaVirtualHostImpl
}
@Override
+ public boolean isActive()
+ {
+ return false;
+ }
+
+ @Override
protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
{
super.validateChange(proxyForValidation, changedAttributes);
@@ -323,6 +329,27 @@ public class BDBHAReplicaVirtualHostImpl
}
@Override
+ public <T extends MessageSource> T createMessageSource(final Class<T> clazz, final Map<String, Object> attributes)
+ {
+ throwUnsupportedForReplica();
+ return null;
+ }
+
+ @Override
+ public <T extends MessageDestination> T createMessageDestination(final Class<T> clazz,
+ final Map<String, Object> attributes)
+ {
+ throwUnsupportedForReplica();
+ return null;
+ }
+
+ @Override
+ public boolean hasMessageSources()
+ {
+ return false;
+ }
+
+ @Override
public void setTargetSize(final long targetSize)
{
Modified: qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java (original)
+++ qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/validation/AttributeAnnotationValidator.java Sun May 22 21:03:46 2016
@@ -86,8 +86,8 @@ public class AttributeAnnotationValidato
typeUtils = processingEnv.getTypeUtils();
messager = processingEnv.getMessager();
- processAttributes(roundEnv, MANAGED_ATTRIBUTE_CLASS_NAME);
- processAttributes(roundEnv, DERIVED_ATTRIBUTE_CLASS_NAME);
+ processAttributes(roundEnv, MANAGED_ATTRIBUTE_CLASS_NAME, false);
+ processAttributes(roundEnv, DERIVED_ATTRIBUTE_CLASS_NAME, true);
processStatistics(roundEnv, MANAGED_STATISTIC_CLASS_NAME);
@@ -95,7 +95,7 @@ public class AttributeAnnotationValidato
}
public void processAttributes(final RoundEnvironment roundEnv,
- String elementName)
+ String elementName, final boolean allowedNamed)
{
TypeElement annotationElement = elementUtils.getTypeElement(elementName);
@@ -109,7 +109,7 @@ public class AttributeAnnotationValidato
checkInterfaceExtendsConfiguredObject(annotationElement, methodElement);
checkMethodTakesNoArgs(annotationElement, methodElement);
checkMethodName(annotationElement, methodElement);
- checkMethodReturnType(annotationElement, methodElement);
+ checkMethodReturnType(annotationElement, methodElement, allowedNamed);
checkTypeAgreesWithName(annotationElement, methodElement);
@@ -243,9 +243,11 @@ public class AttributeAnnotationValidato
}
}
- public void checkMethodReturnType(final TypeElement annotationElement, final ExecutableElement methodElement)
+ public void checkMethodReturnType(final TypeElement annotationElement,
+ final ExecutableElement methodElement,
+ final boolean allowNamed)
{
- if (!isValidType(methodElement.getReturnType()))
+ if (!(isValidType(methodElement.getReturnType()) || (allowNamed && isNamed(methodElement.getReturnType()))))
{
messager.printMessage(Diagnostic.Kind.ERROR,
"@"
@@ -429,6 +431,24 @@ public class AttributeAnnotationValidato
return false;
}
+ private boolean isNamed(final TypeMirror type)
+ {
+ return isNamed(processingEnv, type);
+ }
+
+ static boolean isNamed(ProcessingEnvironment processingEnv,
+ final TypeMirror type)
+ {
+ Types typeUtils = processingEnv.getTypeUtils();
+
+ String className = "org.apache.qpid.server.model.Named";
+ TypeMirror namedType = getErasure(processingEnv, className);
+
+ return typeUtils.isAssignable(typeUtils.erasure(type), namedType);
+
+ }
+
+
private TypeMirror getErasure(final String className)
{
return getErasure(processingEnv, className);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java Sun May 22 21:03:46 2016
@@ -36,6 +36,7 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObjectAttribute;
import org.apache.qpid.server.model.ConfiguredObjectTypeRegistry;
+import org.apache.qpid.server.model.ConfiguredSettableAttribute;
import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
@@ -412,7 +413,8 @@ public class ManagementModeStoreHandler
ConfiguredObjectTypeRegistry typeRegistry = model.getTypeRegistry();
Map<String, ConfiguredObjectAttribute<?, ?>> attributeTypes =
typeRegistry.getAttributeTypes(Port.class);
- ConfiguredObjectAttribute protocolsAttribute = attributeTypes.get(Port.PROTOCOLS);
+ ConfiguredSettableAttribute protocolsAttribute =
+ (ConfiguredSettableAttribute) attributeTypes.get(Port.PROTOCOLS);
return (Set<Protocol>) protocolsAttribute.convert(object,_parent);
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/connection/ConnectionPrincipal.java Sun May 22 21:03:46 2016
@@ -52,11 +52,6 @@ public class ConnectionPrincipal impleme
return _connection;
}
- public VirtualHost<?> getVirtualHost()
- {
- return _connection.getVirtualHost();
- }
-
@Override
public boolean equals(final Object o)
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Sun May 22 21:03:46 2016
@@ -2929,21 +2929,32 @@ public abstract class AbstractConfigured
Object value;
if(!attribute.isDerived())
{
- ConfiguredSettableAttribute autoAttr = (ConfiguredSettableAttribute) attribute;
+ ConfiguredSettableAttribute settableAttr = (ConfiguredSettableAttribute) attribute;
value = _attributes.get(attribute.getName());
- if (value == null && !"".equals(autoAttr.defaultValue()))
+ if (value == null && !"".equals(settableAttr.defaultValue()))
{
- value = autoAttr.defaultValue();
+ value = settableAttr.defaultValue();
}
+ return convert(settableAttr, value);
}
else
{
- value = _attributes.get(attribute.getName());
+ if(_attributes.containsKey(attribute.getName()))
+ {
+ return _attributes.get(attribute.getName());
+ }
+ else if(_configuredObject != null)
+ {
+ return _configuredObject.getAttribute(attribute.getName());
+ }
+ else
+ {
+ return null;
+ }
}
- return convert(attribute, value);
}
- protected Object convert(ConfiguredObjectAttribute attribute, Object value)
+ protected Object convert(ConfiguredSettableAttribute attribute, Object value)
{
return attribute.convert(value, _configuredObject);
}
@@ -3018,7 +3029,7 @@ public abstract class AbstractConfigured
}
@Override
- protected Object convert(ConfiguredObjectAttribute attribute, Object value)
+ protected Object convert(ConfiguredSettableAttribute attribute, Object value)
{
return attribute.convert(value, _parent);
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredAutomatedAttribute.java Sun May 22 21:03:46 2016
@@ -43,12 +43,15 @@ public class ConfiguredAutomatedAttribut
private final ManagedAttribute _annotation;
private final Method _validValuesMethod;
private final Pattern _secureValuePattern;
+ private final AttributeValueConverter<T> _converter;
ConfiguredAutomatedAttribute(final Class<C> clazz,
final Method getter,
final ManagedAttribute annotation)
{
super(clazz, getter);
+ _converter = AttributeValueConverter.getConverter(getType(), getter.getGenericReturnType());
+
_annotation = annotation;
Method validValuesMethod = null;
@@ -71,6 +74,13 @@ public class ConfiguredAutomatedAttribut
}
}
+ @Override
+ public final AttributeValueConverter<T> getConverter()
+ {
+ return _converter;
+ }
+
+
private Method getValidValuesMethod(final String validValue, final Class<C> clazz)
{
if(validValue.matches("([\\w][\\w\\d_]+\\.)+[\\w][\\w\\d_\\$]*#[\\w\\d_]+\\s*\\(\\s*\\)"))
@@ -218,4 +228,25 @@ public class ConfiguredAutomatedAttribut
{
return _annotation.validValuePattern();
}
+
+
+ @Override
+ public T convert(final Object value, C object)
+ {
+ final AttributeValueConverter<T> converter = getConverter();
+ try
+ {
+ return converter.convert(value, object);
+ }
+ catch (IllegalArgumentException iae)
+ {
+ Type returnType = getGetter().getGenericReturnType();
+ String simpleName = returnType instanceof Class ? ((Class) returnType).getSimpleName() : returnType.toString();
+
+ throw new IllegalArgumentException("Cannot convert '" + value
+ + "' into a " + simpleName
+ + " for attribute " + getName()
+ + " (" + iae.getMessage() + ")", iae);
+ }
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java Sun May 22 21:03:46 2016
@@ -37,7 +37,7 @@ import org.apache.qpid.server.store.Conf
/**
* An object that can be "managed" (eg via the web interface) and usually read from configuration.
*/
-public interface ConfiguredObject<X extends ConfiguredObject<X>>
+public interface ConfiguredObject<X extends ConfiguredObject<X>> extends ContextProvider, TaskExecutorProvider
{
String OVER_SIZED_ATTRIBUTE_ALTERNATIVE_TEXT = "Value is too long to display";
@@ -83,12 +83,6 @@ public interface ConfiguredObject<X exte
@ManagedAttribute
Map<String, String> getContext();
- <T> T getContextValue(Class<T> clazz, String propertyName);
-
- <T> T getContextValue(Class<T> clazz, Type t, String propertyName);
-
- Set<String> getContextKeys(final boolean excludeSystem);
-
@DerivedAttribute( persist = true )
String getLastUpdatedBy();
@@ -259,8 +253,6 @@ public interface ConfiguredObject<X exte
ListenableFuture<Void> deleteAsync();
- TaskExecutor getTaskExecutor();
-
TaskExecutor getChildExecutor();
ConfiguredObjectFactory getObjectFactory();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttribute.java Sun May 22 21:03:46 2016
@@ -45,6 +45,5 @@ public interface ConfiguredObjectAttribu
boolean isSecureValue(Object value);
- T convert(Object value, C object);
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttributeOrStatistic.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttributeOrStatistic.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttributeOrStatistic.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectAttributeOrStatistic.java Sun May 22 21:03:46 2016
@@ -32,5 +32,5 @@ public interface ConfiguredObjectAttribu
T getValue(C configuredObject);
- AttributeValueConverter<T> getConverter();
+ //AttributeValueConverter<T> getConverter();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectInjectedAttributeOrStatistic.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectInjectedAttributeOrStatistic.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectInjectedAttributeOrStatistic.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectInjectedAttributeOrStatistic.java Sun May 22 21:03:46 2016
@@ -29,7 +29,6 @@ abstract class ConfiguredObjectInjectedA
private final String _name;
private final Class<T> _type;
private final Type _genericType;
- private final AttributeValueConverter<T> _converter;
private final TypeValidator _typeValidator;
ConfiguredObjectInjectedAttributeOrStatistic(String name,
@@ -42,7 +41,6 @@ abstract class ConfiguredObjectInjectedA
_type = type;
_genericType = genericType;
_typeValidator = typeValidator;
- _converter = AttributeValueConverter.getConverter(type, genericType);
}
@@ -66,35 +64,9 @@ abstract class ConfiguredObjectInjectedA
}
@Override
- public final AttributeValueConverter<T> getConverter()
- {
- return _converter;
- }
-
- @Override
public final boolean appliesToConfiguredObjectType(final Class<? extends ConfiguredObject<?>> type)
{
return _typeValidator.appliesToType(type);
}
- public final T convert(final Object value, final C object)
- {
- final AttributeValueConverter<T> converter = getConverter();
- try
- {
- return converter.convert(value, object);
- }
- catch (IllegalArgumentException iae)
- {
- Type returnType = getGenericType();
- String simpleName = returnType instanceof Class ? ((Class) returnType).getSimpleName() : returnType.toString();
-
- throw new IllegalArgumentException("Cannot convert '" + value
- + "' into a " + simpleName
- + " for attribute " + getName()
- + " (" + iae.getMessage() + ")", iae);
- }
- }
-
-
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttribute.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttribute.java Sun May 22 21:03:46 2016
@@ -56,23 +56,4 @@ public abstract class ConfiguredObjectMe
return false;
}
- @Override
- public T convert(final Object value, C object)
- {
- final AttributeValueConverter<T> converter = getConverter();
- try
- {
- return converter.convert(value, object);
- }
- catch (IllegalArgumentException iae)
- {
- Type returnType = getGetter().getGenericReturnType();
- String simpleName = returnType instanceof Class ? ((Class) returnType).getSimpleName() : returnType.toString();
-
- throw new IllegalArgumentException("Cannot convert '" + value
- + "' into a " + simpleName
- + " for attribute " + getName()
- + " (" + iae.getMessage() + ")", iae);
- }
- }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttributeOrStatistic.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttributeOrStatistic.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttributeOrStatistic.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectMethodAttributeOrStatistic.java Sun May 22 21:03:46 2016
@@ -32,7 +32,6 @@ abstract class ConfiguredObjectMethodAtt
private final String _name;
private final Class<T> _type;
- private final AttributeValueConverter<T> _converter;
private final Method _getter;
ConfiguredObjectMethodAttributeOrStatistic(final Method getter)
@@ -41,8 +40,6 @@ abstract class ConfiguredObjectMethodAtt
_getter = getter;
_type = (Class<T>) AttributeValueConverter.getTypeFromMethod(getter);
_name = AttributeValueConverter.getNameFromMethod(getter, getType());
- _converter = AttributeValueConverter.getConverter(getType(), getter.getGenericReturnType());
-
}
@Override
@@ -104,11 +101,4 @@ abstract class ConfiguredObjectMethodAtt
return _getter;
}
- @Override
- public AttributeValueConverter<T> getConverter()
- {
- return _converter;
- }
-
-
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableAttribute.java Sun May 22 21:03:46 2016
@@ -35,4 +35,9 @@ public interface ConfiguredSettableAttri
String validValuePattern();
boolean hasValidValues();
+
+ AttributeValueConverter<T> getConverter();
+
+ T convert(Object value, C object);
+
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredSettableInjectedAttribute.java Sun May 22 21:03:46 2016
@@ -41,6 +41,7 @@ public class ConfiguredSettableInjectedA
private static final Logger LOGGER = LoggerFactory.getLogger(ConfiguredSettableInjectedAttribute.class);
+ private final AttributeValueConverter<T> _converter;
private final Method _validValuesMethod;
private final Pattern _secureValuePattern;
private final String _defaultValue;
@@ -68,6 +69,7 @@ public class ConfiguredSettableInjectedA
final String validValuePattern, final TypeValidator typeValidator)
{
super(name, type, genericType, typeValidator);
+ _converter = AttributeValueConverter.getConverter(type, genericType);
_defaultValue = defaultValue;
_secure = secure;
@@ -99,6 +101,12 @@ public class ConfiguredSettableInjectedA
}
}
+ @Override
+ public final AttributeValueConverter<T> getConverter()
+ {
+ return _converter;
+ }
+
private Method getValidValuesMethod(final String validValue)
{
if(validValue.matches("([\\w][\\w\\d_]+\\.)+[\\w][\\w\\d_\\$]*#[\\w\\d_]+\\s*\\(\\s*\\)"))
@@ -254,6 +262,26 @@ public class ConfiguredSettableInjectedA
return convert(value, configuredObject);
}
+ public final T convert(final Object value, final C object)
+ {
+ final AttributeValueConverter<T> converter = getConverter();
+ try
+ {
+ return converter.convert(value, object);
+ }
+ catch (IllegalArgumentException iae)
+ {
+ Type returnType = getGenericType();
+ String simpleName = returnType instanceof Class ? ((Class) returnType).getSimpleName() : returnType.toString();
+
+ throw new IllegalArgumentException("Cannot convert '" + value
+ + "' into a " + simpleName
+ + " for attribute " + getName()
+ + " (" + iae.getMessage() + ")", iae);
+ }
+ }
+
+
@Override
public String validValuePattern()
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Connection.java Sun May 22 21:03:46 2016
@@ -96,7 +96,7 @@ public interface Connection<X extends Co
Protocol getProtocol();
@DerivedAttribute
- VirtualHost<?> getVirtualHost();
+ NamedAddressSpace getAddressSpace();
@DerivedAttribute
Port<?> getPort();
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java?rev=1745091&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java Sun May 22 21:03:46 2016
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.model;
+
+import java.lang.reflect.Type;
+import java.util.Set;
+
+public interface ContextProvider
+{
+ <T> T getContextValue(Class<T> clazz, String propertyName);
+
+ <T> T getContextValue(Class<T> clazz, Type t, String propertyName);
+
+ Set<String> getContextKeys(boolean excludeSystem);
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ContextProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java?rev=1745091&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java Sun May 22 21:03:46 2016
@@ -0,0 +1,26 @@
+/*
+ *
+ * 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.model;
+
+public interface Named
+{
+ String getName();
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Named.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: 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=1745091&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java Sun May 22 21:03:46 2016
@@ -0,0 +1,69 @@
+/*
+ *
+ * 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.model;
+
+import java.security.Principal;
+import java.util.Collection;
+import java.util.Map;
+
+import org.apache.qpid.server.message.MessageDestination;
+import org.apache.qpid.server.message.MessageSource;
+import org.apache.qpid.server.model.port.AmqpPort;
+import org.apache.qpid.server.protocol.LinkRegistry;
+import org.apache.qpid.server.store.MessageStore;
+import org.apache.qpid.server.transport.AMQPConnection;
+import org.apache.qpid.server.txn.DtxRegistry;
+
+public interface NamedAddressSpace extends Named
+{
+
+ MessageSource getAttainedMessageSource(String name);
+
+ MessageDestination getAttainedMessageDestination(String name);
+
+ void registerConnection(AMQPConnection<?> connection);
+ void deregisterConnection(AMQPConnection<?> connection);
+
+
+ String getRedirectHost(AmqpPort<?> port);
+
+ Principal getPrincipal();
+
+ boolean isActive();
+
+ MessageDestination getDefaultDestination();
+
+ LinkRegistry getLinkRegistry(String remoteContainerId);
+
+ boolean authoriseCreateConnection(AMQPConnection<?> connection);
+
+ DtxRegistry getDtxRegistry();
+
+ MessageStore getMessageStore();
+
+ <T extends MessageSource> T createMessageSource(Class<T> clazz, Map<String,Object> attributes);
+ <T extends MessageDestination> T createMessageDestination(Class<T> clazz, Map<String,Object> attributes);
+
+ boolean hasMessageSources();
+
+ Collection<? extends Connection<?>> getConnections();
+
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/NamedAddressSpace.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java?rev=1745091&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java Sun May 22 21:03:46 2016
@@ -0,0 +1,28 @@
+/*
+ *
+ * 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.model;
+
+import org.apache.qpid.server.configuration.updater.TaskExecutor;
+
+public interface TaskExecutorProvider
+{
+ TaskExecutor getTaskExecutor();
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/TaskExecutorProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Sun May 22 21:03:46 2016
@@ -46,7 +46,7 @@ import org.apache.qpid.server.virtualhos
@ManagedObject( defaultType = "ProvidedStore", description = VirtualHost.CLASS_DESCRIPTION)
public interface VirtualHost<X extends VirtualHost<X>> extends ConfiguredObject<X>, StatisticsGatherer,
- EventLoggerProvider
+ EventLoggerProvider, NamedAddressSpace
{
String CLASS_DESCRIPTION = "<p>A virtualhost is a namespace in which messaging is performed. Virtualhosts are "
+ "independent; the messaging goes on a within a virtualhost is independent of any "
@@ -189,6 +189,7 @@ public interface VirtualHost<X extends V
Broker<?> getBroker();
+ @Override
@ManagedOperation(nonModifying = true)
Collection<? extends Connection<?>> getConnections();
@@ -199,8 +200,6 @@ public interface VirtualHost<X extends V
void stop();
- String getRedirectHost(AmqpPort<?> port);
-
Principal getPrincipal();
void registerConnection(AMQPConnection<?> connection);
@@ -208,10 +207,6 @@ public interface VirtualHost<X extends V
Queue<?> getAttainedQueue(UUID id);
- MessageSource getAttainedMessageSource(String name);
-
- MessageDestination getAttainedMessageDestination(String name);
-
<T extends ConfiguredObject<?>> T getAttainedChildFromAddress(Class<T> childClass,
String address);
@@ -223,14 +218,8 @@ public interface VirtualHost<X extends V
void scheduleHouseKeepingTask(long period, HouseKeepingTask task);
- DtxRegistry getDtxRegistry();
-
- LinkRegistry getLinkRegistry(String remoteContainerId);
-
ScheduledFuture<?> scheduleTask(long delay, Runnable timeoutTask);
- boolean authoriseCreateConnection(AMQPConnection<?> connection);
-
String getLocalAddress(String routingAddress);
interface Transaction
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHostAlias.java Sun May 22 21:03:46 2016
@@ -32,5 +32,6 @@ public interface VirtualHostAlias<X exte
int getPriority();
- VirtualHostNode getVirtualHostNode(String name);
+ NamedAddressSpace getAddressSpace(String name);
+
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPort.java Sun May 22 21:03:46 2016
@@ -29,6 +29,7 @@ import org.apache.qpid.server.model.Mana
import org.apache.qpid.server.model.ManagedContextDefault;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.ManagedStatistic;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.StatisticType;
import org.apache.qpid.server.model.StatisticUnit;
@@ -147,7 +148,7 @@ public interface AmqpPort<X extends Amqp
+ " the connection will be aborted.")
long getProtocolHandshakeTimeout();
- VirtualHost<?> getVirtualHost(String name);
+ NamedAddressSpace getAddressSpace(String name);
boolean canAcceptNewConnection(final SocketAddress remoteSocketAddress);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java Sun May 22 21:03:46 2016
@@ -53,21 +53,7 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.logging.messages.BrokerMessages;
import org.apache.qpid.server.logging.messages.PortMessages;
import org.apache.qpid.server.logging.subjects.PortLogSubject;
-import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.DefaultVirtualHostAlias;
-import org.apache.qpid.server.model.HostNameAlias;
-import org.apache.qpid.server.model.KeyStore;
-import org.apache.qpid.server.model.ManagedAttributeField;
-import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.Protocol;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.model.TrustStore;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.VirtualHostAlias;
-import org.apache.qpid.server.model.VirtualHostNameAlias;
-import org.apache.qpid.server.model.VirtualHostNode;
+import org.apache.qpid.server.model.*;
import org.apache.qpid.server.plugin.ProtocolEngineCreator;
import org.apache.qpid.server.plugin.QpidServiceLoader;
import org.apache.qpid.server.plugin.TransportProviderFactory;
@@ -236,7 +222,7 @@ public class AmqpPortImpl extends Abstra
}
@Override
- public VirtualHost<?> getVirtualHost(String name)
+ public NamedAddressSpace getAddressSpace(String name)
{
Collection<VirtualHostAlias> aliases = new TreeSet<>(VIRTUAL_HOST_ALIAS_COMPARATOR);
@@ -244,10 +230,10 @@ public class AmqpPortImpl extends Abstra
for(VirtualHostAlias alias : aliases)
{
- VirtualHostNode vhn = alias.getVirtualHostNode(name);
- if (vhn != null)
+ NamedAddressSpace addressSpace = alias.getAddressSpace(name);
+ if (addressSpace != null)
{
- return vhn.getVirtualHost();
+ return addressSpace;
}
}
return null;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortFactory.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortFactory.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/PortFactory.java Sun May 22 21:03:46 2016
@@ -31,6 +31,7 @@ import org.apache.qpid.server.model.Conf
import org.apache.qpid.server.model.ConfiguredObjectAttribute;
import org.apache.qpid.server.model.ConfiguredObjectFactory;
import org.apache.qpid.server.model.ConfiguredObjectTypeRegistry;
+import org.apache.qpid.server.model.ConfiguredSettableAttribute;
import org.apache.qpid.server.model.Model;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
@@ -63,7 +64,8 @@ public class PortFactory<X extends Port<
ConfiguredObjectTypeRegistry typeRegistry = model.getTypeRegistry();
Map<String, ConfiguredObjectAttribute<?, ?>> attributeTypes =
typeRegistry.getAttributeTypes(Port.class);
- ConfiguredObjectAttribute protocolsAttribute = attributeTypes.get(Port.PROTOCOLS);
+ ConfiguredSettableAttribute protocolsAttribute =
+ (ConfiguredSettableAttribute) attributeTypes.get(Port.PROTOCOLS);
Set<Protocol> protocols = (Set<Protocol>) protocolsAttribute.convert(portAttributes.get(Port.PROTOCOLS),broker);
ProtocolType protocolType = null;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/MessageConverter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/MessageConverter.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/MessageConverter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/plugin/MessageConverter.java Sun May 22 21:03:46 2016
@@ -21,12 +21,12 @@
package org.apache.qpid.server.plugin;
import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.NamedAddressSpace;
public interface MessageConverter<M extends ServerMessage, N extends ServerMessage> extends Pluggable
{
Class<M> getInputClass();
Class<N> getOutputClass();
- N convert(M message, VirtualHost<?> vhost);
+ N convert(M message, NamedAddressSpace addressSpace);
}
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=1745091&r1=1745090&r2=1745091&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 Sun May 22 21:03:46 2016
@@ -20,17 +20,20 @@
*/
package org.apache.qpid.server.transport;
+import java.lang.reflect.Type;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.Principal;
import java.security.PrivilegedAction;
+import java.security.Security;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
@@ -47,24 +50,28 @@ import org.apache.qpid.protocol.AMQConst
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.connection.ConnectionPrincipal;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.logging.LogSubject;
import org.apache.qpid.server.logging.messages.ConnectionMessages;
import org.apache.qpid.server.logging.subjects.ConnectionLogSubject;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ContextProvider;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.Session;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
+import org.apache.qpid.server.model.TaskExecutorProvider;
import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.SessionAdapter;
import org.apache.qpid.server.model.port.AmqpPort;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
import org.apache.qpid.server.stats.StatisticsCounter;
+import org.apache.qpid.server.stats.StatisticsGatherer;
import org.apache.qpid.server.util.Action;
import org.apache.qpid.transport.network.AggregateTicker;
import org.apache.qpid.transport.network.NetworkConnection;
@@ -72,7 +79,7 @@ import org.apache.qpid.transport.network
public abstract class AbstractAMQPConnection<C extends AbstractAMQPConnection<C>>
extends AbstractConfiguredObject<C>
- implements ProtocolEngine, AMQPConnection<C>
+ implements ProtocolEngine, AMQPConnection<C>, EventLoggerProvider
{
private static final Logger _logger = LoggerFactory.getLogger(AbstractAMQPConnection.class);
@@ -91,6 +98,8 @@ public abstract class AbstractAMQPConnec
private final LogSubject _logSubject;
private final AtomicReference<Thread> _messageAssignmentAllowedThread = new AtomicReference<>();
private final AtomicBoolean _messageAssignmentSuspended = new AtomicBoolean();
+ private volatile ContextProvider _contextProvider;
+ private volatile EventLoggerProvider _eventLoggerProvider;
private String _clientProduct;
private String _clientVersion;
private String _remoteProcessPid;
@@ -101,11 +110,12 @@ public abstract class AbstractAMQPConnec
private final SettableFuture<Void> _transportClosedFuture = SettableFuture.create();
private final SettableFuture<Void> _modelClosedFuture = SettableFuture.create();
private final AtomicBoolean _modelClosing = new AtomicBoolean();
- private volatile VirtualHost<?> _virtualHost;
+ private volatile NamedAddressSpace _addressSpace;
private volatile long _lastReadTime;
private volatile long _lastWriteTime;
private volatile AccessControlContext _accessControllerContext;
private volatile Thread _ioThread;
+ private volatile StatisticsGatherer _statisticsGatherer;
private volatile boolean _messageAuthorizationRequired;
@@ -123,6 +133,9 @@ public abstract class AbstractAMQPConnec
super(parentsMap(port),createAttributes(connectionId, network));
_broker = broker;
+ _eventLoggerProvider = broker;
+ _contextProvider = broker;
+ _statisticsGatherer = broker;
_network = network;
_port = port;
_transport = transport;
@@ -282,7 +295,7 @@ public abstract class AbstractAMQPConnec
@Override
public final String getVirtualHostName()
{
- return getVirtualHost() == null ? null : getVirtualHost().getName();
+ return getAddressSpace() == null ? null : getAddressSpace().getName();
}
@Override
@@ -324,10 +337,10 @@ public abstract class AbstractAMQPConnec
protected void updateMaxMessageSize()
{
- _maxMessageSize.set(Math.min(getMaxMessageSize(getPort()), getMaxMessageSize(getVirtualHost())));
+ _maxMessageSize.set(Math.min(getMaxMessageSize(getPort()), getMaxMessageSize(_contextProvider)));
}
- private long getMaxMessageSize(final ConfiguredObject<?> object)
+ private long getMaxMessageSize(final ContextProvider object)
{
long maxMessageSize;
try
@@ -412,7 +425,7 @@ public abstract class AbstractAMQPConnec
{
_messagesDelivered.registerEvent(1L);
_dataDelivered.registerEvent(messageSize);
- getVirtualHost().registerMessageDelivered(messageSize);
+ _statisticsGatherer.registerMessageDelivered(messageSize);
}
@Override
@@ -420,7 +433,7 @@ public abstract class AbstractAMQPConnec
{
_messagesReceived.registerEvent(1L, timestamp);
_dataReceived.registerEvent(messageSize, timestamp);
- getVirtualHost().registerMessageReceived(messageSize, timestamp);
+ _statisticsGatherer.registerMessageReceived(messageSize, timestamp);
}
@Override
@@ -541,25 +554,17 @@ public abstract class AbstractAMQPConnec
{
}
- public final void associateVirtualHost(final VirtualHost<?> virtualHost)
- {
- virtualHost.registerConnection(this);
- _virtualHost = virtualHost;
- updateMaxMessageSize();
- _messageAuthorizationRequired = getVirtualHost().getContextValue(Boolean.class, Broker.BROKER_MSG_AUTH);
- }
-
@Override
public TaskExecutor getChildExecutor()
{
- VirtualHost virtualHost = getVirtualHost();
- if (virtualHost == null)
+ NamedAddressSpace addressSpace = getAddressSpace();
+ if (addressSpace instanceof TaskExecutorProvider)
{
- return super.getChildExecutor();
+ return ((TaskExecutorProvider)addressSpace).getTaskExecutor();
}
else
{
- return virtualHost.getTaskExecutor();
+ return super.getChildExecutor();
}
}
@@ -758,17 +763,10 @@ public abstract class AbstractAMQPConnec
return _logSubject;
}
+ @Override
public EventLogger getEventLogger()
{
- final VirtualHost<?> virtualHost = getVirtualHost();
- if (virtualHost != null)
- {
- return virtualHost.getEventLogger();
- }
- else
- {
- return getBroker().getEventLogger();
- }
+ return _eventLoggerProvider.getEventLogger();
}
@Override
@@ -778,23 +776,44 @@ public abstract class AbstractAMQPConnec
}
@Override
- public VirtualHost<?> getVirtualHost()
+ public NamedAddressSpace getAddressSpace()
{
- return _virtualHost;
+ return _addressSpace;
}
- public void setVirtualHost(VirtualHost<?> virtualHost)
+ public ContextProvider getContextProvider()
{
- associateVirtualHost(virtualHost);
+ return _contextProvider;
+ }
+
+ public void setAddressSpace(NamedAddressSpace addressSpace)
+ {
+ addressSpace.registerConnection(this);
+ _addressSpace = addressSpace;
- _messageCompressionThreshold = virtualHost.getContextValue(Integer.class,
- Broker.MESSAGE_COMPRESSION_THRESHOLD_SIZE);
+ if(addressSpace instanceof EventLoggerProvider)
+ {
+ _eventLoggerProvider = (EventLoggerProvider)addressSpace;
+ }
+ if(addressSpace instanceof ContextProvider)
+ {
+ _contextProvider = (ContextProvider) addressSpace;
+ }
+ if(addressSpace instanceof StatisticsGatherer)
+ {
+ _statisticsGatherer = (StatisticsGatherer) addressSpace;
+ }
+
+ updateMaxMessageSize();
+ _messageAuthorizationRequired = _contextProvider.getContextValue(Boolean.class, Broker.BROKER_MSG_AUTH);
+ _messageCompressionThreshold = _contextProvider.getContextValue(Integer.class,
+ Broker.MESSAGE_COMPRESSION_THRESHOLD_SIZE);
if(_messageCompressionThreshold <= 0)
{
_messageCompressionThreshold = Integer.MAX_VALUE;
}
- getSubject().getPrincipals().add(virtualHost.getPrincipal());
+ getSubject().getPrincipals().add(addressSpace.getPrincipal());
updateAccessControllerContext();
logConnectionOpen();
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DistributedTransaction.java Sun May 22 21:03:46 2016
@@ -23,11 +23,10 @@ package org.apache.qpid.server.txn;
import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.message.MessageInstance;
-import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.queue.BaseQueue;
import org.apache.qpid.server.store.MessageEnqueueRecord;
-import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.TransactionLogResource;
import org.apache.qpid.transport.Xid;
@@ -41,14 +40,14 @@ public class DistributedTransaction impl
private DtxBranch _branch;
private AMQSessionModel _session;
- private VirtualHost<?> _vhost;
+ private DtxRegistry _dtxRegistry;
- public DistributedTransaction(AMQSessionModel session, MessageStore store, VirtualHost<?> vhost)
+ public DistributedTransaction(AMQSessionModel session, DtxRegistry dtxRegistry)
{
_session = session;
- _vhost = vhost;
- _autoCommitTransaction = new AutoCommitTransaction(vhost.getMessageStore());
+ _dtxRegistry = dtxRegistry;
+ _autoCommitTransaction = new AutoCommitTransaction(dtxRegistry.getMessageStore());
}
@Override
@@ -208,7 +207,7 @@ public class DistributedTransaction impl
throw new JoinAndResumeDtxException(id);
}
- DtxBranch branch = _vhost.getDtxRegistry().getBranch(id);
+ DtxBranch branch = _dtxRegistry.getBranch(id);
if(branch == null)
{
@@ -216,8 +215,8 @@ public class DistributedTransaction impl
{
throw new UnknownDtxBranchException(id);
}
- branch = new DtxBranch(id,_vhost.getMessageStore(), _vhost);
- if(_vhost.getDtxRegistry().registerBranch(branch))
+ branch = new DtxBranch(id, _dtxRegistry);
+ if(_dtxRegistry.registerBranch(branch))
{
_branch = branch;
branch.associateSession(_session);
@@ -248,7 +247,7 @@ public class DistributedTransaction impl
public void end(Xid id, boolean fail, boolean suspend)
throws UnknownDtxBranchException, NotAssociatedDtxException, SuspendAndFailDtxException, TimeoutDtxException
{
- DtxBranch branch = _vhost.getDtxRegistry().getBranch(id);
+ DtxBranch branch = _dtxRegistry.getBranch(id);
if(suspend && fail)
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxBranch.java Sun May 22 21:03:46 2016
@@ -31,6 +31,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.message.EnqueueableMessage;
+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.MessageEnqueueRecord;
@@ -55,9 +56,8 @@ public class DtxBranch
private Transaction _transaction;
private long _expiration;
- private VirtualHost<?> _vhost;
private ScheduledFuture<?> _timeoutFuture;
- private MessageStore _store;
+ private final DtxRegistry _dtxRegistry;
private Transaction.StoredXidRecord _storedXidRecord;
@@ -73,16 +73,15 @@ public class DtxBranch
ROLLBACK_ONLY
}
- public DtxBranch(Xid xid, MessageStore store, VirtualHost<?> vhost)
+ public DtxBranch(Xid xid, DtxRegistry dtxRegistry)
{
_xid = xid;
- _store = store;
- _vhost = vhost;
+ _dtxRegistry = dtxRegistry;
}
- public DtxBranch(Transaction.StoredXidRecord storedXidRecord, MessageStore store, VirtualHost<?> vhost)
+ public DtxBranch(Transaction.StoredXidRecord storedXidRecord, DtxRegistry dtxRegistry)
{
- this(new Xid(storedXidRecord.getFormat(), storedXidRecord.getGlobalId(), storedXidRecord.getBranchId()), store, vhost);
+ this(new Xid(storedXidRecord.getFormat(), storedXidRecord.getGlobalId(), storedXidRecord.getBranchId()), dtxRegistry);
_storedXidRecord = storedXidRecord;
}
@@ -132,7 +131,7 @@ public class DtxBranch
_logger.debug("Scheduling timeout and rollback after {}s for DtxBranch {}", delay/1000, _xid);
- _timeoutFuture = _vhost.scheduleTask(delay, new Runnable()
+ _timeoutFuture = _dtxRegistry.scheduleTask(delay, new Runnable()
{
public void run()
{
@@ -215,7 +214,7 @@ public class DtxBranch
{
_logger.debug("Performing prepare for DtxBranch {}", _xid);
- Transaction txn = _store.newTransaction();
+ Transaction txn = _dtxRegistry.getMessageStore().newTransaction();
_storedXidRecord = txn.recordXid(_xid.getFormat(),
_xid.getGlobalId(),
_xid.getBranchId(),
@@ -244,7 +243,7 @@ public class DtxBranch
{
// prepare has previously been called
- Transaction txn = _store.newTransaction();
+ Transaction txn = _dtxRegistry.getMessageStore().newTransaction();
txn.removeXid(_storedXidRecord);
txn.commitTran();
@@ -291,7 +290,7 @@ public class DtxBranch
public void prePrepareTransaction() throws StoreException
{
- _transaction = _store.newTransaction();
+ _transaction = _dtxRegistry.getMessageStore().newTransaction();
for(final EnqueueRecord enqueue : _enqueueRecords)
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/txn/DtxRegistry.java Sun May 22 21:03:46 2016
@@ -25,13 +25,34 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ScheduledFuture;
+
+import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.store.StoreException;
import org.apache.qpid.server.protocol.AMQSessionModel;
+import org.apache.qpid.server.virtualhost.AbstractVirtualHost;
import org.apache.qpid.transport.Xid;
public class DtxRegistry
{
private final Map<ComparableXid, DtxBranch> _branches = new HashMap<ComparableXid, DtxBranch>();
+ private final VirtualHost<?> _virtualHost;
+
+ public DtxRegistry(final VirtualHost<?> virtualHost)
+ {
+ _virtualHost = virtualHost;
+ }
+
+ public MessageStore getMessageStore()
+ {
+ return _virtualHost.getMessageStore();
+ }
+
+ public ScheduledFuture<?> scheduleTask(final long delay, final Runnable task)
+ {
+ return _virtualHost.scheduleTask(delay, task);
+ }
private static final class ComparableXid
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=1745091&r1=1745090&r2=1745091&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 Sun May 22 21:03:46 2016
@@ -212,7 +212,7 @@ public abstract class AbstractVirtualHos
_broker = virtualHostNode.getParent(Broker.class);
_virtualHostNode = virtualHostNode;
- _dtxRegistry = new DtxRegistry();
+ _dtxRegistry = new DtxRegistry(this);
_eventLogger = _broker.getParent(SystemConfig.class).getEventLogger();
@@ -470,6 +470,12 @@ public abstract class AbstractVirtualHos
}
}
+ @Override
+ public boolean isActive()
+ {
+ return getState() == State.ACTIVE;
+ }
+
private void registerSystemNodes()
{
QpidServiceLoader qpidServiceLoader = new QpidServiceLoader();
@@ -2074,4 +2080,40 @@ public abstract class AbstractVirtualHos
}
}
+ @Override
+ public <T extends MessageSource> T createMessageSource(final Class<T> clazz, final Map<String, Object> attributes)
+ {
+ if(Queue.class.isAssignableFrom(clazz))
+ {
+ return (T) createChild((Class<? extends Queue>)clazz, attributes);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot create message source children of class " + clazz.getSimpleName());
+ }
+ }
+
+ @Override
+ public <T extends MessageDestination> T createMessageDestination(final Class<T> clazz,
+ final Map<String, Object> attributes)
+ {
+ if(Exchange.class.isAssignableFrom(clazz))
+ {
+ return (T) createChild((Class<? extends Exchange>)clazz, attributes);
+ }
+ else if(Queue.class.isAssignableFrom(clazz))
+ {
+ return (T) createChild((Class<? extends Queue>)clazz, attributes);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot create message destination children of class " + clazz.getSimpleName());
+ }
+ }
+
+ @Override
+ public boolean hasMessageSources()
+ {
+ return !(_systemNodeSources.isEmpty() && getChildren(Queue.class).isEmpty());
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AsynchronousMessageStoreRecoverer.java Sun May 22 21:03:46 2016
@@ -276,7 +276,7 @@ public class AsynchronousMessageStoreRec
DtxBranch branch = dtxRegistry.getBranch(id);
if (branch == null)
{
- branch = new DtxBranch(storedXid, _store, getVirtualHost());
+ branch = new DtxBranch(storedXid, dtxRegistry);
dtxRegistry.registerBranch(branch);
}
for (Transaction.EnqueueRecord record : enqueues)
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecoverer.java Sun May 22 21:03:46 2016
@@ -258,7 +258,7 @@ public class SynchronousMessageStoreReco
DtxBranch branch = dtxRegistry.getBranch(id);
if(branch == null)
{
- branch = new DtxBranch(storedXid, _store, _virtualHost);
+ branch = new DtxBranch(storedXid, dtxRegistry);
dtxRegistry.registerBranch(branch);
}
for(EnqueueRecord record : enqueues)
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractFixedVirtualHostNodeAlias.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractFixedVirtualHostNodeAlias.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractFixedVirtualHostNodeAlias.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractFixedVirtualHostNodeAlias.java Sun May 22 21:03:46 2016
@@ -24,6 +24,7 @@ import java.util.Map;
import org.apache.qpid.server.model.FixedVirtualHostNodeAlias;
import org.apache.qpid.server.model.ManagedAttributeField;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHostNode;
@@ -47,9 +48,10 @@ abstract class AbstractFixedVirtualHostN
}
@Override
- public VirtualHostNode<?> getVirtualHostNode(final String name)
+ public NamedAddressSpace getAddressSpace(final String name)
{
- return matches(name) ? getVirtualHostNode() : null;
+ VirtualHostNode<?> node = matches(name) ? getVirtualHostNode() : null;
+ return node == null ? null : node.getVirtualHost();
}
protected abstract boolean matches(final String name);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/DefaultVirtualHostAliasImpl.java Sun May 22 21:03:46 2016
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.DefaultVirtualHostAlias;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHostNode;
@@ -40,15 +41,14 @@ public final class DefaultVirtualHostAli
}
@Override
- public VirtualHostNode getVirtualHostNode(final String name)
+ public NamedAddressSpace getAddressSpace(final String name)
{
if(name == null || name.trim().equals(""))
{
Broker<?> broker = getPort().getParent(Broker.class);
VirtualHostNode defaultVirtualHostNode = broker.findDefautVirtualHostNode();
- return defaultVirtualHostNode;
+ return defaultVirtualHostNode == null ? null : defaultVirtualHostNode.getVirtualHost();
}
return null;
}
-
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/HostNameAliasImpl.java Sun May 22 21:03:46 2016
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.HostNameAlias;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.model.port.AmqpPort;
@@ -78,21 +79,21 @@ public class HostNameAliasImpl
@Override
- public VirtualHostNode<?> getVirtualHostNode(final String name)
+ public NamedAddressSpace getAddressSpace(final String name)
{
VirtualHostNode<?> node = null;
- if(matches(name))
+ if (matches(name))
{
node = getVirtualHostNode();
- if(node == null)
+ if (node == null)
{
Broker<?> broker = getPort().getParent(Broker.class);
- VirtualHostNode defaultVirtualHostNode = broker.findDefautVirtualHostNode();
- return defaultVirtualHostNode;
+ node = broker.findDefautVirtualHostNode();
}
}
- return node;
+ return node == null ? null : node.getVirtualHost();
+
}
@Override
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=1745091&r1=1745090&r2=1745091&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 Sun May 22 21:03:46 2016
@@ -24,6 +24,7 @@ import java.util.Map;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
+import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.VirtualHostNameAlias;
@@ -40,7 +41,7 @@ public final class VirtualHostNameAliasI
}
@Override
- public VirtualHostNode getVirtualHostNode(final String name)
+ public NamedAddressSpace getAddressSpace(final String name)
{
Broker<?> broker = getPort().getParent(Broker.class);
for(VirtualHostNode<?> vhn : broker.getVirtualHostNodes())
@@ -48,7 +49,7 @@ public final class VirtualHostNameAliasI
VirtualHost<?> vh = vhn.getVirtualHost();
if(vh != null && vh.getName().equals(name))
{
- return vhn;
+ return vh;
}
}
return null;
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Sun May 22 21:03:46 2016
@@ -119,6 +119,12 @@ class RedirectingVirtualHostImpl
}
@Override
+ public boolean isActive()
+ {
+ return false;
+ }
+
+ @Override
protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
{
super.validateChange(proxyForValidation, changedAttributes);
@@ -324,6 +330,27 @@ class RedirectingVirtualHostImpl
}
@Override
+ public <T extends MessageSource> T createMessageSource(final Class<T> clazz, final Map<String, Object> attributes)
+ {
+ throwUnsupportedForRedirector();
+ return null;
+ }
+
+ @Override
+ public <T extends MessageDestination> T createMessageDestination(final Class<T> clazz,
+ final Map<String, Object> attributes)
+ {
+ throwUnsupportedForRedirector();
+ return null;
+ }
+
+ @Override
+ public boolean hasMessageSources()
+ {
+ return false;
+ }
+
+ @Override
public void setTargetSize(final long targetSize)
{
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/model/VirtualHostTest.java Sun May 22 21:03:46 2016
@@ -552,7 +552,7 @@ public class VirtualHostTest extends Qpi
}
};
doAnswer(answer).when(connection).addDeleteTask(deleteTaskCaptor.capture());
- when(connection.getVirtualHost()).thenReturn(virtualHost);
+ when(connection.getAddressSpace()).thenReturn(virtualHost);
doAnswer(new Answer()
{
@Override
Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java?rev=1745091&r1=1745090&r2=1745091&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/virtualhost/SynchronousMessageStoreRecovererTest.java Sun May 22 21:03:46 2016
@@ -281,7 +281,7 @@ public class SynchronousMessageStoreReco
}
};
- DtxRegistry dtxRegistry = new DtxRegistry();
+ DtxRegistry dtxRegistry = new DtxRegistry(_virtualHost);
when(_virtualHost.getMessageStore()).thenReturn(store);
when(_virtualHost.getDtxRegistry()).thenReturn(dtxRegistry);
@@ -370,7 +370,7 @@ public class SynchronousMessageStoreReco
}
};
- DtxRegistry dtxRegistry = new DtxRegistry();
+ DtxRegistry dtxRegistry = new DtxRegistry(_virtualHost);
when(_virtualHost.getMessageStore()).thenReturn(store);
when(_virtualHost.getDtxRegistry()).thenReturn(dtxRegistry);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org