From 2d5bedc7a219b43eedbfe33bbe12b750c3fc4519 Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Wed, 24 Sep 2014 11:16:23 +0000 Subject: QPID-6114: Migrate the State member variable to AbstractConfiguredObject class git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1627278 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/binding/BindingImpl.java | 11 +--- .../qpid/server/exchange/AbstractExchange.java | 13 +--- .../server/model/AbstractConfiguredObject.java | 16 +++-- .../qpid/server/model/AbstractSystemConfig.java | 2 +- .../model/adapter/AbstractPluginAdapter.java | 12 ---- .../qpid/server/model/adapter/BrokerAdapter.java | 9 +-- .../server/model/adapter/ConnectionAdapter.java | 10 +-- .../model/adapter/FileBasedGroupProviderImpl.java | 44 +++---------- .../adapter/FileSystemPreferencesProviderImpl.java | 19 ++---- .../qpid/server/model/adapter/SessionAdapter.java | 11 +--- .../model/adapter/VirtualHostAliasAdapter.java | 7 +- .../qpid/server/model/port/AbstractPort.java | 16 ++--- .../apache/qpid/server/queue/AbstractQueue.java | 14 +--- .../qpid/server/queue/QueueConsumerImpl.java | 1 + .../qpid/server/security/FileKeyStoreImpl.java | 38 +++++------ .../qpid/server/security/FileTrustStoreImpl.java | 75 +++++++++++----------- .../qpid/server/security/NonJavaKeyStoreImpl.java | 44 ++++++------- .../server/security/NonJavaTrustStoreImpl.java | 66 +++++++++++++------ .../manager/AbstractAuthenticationManager.java | 22 ++----- .../PrincipalDatabaseAuthenticationManager.java | 17 ++--- .../security/auth/manager/ScramAuthUser.java | 8 +-- .../server/virtualhost/AbstractVirtualHost.java | 24 ++----- .../virtualhostnode/AbstractVirtualHostNode.java | 15 ++--- .../model/testmodel/Test2RootCategoryImpl.java | 12 ---- .../model/testmodel/TestChildCategoryImpl.java | 8 --- .../model/testmodel/TestRootCategoryImpl.java | 11 ---- 26 files changed, 181 insertions(+), 344 deletions(-) (limited to 'qpid/java/broker-core/src') diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java index a910eea657..b71d667fe0 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/binding/BindingImpl.java @@ -63,8 +63,6 @@ public class BindingImpl final CopyOnWriteArrayList> _stateChangeListeners = new CopyOnWriteArrayList>(); - private State _state = State.UNINITIALIZED; - public BindingImpl(Map attributes, AMQQueue queue, ExchangeImpl exchange) { super(parentsMap(queue,exchange),stripEmptyArguments(enhanceWithDurable(attributes, queue, exchange))); @@ -227,18 +225,13 @@ public class BindingImpl } getEventLogger().message(_logSubject, BindingMessages.DELETED()); } - _state = State.DELETED; + setState(State.DELETED); } @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.ACTIVE) private void activate() { - _state = State.ACTIVE; - } - - public State getState() - { - return _state; + setState(State.ACTIVE); } public void addStateChangeListener(StateChangeListener listener) diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java index c1c824a0c6..9b0cc48a62 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java @@ -107,7 +107,6 @@ public abstract class AbstractExchange> private final ConcurrentMap _bindingsMap = new ConcurrentHashMap(); private StateChangeListener _bindingListener; - private State _state = State.UNINITIALIZED; public AbstractExchange(Map attributes, VirtualHostImpl vhost) { @@ -760,7 +759,7 @@ public abstract class AbstractExchange> @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.ACTIVE) private void activate() { - _state = State.ACTIVE; + setState(State.ACTIVE); } @@ -768,7 +767,7 @@ public abstract class AbstractExchange> private void doDeleteBeforeInitialize() { preSetAlternateExchange(); - _state = State.DELETED; + setState(State.DELETED); } @@ -779,7 +778,7 @@ public abstract class AbstractExchange> { _virtualHost.removeExchange(this,true); preSetAlternateExchange(); - _state = State.DELETED; + setState(State.DELETED); } catch (ExchangeIsAlternateException | RequiredExchangeException e) { @@ -787,12 +786,6 @@ public abstract class AbstractExchange> } } - @Override - public State getState() - { - return _state; - } - @Override public Collection getChildren(final Class clazz) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java index 9395adc024..fab9d95159 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java @@ -159,6 +159,7 @@ public abstract class AbstractConfiguredObject> im @ManagedAttributeField( afterSet = "attainStateIfResolved" ) private State _desiredState; private boolean _openComplete; + private State _state = State.UNINITIALIZED; protected static Map, ConfiguredObject> parentsMap(ConfiguredObject... parents) { @@ -839,7 +840,7 @@ public abstract class AbstractConfiguredObject> im setAttributes(Collections.singletonMap(DESIRED_STATE, desiredState)); - if (setState(desiredState)) + if (getState() == desiredState) { notifyStateChanged(state, desiredState); return desiredState; @@ -853,12 +854,15 @@ public abstract class AbstractConfiguredObject> im }); } - /** - * @return true when the state has been successfully updated to desiredState or false otherwise - */ - protected boolean setState(State desiredState) + @Override + public State getState() + { + return _state; + } + + protected void setState(State state) { - return getState() == desiredState; + _state = state; } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java index b0dda69ee6..19f6139387 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java @@ -75,7 +75,7 @@ public abstract class AbstractSystemConfig> } @Override - protected boolean setState(final State desiredState) + protected void setState(final State desiredState) { throw new IllegalArgumentException("Cannot change the state of the SystemContext object"); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java index 08616efe21..4d0b6ef303 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java @@ -36,7 +36,6 @@ import org.apache.qpid.server.security.access.Operation; public abstract class AbstractPluginAdapter> extends AbstractConfiguredObject implements Plugin { private Broker _broker; - private State _state = State.UNINITIALIZED; protected AbstractPluginAdapter(Map attributes, Broker broker) { @@ -65,17 +64,6 @@ public abstract class AbstractPluginAdapter> extends Abstrac } } - @Override - public State getState() - { - return _state; - } - - protected void setCurrentState(State state) - { - _state = state; - } - @Override public Collection getChildren(Class clazz) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java index afa68e23b1..92ac43e629 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java @@ -99,8 +99,6 @@ public class BrokerAdapter extends AbstractConfiguredObject imple @ManagedAttributeField private String _confidentialConfigurationEncryptionProvider; - private State _state = State.UNINITIALIZED; - @ManagedObjectFactoryConstructor public BrokerAdapter(Map attributes, SystemConfig parent) @@ -273,7 +271,7 @@ public class BrokerAdapter extends AbstractConfiguredObject imple _eventLogger.message(BrokerMessages.MANAGEMENT_MODE(BrokerOptions.MANAGEMENT_MODE_USER_NAME, _brokerOptions.getManagementModePassword())); } - _state = State.ACTIVE; + setState(State.ACTIVE); } private void initialiseStatisticsReporting() @@ -500,11 +498,6 @@ public class BrokerAdapter extends AbstractConfiguredObject imple return virtualHostNode; } - public State getState() - { - return _state; - } - @Override public long getBytesIn() { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java index 31668e3bc5..62f0e6ae06 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java @@ -52,8 +52,6 @@ public final class ConnectionAdapter extends AbstractConfiguredObject createAttributes(final AMQConnectionModel _connection) @@ -161,7 +160,7 @@ public final class ConnectionAdapter extends AbstractConfiguredObject C addChild(Class childClass, Map attributes, ConfiguredObject... otherParents) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java index b273cf7dce..a82c0de7e9 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java @@ -61,7 +61,6 @@ public class FileBasedGroupProviderImpl private static Logger LOGGER = Logger.getLogger(FileBasedGroupProviderImpl.class); private final Broker _broker; - private AtomicReference _state; private FileGroupDatabase _groupDatabase; @@ -76,9 +75,6 @@ public class FileBasedGroupProviderImpl _broker = broker; - - State state = MapValueConverter.getEnumAttribute(State.class, STATE, attributes, State.UNINITIALIZED); - _state = new AtomicReference(state); } public void onValidate() @@ -201,13 +197,6 @@ public class FileBasedGroupProviderImpl return _path; } - @Override - public State getState() - { - return _state.get(); - } - - @Override public Object getAttribute(String name) { @@ -277,11 +266,11 @@ public class FileBasedGroupProviderImpl try { _groupDatabase.setGroupFile(getPath()); - _state.set(State.ACTIVE); + setState(State.ACTIVE); } catch(IOException | RuntimeException e) { - _state.set(State.ERRORED); + setState(State.ERRORED); if (_broker.isManagementMode()) { LOGGER.warn("Failed to activate group provider: " + getName(), e); @@ -302,13 +291,13 @@ public class FileBasedGroupProviderImpl } deleted(); - _state.set(State.DELETED); + setState(State.DELETED); } @StateTransition( currentState = State.UNINITIALIZED, desiredState = State.QUIESCED) private void startQuiesced() { - _state.set(State.QUIESCED); + setState(State.QUIESCED); } public Set getGroupPrincipalsForUser(String username) @@ -364,21 +353,12 @@ public class FileBasedGroupProviderImpl private class GroupAdapter extends AbstractConfiguredObject implements Group { - private State _state = State.UNINITIALIZED; public GroupAdapter(Map attributes) { super(parentsMap(FileBasedGroupProviderImpl.this), attributes); } - - @Override - public State getState() - { - return _state; - } - - @Override public void onValidate() { @@ -392,7 +372,7 @@ public class FileBasedGroupProviderImpl @StateTransition( currentState = State.UNINITIALIZED, desiredState = State.ACTIVE ) private void activate() { - _state = State.ACTIVE; + setState(State.ACTIVE); } @Override @@ -476,15 +456,13 @@ public class FileBasedGroupProviderImpl getSecurityManager().authoriseGroupOperation(Operation.DELETE, getName()); _groupDatabase.removeGroup(getName()); deleted(); - _state = State.DELETED; + setState(State.DELETED); } private class GroupMemberAdapter extends AbstractConfiguredObject implements GroupMember { - private State _state = State.UNINITIALIZED; - public GroupMemberAdapter(Map attrMap) { // TODO - need to relate to the User object @@ -512,12 +490,6 @@ public class FileBasedGroupProviderImpl } } - @Override - public State getState() - { - return _state; - } - @Override public Collection getChildren( Class clazz) @@ -528,7 +500,7 @@ public class FileBasedGroupProviderImpl @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.ACTIVE) private void activate() { - _state = State.ACTIVE; + setState(State.ACTIVE); } @StateTransition(currentState = State.ACTIVE, desiredState = State.DELETED) @@ -538,7 +510,7 @@ public class FileBasedGroupProviderImpl _groupDatabase.removeUserFromGroup(getName(), GroupAdapter.this.getName()); deleted(); - _state = State.DELETED; + setState(State.DELETED); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderImpl.java index 7d594af9c2..68660d8f81 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileSystemPreferencesProviderImpl.java @@ -60,7 +60,6 @@ public class FileSystemPreferencesProviderImpl private static final Logger LOGGER = Logger.getLogger(FileSystemPreferencesProviderImpl.class); private final AuthenticationProvider _authenticationProvider; - private State _state = State.UNINITIALIZED; private FileSystemPreferencesStore _store; @@ -86,11 +85,11 @@ public class FileSystemPreferencesProviderImpl createStoreIfNotExist(); _store.open(); _open = true; - _state = State.ACTIVE; + setState(State.ACTIVE); } catch( RuntimeException e ) { - _state = State.ERRORED; + setState(State.ERRORED); } } @@ -110,12 +109,6 @@ public class FileSystemPreferencesProviderImpl return _path; } - @Override - public State getState() - { - return _state; - } - @Override public Collection getChildren(Class clazz) { @@ -147,7 +140,7 @@ public class FileSystemPreferencesProviderImpl { _store.close(); } - _state = State.QUIESCED; + setState(State.QUIESCED); } @StateTransition(currentState = { State.ACTIVE, State.QUIESCED, State.ERRORED }, desiredState = State.DELETED ) @@ -162,14 +155,14 @@ public class FileSystemPreferencesProviderImpl _authenticationProvider.setPreferencesProvider(null); } - _state = State.DELETED; + setState(State.DELETED); } @StateTransition(currentState = { State.QUIESCED, State.ERRORED }, desiredState = State.ACTIVE ) private void restart() { _store.open(); - _state = State.ACTIVE; + setState(State.ACTIVE); } @Override @@ -210,7 +203,7 @@ public class FileSystemPreferencesProviderImpl super.changeAttributes(attributes); // if provider was previously in ERRORED state then set its state to ACTIVE - if(_state == State.ERRORED) + if(getState() == State.ERRORED) { onOpen(); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java index 9c2759bd1d..c3b8a8798b 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/SessionAdapter.java @@ -42,8 +42,6 @@ final class SessionAdapter extends AbstractConfiguredObject impl { // Attributes private final AMQSessionModel _session; - private State _state = State.ACTIVE; - public SessionAdapter(final ConnectionAdapter connectionAdapter, final AMQSessionModel session) @@ -75,7 +73,7 @@ final class SessionAdapter extends AbstractConfiguredObject impl deleted(); } }); - + setState(State.ACTIVE); } private static Map createAttributes(final AMQSessionModel session) @@ -110,11 +108,6 @@ final class SessionAdapter extends AbstractConfiguredObject impl return Collections.emptySet(); //TODO } - public State getState() - { - return _state; - } - @Override public Object getAttribute(String name) { @@ -188,8 +181,8 @@ final class SessionAdapter extends AbstractConfiguredObject impl @StateTransition(currentState = State.ACTIVE, desiredState = State.DELETED) private void doDelete() { - _state = State.DELETED; deleted(); + setState(State.DELETED); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java index cc1f557df1..0ea9079ebb 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAliasAdapter.java @@ -45,6 +45,7 @@ public class VirtualHostAliasAdapter extends AbstractConfiguredObject createAttributes(final VirtualHost virtualHost, final Port port) @@ -74,12 +75,6 @@ public class VirtualHostAliasAdapter extends AbstractConfiguredObject Collection getChildren(Class clazz) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java index 30b97e9e01..fd70a96c5c 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/port/AbstractPort.java @@ -118,7 +118,6 @@ abstract public class AbstractPort> extends AbstractCo } private final Broker _broker; - private State _state = State.UNINITIALIZED; @ManagedAttributeField private int _port; @@ -298,13 +297,6 @@ abstract public class AbstractPort> extends AbstractCo return null; } - @Override - public State getState() - { - return _state; - } - - @Override public Collection getChildren(Class clazz) { @@ -332,7 +324,7 @@ abstract public class AbstractPort> extends AbstractCo private void doDelete() { close(); - _state = State.DELETED; + setState(State.DELETED); } @StateTransition( currentState = {State.UNINITIALIZED, State.QUIESCED}, desiredState = State.ACTIVE ) @@ -340,11 +332,11 @@ abstract public class AbstractPort> extends AbstractCo { try { - _state = onActivate(); + setState(onActivate()); } catch (RuntimeException e) { - _state = State.ERRORED; + setState(State.ERRORED); LOGGER.error("Unable to active port '" + getName() + "'of type " + getType() + " on port " + getPort(), e); } @@ -353,7 +345,7 @@ abstract public class AbstractPort> extends AbstractCo @StateTransition( currentState = State.UNINITIALIZED, desiredState = State.QUIESCED) private void startQuiesced() { - _state = State.QUIESCED; + setState(State.QUIESCED); } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java index ca89db3849..ca1278a97a 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java @@ -241,8 +241,6 @@ public abstract class AbstractQueue> @ManagedAttributeField private long _maximumMessageTtl; - - private State _state = State.UNINITIALIZED; private final AtomicBoolean _recovering = new AtomicBoolean(true); private final ConcurrentLinkedQueue _postRecoveryQueue = new ConcurrentLinkedQueue<>(); @@ -2814,14 +2812,14 @@ public abstract class AbstractQueue> @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.ACTIVE) private void activate() { - _state = State.ACTIVE; + setState(State.ACTIVE); } @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.DELETED) private void doDeleteBeforeInitialize() { preSetAlternateExchange(); - _state = State.DELETED; + setState(State.DELETED); } @StateTransition(currentState = State.ACTIVE, desiredState = State.DELETED) @@ -2829,7 +2827,7 @@ public abstract class AbstractQueue> { _virtualHost.removeQueue(this); preSetAlternateExchange(); - _state = State.DELETED; + setState(State.DELETED); } @@ -2875,12 +2873,6 @@ public abstract class AbstractQueue> return _overfull.get(); } - @Override - public State getState() - { - return _state; - } - @Override public Collection getChildren(final Class clazz) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java index 60bad7bf1c..0f278eda91 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/QueueConsumerImpl.java @@ -289,6 +289,7 @@ class QueueConsumerImpl _target.queueEmpty(); } + @Override public State getState() { return STATE_MAP.get(_target.getState()); diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java index d4aeca0437..6e02e71cd4 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileKeyStoreImpl.java @@ -45,6 +45,7 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.StateTransition; import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.util.ServerScopedRuntimeException; import org.apache.qpid.transport.network.security.ssl.QpidClientX509KeyManager; @@ -85,12 +86,6 @@ public class FileKeyStoreImpl extends AbstractConfiguredObject validateKeyStoreAttributes(this); } - @Override - public State getState() - { - return State.ACTIVE; - } - @Override public Object getAttribute(String name) { @@ -102,27 +97,28 @@ public class FileKeyStoreImpl extends AbstractConfiguredObject return super.getAttribute(name); } - @Override - protected boolean setState(State desiredState) + @StateTransition(currentState = {State.ACTIVE, State.ERRORED}, desiredState = State.DELETED) + protected void doDelete() { - if(desiredState == State.DELETED) - { - // verify that it is not in use - String storeName = getName(); + // verify that it is not in use + String storeName = getName(); - Collection ports = new ArrayList(_broker.getPorts()); - for (Port port : ports) + Collection ports = new ArrayList(_broker.getPorts()); + for (Port port : ports) + { + if (port.getKeyStore() == this) { - if (port.getKeyStore() == this) - { - throw new IntegrityViolationException("Key store '" + storeName + "' can't be deleted as it is in use by a port:" + port.getName()); - } + throw new IntegrityViolationException("Key store '" + storeName + "' can't be deleted as it is in use by a port:" + port.getName()); } - deleted(); - return true; } + deleted(); + setState(State.DELETED); + } - return false; + @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE) + protected void doActivate() + { + setState(State.ACTIVE); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStoreImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStoreImpl.java index 0596c21291..cb5aaacb07 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStoreImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/FileTrustStoreImpl.java @@ -44,6 +44,7 @@ import org.apache.qpid.server.model.ManagedAttributeField; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.StateTransition; import org.apache.qpid.server.model.TrustStore; import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.security.auth.manager.SimpleLDAPAuthenticationManager; @@ -85,60 +86,56 @@ public class FileTrustStoreImpl extends AbstractConfiguredObject> ports = new ArrayList>(_broker.getPorts()); + for (Port port : ports) { - // verify that it is not in use - String storeName = getName(); - - Collection> ports = new ArrayList>(_broker.getPorts()); - for (Port port : ports) + Collection trustStores = port.getTrustStores(); + if(trustStores != null) { - Collection trustStores = port.getTrustStores(); - if(trustStores != null) + for (TrustStore store : trustStores) { - for (TrustStore store : trustStores) + if(storeName.equals(store.getAttribute(TrustStore.NAME))) { - if(storeName.equals(store.getAttribute(TrustStore.NAME))) - { - throw new IntegrityViolationException("Trust store '" - + storeName - + "' can't be deleted as it is in use by a port: " - + port.getName()); - } + throw new IntegrityViolationException("Trust store '" + + storeName + + "' can't be deleted as it is in use by a port: " + + port.getName()); } } } + } - Collection authenticationProviders = new ArrayList(_broker.getAuthenticationProviders()); - for (AuthenticationProvider authProvider : authenticationProviders) + Collection authenticationProviders = new ArrayList(_broker.getAuthenticationProviders()); + for (AuthenticationProvider authProvider : authenticationProviders) + { + if(authProvider.getAttributeNames().contains(SimpleLDAPAuthenticationManager.TRUST_STORE)) { - if(authProvider.getAttributeNames().contains(SimpleLDAPAuthenticationManager.TRUST_STORE)) - { - Object attributeType = authProvider.getAttribute(AuthenticationProvider.TYPE); - Object attributeValue = authProvider.getAttribute(SimpleLDAPAuthenticationManager.TRUST_STORE); - if (SimpleLDAPAuthenticationManager.PROVIDER_TYPE.equals(attributeType) + Object attributeType = authProvider.getAttribute(AuthenticationProvider.TYPE); + Object attributeValue = authProvider.getAttribute(SimpleLDAPAuthenticationManager.TRUST_STORE); + if (SimpleLDAPAuthenticationManager.PROVIDER_TYPE.equals(attributeType) && storeName.equals(attributeValue)) - { - throw new IntegrityViolationException("Trust store '" - + storeName - + "' can't be deleted as it is in use by an authentication manager: " - + authProvider.getName()); - } + { + throw new IntegrityViolationException("Trust store '" + + storeName + + "' can't be deleted as it is in use by an authentication manager: " + + authProvider.getName()); } } - deleted(); - return true; } - return false; + deleted(); + setState(State.DELETED); + } + + @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE) + protected void doActivate() + { + setState(State.ACTIVE); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java index 299ba6c249..fddb856a39 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaKeyStoreImpl.java @@ -70,6 +70,7 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.StateTransition; import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.util.urlstreamhandler.data.Handler; @@ -182,12 +183,6 @@ public class NonJavaKeyStoreImpl extends AbstractConfiguredObject ports = new ArrayList(_broker.getPorts()); - for (Port port : ports) + Collection ports = new ArrayList(_broker.getPorts()); + for (Port port : ports) + { + if (port.getKeyStore() == this) { - if (port.getKeyStore() == this) - { - throw new IntegrityViolationException("Key store '" - + storeName - + "' can't be deleted as it is in use by a port:" - + port.getName()); - } + throw new IntegrityViolationException("Key store '" + + storeName + + "' can't be deleted as it is in use by a port:" + + port.getName()); } - deleted(); - return true; } + deleted(); + setState(State.DELETED); + } - return false; + @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE) + protected void doActivate() + { + setState(State.ACTIVE); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStoreImpl.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStoreImpl.java index 4f7f913776..d757387a34 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStoreImpl.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/NonJavaTrustStoreImpl.java @@ -49,6 +49,7 @@ import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.model.AbstractConfiguredObject; +import org.apache.qpid.server.model.AuthenticationProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.IntegrityViolationException; @@ -58,7 +59,10 @@ import org.apache.qpid.server.model.ManagedObject; import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.StateTransition; +import org.apache.qpid.server.model.TrustStore; import org.apache.qpid.server.security.access.Operation; +import org.apache.qpid.server.security.auth.manager.SimpleLDAPAuthenticationManager; import org.apache.qpid.server.util.urlstreamhandler.data.Handler; @ManagedObject( category = false ) @@ -167,12 +171,6 @@ public class NonJavaTrustStoreImpl validateTrustStoreAttributes(this); } - @Override - public State getState() - { - return State.ACTIVE; - } - @Override public Object getAttribute(String name) { @@ -184,30 +182,56 @@ public class NonJavaTrustStoreImpl return super.getAttribute(name); } - @Override - protected boolean setState(State desiredState) + @StateTransition(currentState = {State.ACTIVE, State.ERRORED}, desiredState = State.DELETED) + protected void doDelete() { - if (desiredState == State.DELETED) + // verify that it is not in use + String storeName = getName(); + + Collection> ports = new ArrayList>(_broker.getPorts()); + for (Port port : ports) { - // verify that it is not in use - String storeName = getName(); + Collection trustStores = port.getTrustStores(); + if(trustStores != null) + { + for (TrustStore store : trustStores) + { + if(storeName.equals(store.getAttribute(TrustStore.NAME))) + { + throw new IntegrityViolationException("Trust store '" + + storeName + + "' can't be deleted as it is in use by a port: " + + port.getName()); + } + } + } + } - Collection ports = new ArrayList(_broker.getPorts()); - for (Port port : ports) + Collection authenticationProviders = new ArrayList(_broker.getAuthenticationProviders()); + for (AuthenticationProvider authProvider : authenticationProviders) + { + if(authProvider.getAttributeNames().contains(SimpleLDAPAuthenticationManager.TRUST_STORE)) { - if (port.getKeyStore() == this) + Object attributeType = authProvider.getAttribute(AuthenticationProvider.TYPE); + Object attributeValue = authProvider.getAttribute(SimpleLDAPAuthenticationManager.TRUST_STORE); + if (SimpleLDAPAuthenticationManager.PROVIDER_TYPE.equals(attributeType) + && storeName.equals(attributeValue)) { - throw new IntegrityViolationException("Key store '" - + storeName - + "' can't be deleted as it is in use by a port:" - + port.getName()); + throw new IntegrityViolationException("Trust store '" + + storeName + + "' can't be deleted as it is in use by an authentication manager: " + + authProvider.getName()); } } - deleted(); - return true; } + deleted(); + setState(State.DELETED); + } - return false; + @StateTransition(currentState = {State.UNINITIALIZED, State.ERRORED}, desiredState = State.ACTIVE) + protected void doActivate() + { + setState(State.ACTIVE); } @Override diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java index 6fa93ed51a..69f0011302 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractAuthenticationManager.java @@ -27,7 +27,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicReference; import org.apache.log4j.Logger; @@ -56,7 +55,6 @@ public abstract class AbstractAuthenticationManager _state = new AtomicReference(State.UNINITIALIZED); @ManagedAttributeField private List _secureOnlyMechanisms; @@ -139,12 +137,6 @@ public abstract class AbstractAuthenticationManager C addChild(Class childClass, Map attributes, ConfiguredObject... otherParents) @@ -185,7 +177,7 @@ public abstract class AbstractAuthenticationManager implements U { throw new IllegalArgumentException("Scram SHA1 user names are restricted to characters in the ASCII charset"); } - + setState(State.ACTIVE); } @Override @@ -167,12 +167,6 @@ class ScramAuthUser extends AbstractConfiguredObject implements U } } - @Override - public State getState() - { - return State.ACTIVE; - } - @Override public Collection getChildren(final Class clazz) { diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java index 2d58cb9327..0dbf854c55 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java @@ -114,8 +114,6 @@ public abstract class AbstractVirtualHost> exte private final SystemNodeRegistry _systemNodeRegistry = new SystemNodeRegistry(); - private final AtomicReference _state = new AtomicReference<>(State.UNINITIALIZED); - private final StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived; private final Map _linkRegistry = new HashMap(); @@ -263,9 +261,9 @@ public abstract class AbstractVirtualHost> exte private void checkVHostStateIsActive() { - if (_state.get() != State.ACTIVE) + if (getState() != State.ACTIVE) { - throw new IllegalStateException("The virtual host state of " + _state.get() + throw new IllegalStateException("The virtual host state of " + getState() + " does not permit this operation."); } } @@ -350,16 +348,6 @@ public abstract class AbstractVirtualHost> exte return getChildren(Connection.class); } - @Override - public State getState() - { - if(_deleted.get()) - { - return State.DELETED; - } - return _state.get(); - } - @Override public Collection getChildren(Class clazz) { @@ -1157,8 +1145,7 @@ public abstract class AbstractVirtualHost> exte closeChildren(); shutdownHouseKeeping(); closeMessageStore(); - _state.set(State.STOPPED); - + setState(State.STOPPED); } @StateTransition( currentState = { State.ACTIVE, State.ERRORED }, desiredState = State.DELETED ) @@ -1183,6 +1170,7 @@ public abstract class AbstractVirtualHost> exte } } deleted(); + setState(State.DELETED); } } @@ -1419,8 +1407,8 @@ public abstract class AbstractVirtualHost> exte } finally { - _state.set(finalState); - reportIfError(_state.get()); + setState(finalState); + reportIfError(getState()); } } diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java index 45a3c1eb5a..5cbfb0942a 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java @@ -76,7 +76,6 @@ public abstract class AbstractVirtualHostNode _broker; - private final AtomicReference _state = new AtomicReference(State.UNINITIALIZED); private final EventLogger _eventLogger; private DurableConfigurationStore _durableConfigurationStore; @@ -105,12 +104,6 @@ public abstract class AbstractVirtualHostNode functionGeneratedValidValues() { return Collections.singleton("generated"); diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestChildCategoryImpl.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestChildCategoryImpl.java index 080a352f11..e12da63349 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestChildCategoryImpl.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestChildCategoryImpl.java @@ -51,14 +51,6 @@ public class TestChildCategoryImpl super(parentsMap(parent), attributes); } - @Override - public State getState() - { - return null; - } - - - @Override public String getValidValueNotInterpolated() { diff --git a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestRootCategoryImpl.java b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestRootCategoryImpl.java index 0c6a0cb0ca..baac082cc7 100644 --- a/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestRootCategoryImpl.java +++ b/qpid/java/broker-core/src/test/java/org/apache/qpid/server/model/testmodel/TestRootCategoryImpl.java @@ -72,11 +72,6 @@ public class TestRootCategoryImpl extends AbstractConfiguredObject