Author: rgodfrey
Date: Mon Nov 21 09:26:03 2016
New Revision: 1770632
URL: http://svn.apache.org/viewvc?rev=1770632&view=rev
Log:
QPID-7533 : Initial query implementation, add base implementation of
logOperation to save each base class having to re-implement
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.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/SystemConfig.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupMemberImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractVirtualHostAlias.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostNodeImpl.java
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractLogger.java
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractNameAndLevelLogInclusionRule.java
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java
(original)
+++
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHARemoteReplicationNodeImpl.java
Mon Nov 21 09:26:03 2016
@@ -230,12 +230,6 @@ public class BDBHARemoteReplicationNodeI
}
}
- @Override
- protected void logOperation(final String operation)
- {
- getEventLogger().message(new OperationLogMessage(this, operation));
- }
-
void setRole(NodeRole role)
{
_lastKnownRole = role;
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=1770632&r1=1770631&r2=1770632&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
Mon Nov 21 09:26:03 2016
@@ -75,6 +75,9 @@ import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.Task;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
+import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.preferences.UserPreferences;
import org.apache.qpid.server.security.AccessControl;
import org.apache.qpid.server.security.Result;
@@ -3320,7 +3323,44 @@ public abstract class AbstractConfigured
_userPreferences = userPreferences;
}
- protected abstract void logOperation(String operation);
+ protected EventLogger getEventLogger()
+ {
+ for(ConfiguredObject<?> parent : _parents.values())
+ {
+ if(parent instanceof EventLoggerProvider)
+ {
+ return ((EventLoggerProvider)parent).getEventLogger();
+ }
+ else if(parent instanceof AbstractConfiguredObject)
+ {
+ final EventLogger eventLogger = ((AbstractConfiguredObject<?>)
parent).getEventLogger();
+ if(eventLogger != null)
+ {
+ return eventLogger;
+ }
+ }
+ }
+ return null;
+ }
+
+ protected void logOperation(String operation)
+ {
+ EventLogger eventLogger = getEventLogger();
+ if(eventLogger != null)
+ {
+ eventLogger.message(new OperationLogMessage(this, operation));
+ }
+ else
+ {
+ LOGGER.info(getCategoryClass().getSimpleName()
+ + "("
+ + getName()
+ + ") : Operation "
+ + operation
+ + " invoked by user "
+ + AuthenticatedPrincipal.getCurrentUser().getName());
+ }
+ }
//=========================================================================================
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/SystemConfig.java
Mon Nov 21 09:26:03 2016
@@ -21,12 +21,16 @@
package org.apache.qpid.server.model;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.EventLoggerProvider;
import org.apache.qpid.server.store.DurableConfigurationStore;
import org.apache.qpid.server.store.preferences.PreferenceStoreAttributes;
import org.apache.qpid.server.store.preferences.PreferencesRoot;
@ManagedObject (creatable = false)
-public interface SystemConfig<X extends SystemConfig<X>> extends
ConfiguredObject<X>, ModelRoot, PreferencesRoot
+public interface SystemConfig<X extends SystemConfig<X>> extends
ConfiguredObject<X>,
+ ModelRoot,
+
PreferencesRoot,
+
EventLoggerProvider
{
String MANAGEMENT_MODE = "managementMode";
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/AbstractPluginAdapter.java
Mon Nov 21 09:26:03 2016
@@ -24,7 +24,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Map;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
@@ -62,10 +61,4 @@ public abstract class AbstractPluginAdap
return _broker;
}
-
- @Override
- protected void logOperation(final String operation)
- {
- _broker.getEventLogger().message(new OperationLogMessage(this,
operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/adapter/FileBasedGroupProviderImpl.java
Mon Nov 21 09:26:03 2016
@@ -37,7 +37,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
@@ -224,12 +223,6 @@ public class FileBasedGroupProviderImpl
+ childClass);
}
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
-
private Set<Principal> getGroupPrincipals()
{
@@ -390,12 +383,6 @@ public class FileBasedGroupProviderImpl
+ childClass);
}
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
-
@StateTransition( currentState = State.ACTIVE, desiredState =
State.DELETED )
private ListenableFuture<Void> doDelete()
{
@@ -431,12 +418,6 @@ public class FileBasedGroupProviderImpl
return Collections.emptySet();
}
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
-
@StateTransition(currentState = State.UNINITIALIZED, desiredState
= State.ACTIVE)
private ListenableFuture<Void> activate()
{
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
Mon Nov 21 09:26:03 2016
@@ -46,7 +46,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
@@ -464,12 +463,6 @@ public abstract class PrincipalDatabaseA
return super.changeAttribute(name, desired);
}
- @Override
- protected void logOperation(final String operation)
- {
- _broker.getEventLogger().message(new OperationLogMessage(this,
operation));
- }
-
@StateTransition(currentState = {State.UNINITIALIZED,State.ERRORED},
desiredState = State.ACTIVE)
private ListenableFuture<Void> activate()
{
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupImpl.java
Mon Nov 21 09:26:03 2016
@@ -25,10 +25,8 @@ import java.util.Map;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.Group;
import org.apache.qpid.server.model.GroupMember;
import org.apache.qpid.server.model.GroupProvider;
@@ -80,10 +78,4 @@ public class GroupImpl extends AbstractC
return Futures.immediateFuture(null);
}
-
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupMemberImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupMemberImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupMemberImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupMemberImpl.java
Mon Nov 21 09:26:03 2016
@@ -25,9 +25,7 @@ import java.util.Map;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.Group;
import org.apache.qpid.server.model.GroupMember;
import org.apache.qpid.server.model.ManagedObject;
@@ -61,9 +59,4 @@ public class GroupMemberImpl extends Abs
return Futures.immediateFuture(null);
}
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/GroupProviderImpl.java
Mon Nov 21 09:26:03 2016
@@ -29,7 +29,6 @@ import java.util.Set;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
@@ -107,9 +106,4 @@ public class GroupProviderImpl extends A
return Futures.immediateFuture(null);
}
- @Override
- protected void logOperation(final String operation)
- {
- _container.getEventLogger().message(new OperationLogMessage(this,
operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/group/cloudfoundry/CloudFoundryDashboardManagementGroupProviderImpl.java
Mon Nov 21 09:26:03 2016
@@ -48,7 +48,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Container;
@@ -309,9 +308,4 @@ public class CloudFoundryDashboardManage
return _tlsCipherSuiteBlackList;
}
- @Override
- protected void logOperation(final String operation)
- {
- _container.getEventLogger().message(new OperationLogMessage(this,
operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractVirtualHostAlias.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractVirtualHostAlias.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractVirtualHostAlias.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostalias/AbstractVirtualHostAlias.java
Mon Nov 21 09:26:03 2016
@@ -25,9 +25,7 @@ import java.util.Map;
import com.google.common.util.concurrent.ListenableFuture;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.State;
@@ -73,9 +71,4 @@ abstract class AbstractVirtualHostAlias<
});
}
- @Override
- protected void logOperation(final String operation)
- {
- getPort().getParent(Broker.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/AbstractVirtualHostNode.java
Mon Nov 21 09:26:03 2016
@@ -49,7 +49,6 @@ import org.apache.qpid.exchange.Exchange
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.logging.messages.ConfigStoreMessages;
import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject;
import org.apache.qpid.server.model.AbstractConfiguredObject;
@@ -645,10 +644,4 @@ public abstract class AbstractVirtualHos
return Collections.unmodifiableCollection(supportedTypes);
}
-
- @Override
- protected void logOperation(final String operation)
- {
- _broker.getEventLogger().message(new OperationLogMessage(this,
operation));
- }
}
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostNodeImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostNodeImpl.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostNodeImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostNodeImpl.java
Mon Nov 21 09:26:03 2016
@@ -34,7 +34,6 @@ import com.google.common.util.concurrent
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
@@ -279,13 +278,6 @@ public class RedirectingVirtualHostNodeI
}
}
- @Override
- protected void logOperation(final String operation)
- {
- _broker.getEventLogger().message(new
OperationLogMessage(this,operation));
- }
-
-
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected <C extends ConfiguredObject> ListenableFuture<C>
addChildAsync(Class<C> childClass, Map<String, Object> attributes,
Modified:
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractLogger.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractLogger.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractLogger.java
(original)
+++
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractLogger.java
Mon Nov 21 09:26:03 2016
@@ -36,13 +36,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.qpid.server.logging.LogInclusionRule;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfigurationChangeListener;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.BrokerLogInclusionRule;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObjectTypeRegistry;
-import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
@@ -215,9 +213,4 @@ public abstract class AbstractLogger<X e
return Collections.unmodifiableCollection(supportedTypes);
}
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
}
Modified:
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractNameAndLevelLogInclusionRule.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractNameAndLevelLogInclusionRule.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractNameAndLevelLogInclusionRule.java
(original)
+++
qpid/java/trunk/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/AbstractNameAndLevelLogInclusionRule.java
Mon Nov 21 09:26:03 2016
@@ -29,10 +29,8 @@ import com.google.common.util.concurrent
import com.google.common.util.concurrent.ListenableFuture;
import org.apache.qpid.server.logging.LogLevel;
-import org.apache.qpid.server.logging.OperationLogMessage;
import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Container;
import org.apache.qpid.server.model.ManagedAttributeField;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
@@ -108,10 +106,4 @@ public abstract class AbstractNameAndLev
return Futures.immediateFuture(null);
}
-
- @Override
- protected void logOperation(final String operation)
- {
- getAncestor(Container.class).getEventLogger().message(new
OperationLogMessage(this, operation));
- }
}
Modified:
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
(original)
+++
qpid/java/trunk/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
Mon Nov 21 09:26:03 2016
@@ -33,6 +33,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
@@ -121,6 +122,28 @@ class ManagementNode implements MessageS
public static final int STATUS_CODE_CONFLICT = 409;
public static final int STATUS_CODE_INTERNAL_ERROR = 500;
public static final int STATUS_CODE_NOT_IMPLEMENTED= 501;
+ private static final Comparator<? super ConfiguredObject<?>>
OBJECT_COMPARATOR =
+ new Comparator<ConfiguredObject<?>>()
+ {
+ @Override
+ public int compare(final ConfiguredObject<?> o1, final
ConfiguredObject<?> o2)
+ {
+ if(o1 == o2)
+ {
+ return 0;
+ }
+ int result =
o1.getCategoryClass().getSimpleName().compareTo(o2.getCategoryClass().getSimpleName());
+ if(result == 0)
+ {
+ result = o1.getName().compareTo(o2.getName());
+ }
+ if(result == 0)
+ {
+ result = o1.getId().compareTo(o2.getId());
+ }
+ return result;
+ }
+ };
private final NamedAddressSpace _addressSpace;
@@ -1017,7 +1040,186 @@ class ManagementNode implements MessageS
{
attributeNames = generateAttributeNames(entityType);
}
- return null;
+
+ List<ConfiguredObject<?>> objects = getObjects(entityType);
+ Collections.sort(objects, OBJECT_COMPARATOR);
+ if(headerMap.containsKey(OFFSET_HEADER))
+ {
+ int offset;
+ if(headerMap.get(OFFSET_HEADER) instanceof Number)
+ {
+ offset = ((Number) headerMap.get(OFFSET_HEADER)).intValue();
+ }
+ else
+ {
+ offset =
Integer.parseInt(headerMap.get(OFFSET_HEADER).toString());
+ }
+ if(offset >= 0)
+ {
+ if(offset < objects.size())
+ {
+ objects = objects.subList(offset, objects.size());
+ }
+ else
+ {
+ objects = Collections.emptyList();
+ }
+ }
+ else if(objects.size() + offset > 0)
+ {
+ objects = objects.subList(objects.size()+offset,
objects.size());
+ }
+ }
+
+ if(headerMap.containsKey(COUNT_HEADER))
+ {
+ int count;
+ if(headerMap.get(COUNT_HEADER) instanceof Number)
+ {
+ count = ((Number) headerMap.get(COUNT_HEADER)).intValue();
+ }
+ else
+ {
+ count =
Integer.parseInt(headerMap.get(OFFSET_HEADER).toString());
+ }
+ if(count >= 0)
+ {
+ if(count < objects.size())
+ {
+ objects = objects.subList(0, count);
+ }
+ else
+ {
+ objects = Collections.emptyList();
+ }
+ }
+ else if(objects.size() + count > 0)
+ {
+ objects = objects.subList(0, objects.size()+count);
+ }
+ }
+ List<List<Object>> resultList = new ArrayList<>(objects.size());
+
+ for(ConfiguredObject<?> object : objects)
+ {
+ List<Object> attributes = new ArrayList<>(attributeNames.size());
+ Map<?,?> convertedObject =
_managementOutputConverter.convertToOutput(object, true);
+ for(String attributeName : attributeNames)
+ {
+ attributes.add(convertedObject.get(attributeName));
+ }
+ resultList.add(attributes);
+ }
+ Map<Object, Object> result = new LinkedHashMap<>();
+ result.put(ATTRIBUTE_NAMES, attributeNames);
+ result.put(RESULTS, resultList);
+ return result;
+ }
+
+ private Collection<ConfiguredObject<?>>
getChildrenOfType(ConfiguredObject<?> object, Class<? extends ConfiguredObject>
type)
+ {
+ Set<ConfiguredObject<?>> children = new HashSet<>();
+ Class<? extends ConfiguredObject> categoryClass =
ConfiguredObjectTypeRegistry.getCategory(type);
+ for(Class<? extends ConfiguredObject> childClass :
_model.getChildTypes(object.getCategoryClass()))
+ {
+ if(childClass == categoryClass)
+ {
+ for (ConfiguredObject<?> child :
object.getChildren(childClass))
+ {
+ if(categoryClass == type || child.getTypeClass() == type)
+ {
+ children.add(child);
+ }
+ }
+ }
+ else
+ {
+
if(_model.getAncestorCategories(categoryClass).contains(childClass))
+ {
+ for(ConfiguredObject<?> child :
object.getChildren(childClass))
+ {
+ children.addAll(getChildrenOfType(child, type));
+ }
+ }
+ }
+ }
+ return children;
+ }
+
+ private List<ConfiguredObject<?>> getObjects(final String entityType)
+ {
+ Set<ConfiguredObject<?>> foundObjects;
+
+ if(entityType == null)
+ {
+ foundObjects = findAllChildren();
+
+ }
+ else
+ {
+ final Class<? extends ConfiguredObject> type =
_managedTypes.get(entityType);
+ if(type != null)
+ {
+ foundObjects = new HashSet<>();
+ Collection<Class<? extends ConfiguredObject>>
ancestorCategories =
+
_model.getAncestorCategories(ConfiguredObjectTypeRegistry.getCategory(type));
+
if(ancestorCategories.contains(_managedObject.getCategoryClass()))
+ {
+ foundObjects.addAll(getChildrenOfType(_managedObject,
type));
+ }
+
+ for(Map.Entry<Class<? extends ConfiguredObject>,
ConfiguredObjectOperation<?>> entry : _associatedChildrenOperations.entrySet())
+ {
+ if(ancestorCategories.contains(entry.getKey()))
+ {
+ ConfiguredObjectOperation op = entry.getValue();
+ for(ConfiguredObject<?> parent :
(Collection<ConfiguredObject<?>>) op.perform(_managedObject,
Collections.<String,Object>emptyMap()))
+ {
+ foundObjects.addAll(getChildrenOfType(parent,
type));
+ }
+ }
+ }
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unknown entity type:
'"+entityType+"'");
+ }
+ }
+ // TODO - get the objects
+
+ return new ArrayList<>(foundObjects);
+ }
+
+ private Set<ConfiguredObject<?>> findAllChildren()
+ {
+ final Set<ConfiguredObject<?>> foundObjects;
+ foundObjects = new HashSet<>();
+ Set<ConfiguredObject<?>> parents = new HashSet<>();
+ Set<ConfiguredObject<?>> children;
+
+ parents.add(_managedObject);
+ for(ConfiguredObjectOperation op :
_associatedChildrenOperations.values())
+ {
+ parents.addAll(
+ (Collection<ConfiguredObject<?>>)
op.perform(_managedObject, Collections.<String,Object>emptyMap()));
+ }
+ foundObjects.addAll(parents);
+ do
+ {
+ children = new HashSet<>();
+ for(ConfiguredObject<?> parent : parents)
+ {
+ for(Class<? extends ConfiguredObject> childClass :
_model.getChildTypes(parent.getCategoryClass()))
+ {
+ children.addAll((Collection<? extends
ConfiguredObject<?>>) parent.getChildren(childClass));
+ }
+ }
+ parents = children;
+
+
+ }
+ while(foundObjects.addAll(parents));
+ return foundObjects;
}
private List<String> generateAttributeNames(String entityType)
Modified:
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java?rev=1770632&r1=1770631&r2=1770632&view=diff
==============================================================================
---
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
(original)
+++
qpid/java/trunk/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
Mon Nov 21 09:26:03 2016
@@ -22,6 +22,7 @@ package org.apache.qpid.systest.manageme
import static
org.apache.qpid.server.model.Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -103,6 +104,33 @@ public class AmqpManagementTest extends
((MapMessage)
responseMessage).getObject("org.apache.qpid.Port"));
}
+ // test get types on $management
+ public void testQueryBrokerManagement() throws Exception
+ {
+ setupBrokerManagementConnection();
+
+ MapMessage message = _session.createMapMessage();
+
+ message.setStringProperty("identity", "self");
+ message.setStringProperty("type", "org.amqp.management");
+ message.setStringProperty("operation", "QUERY");
+ message.setObject("attributeNames", new ArrayList<>());
+ message.setJMSReplyTo(_replyAddress);
+
+ _producer.send(message);
+
+ Message responseMessage = _consumer.receive(getReceiveTimeout());
+ assertNotNull("A response message was not sent", responseMessage);
+ assertEquals("The correlation id does not match the sent message's
messageId", message.getJMSMessageID(), responseMessage.getJMSCorrelationID());
+ assertTrue("The response message does not have a status code",
+
Collections.list(responseMessage.getPropertyNames()).contains("statusCode"));
+ assertEquals("The response code did not indicate success", 200,
responseMessage.getIntProperty("statusCode"));
+ assertTrue("The response was not a MapMessage", responseMessage
instanceof MapMessage);
+
+
+ }
+
+
// test get types on a virtual host
public void testGetTypesOnVhostManagement() throws Exception
{
@@ -636,4 +664,6 @@ public class AmqpManagementTest extends
assertEquals("The response code did not indicate success", 200,
responseMessage.getIntProperty("statusCode"));
}
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]