Author: rgodfrey
Date: Sat Apr 19 10:45:42 2014
New Revision: 1588632
URL: http://svn.apache.org/r1588632
Log:
QPID-5578 : [Java Broker] Remove DurableConfigurationStoreHelper as it no
longer does anything useful
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java
Sat Apr 19 10:45:42 2014
@@ -35,6 +35,7 @@ import org.apache.qpid.server.logging.me
import org.apache.qpid.server.logging.subjects.BindingLogSubject;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.VirtualHost;
@@ -46,12 +47,13 @@ public class BindingImpl
extends AbstractConfiguredObject<BindingImpl>
implements org.apache.qpid.server.model.Binding<BindingImpl>
{
- private final String _bindingKey;
+ private String _bindingKey;
private final AMQQueue _queue;
private final ExchangeImpl _exchange;
+ @ManagedAttributeField
private Map<String, Object> _arguments;
private final AtomicLong _matches = new AtomicLong();
- private final BindingLogSubject _logSubject;
+ private BindingLogSubject _logSubject;
final AtomicBoolean _deleted = new AtomicBoolean();
final CopyOnWriteArrayList<StateChangeListener<BindingImpl,State>>
_stateChangeListeners =
@@ -60,27 +62,38 @@ public class BindingImpl
public BindingImpl(Map<String, Object> attributes, AMQQueue queue,
ExchangeImpl exchange)
{
super(parentsMap(queue,exchange),enhanceWithDurable(attributes,queue,exchange),queue.getVirtualHost().getTaskExecutor());
- _bindingKey =
(String)attributes.get(org.apache.qpid.server.model.Binding.NAME);
+ _bindingKey = getName();
_queue = queue;
_exchange = exchange;
- Map<String,Object> arguments = (Map<String, Object>)
attributes.get(org.apache.qpid.server.model.Binding.ARGUMENTS);
- _arguments = arguments == null ? Collections.EMPTY_MAP :
Collections.unmodifiableMap(arguments);
- //Perform ACLs
-
queue.getVirtualHost().getSecurityManager().authoriseCreateBinding(this);
- _logSubject = new BindingLogSubject(_bindingKey,exchange,queue);
+ }
+
+ @Override
+ protected void onOpen()
+ {
+ super.onOpen();
+ _logSubject = new BindingLogSubject(_bindingKey,_exchange,_queue);
+
getEventLogger().message(_logSubject,
BindingMessages.CREATED(String.valueOf(getArguments()),
getArguments() != null
&&
!getArguments().isEmpty()));
-
}
@Override
protected void onCreate()
{
super.onCreate();
+ try
+ {
+
_queue.getVirtualHost().getSecurityManager().authoriseCreateBinding(this);
+ }
+ catch(AccessControlException e)
+ {
+ deleted();
+ throw e;
+ }
if (isDurable())
{
_queue.getVirtualHost().getDurableConfigurationStore().create(asObjectRecord());
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/HeadersBinding.java
Sat Apr 19 10:45:42 2014
@@ -20,20 +20,21 @@
*/
package org.apache.qpid.server.exchange;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.log4j.Logger;
import org.apache.qpid.server.binding.BindingImpl;
import org.apache.qpid.server.filter.AMQInvalidArgumentException;
import org.apache.qpid.server.filter.FilterSupport;
+import org.apache.qpid.server.filter.Filterable;
import org.apache.qpid.server.filter.MessageFilter;
import org.apache.qpid.server.message.AMQMessageHeader;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.apache.qpid.server.filter.Filterable;
-
/**
* Defines binding and matching based on a set of headers.
*/
@@ -61,7 +62,8 @@ class HeadersBinding
_binding = binding;
if(_binding !=null)
{
- _mappings = _binding.getArguments();
+ Map<String, Object> arguments = _binding.getArguments();
+ _mappings = arguments == null ?
Collections.<String,Object>emptyMap() : arguments;
initMappings();
}
else
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
Sat Apr 19 10:45:42 2014
@@ -1351,6 +1351,10 @@ public abstract class AbstractConfigured
ManagedAttribute annotation =
m.getAnnotation(ManagedAttribute.class);
if(annotation != null)
{
+ if(!(annotation.automate() || annotation.derived() ||
annotation.state()))
+ {
+ throw new
ServerScopedRuntimeException("ManagedAttributes must be either automated or
derived. " + m.getName() + " on " + clazz.getSimpleName() + " does not meet
this criterion.");
+ }
if(!clazz.isInterface() ||
!ConfiguredObject.class.isAssignableFrom(clazz))
{
throw new ServerScopedRuntimeException("Can only
define ManagedAttributes on interfaces which extend " +
ConfiguredObject.class.getSimpleName() + ". " + clazz.getSimpleName() + " does
not meet these criteria.");
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Binding.java
Sat Apr 19 10:45:42 2014
@@ -39,7 +39,7 @@ public interface Binding<X extends Bindi
@ManagedAttribute( derived = true )
Exchange<?> getExchange();
- @ManagedAttribute
+ @ManagedAttribute( automate = true )
Map<String,Object> getArguments();
@ManagedStatistic
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObject.java
Sat Apr 19 10:45:42 2014
@@ -122,7 +122,7 @@ public interface ConfiguredObject<X exte
*
* @return the actual state of the object
*/
- @ManagedAttribute
+ @ManagedAttribute( state = true )
State getState();
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedAttribute.java
Sat Apr 19 10:45:42 2014
@@ -30,6 +30,7 @@ public @interface ManagedAttribute
boolean secure() default false;
boolean derived() default false;
boolean automate() default false;
+ boolean state() default false;
boolean mandatory() default false;
String defaultValue() default "";
}
Modified:
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/HeadersBindingTest.java
Sat Apr 19 10:45:42 2014
@@ -361,7 +361,9 @@ public class HeadersBindingTest extends
attributes.put(Binding.ARGUMENTS, arguments);
}
attributes.put(Binding.ID, id);
- return new BindingImpl(attributes, queue, exchange);
+ BindingImpl binding = new BindingImpl(attributes, queue, exchange);
+ binding.open();
+ return binding;
}
Modified:
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java?rev=1588632&r1=1588631&r2=1588632&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/test/java/org/apache/qpid/server/exchange/TopicExchangeTest.java
Sat Apr 19 10:45:42 2014
@@ -383,7 +383,9 @@ public class TopicExchangeTest extends Q
attributes.put(Binding.ARGUMENTS, arguments);
}
attributes.put(Binding.ID, id);
- return new BindingImpl(attributes, queue, exchange);
+ BindingImpl binding = new BindingImpl(attributes, queue, exchange);
+ binding.open();
+ return binding;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]