diff options
| author | Alex Rudyy <orudyy@apache.org> | 2015-04-15 09:47:28 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2015-04-15 09:47:28 +0000 |
| commit | 0a0baee45ebcff44635907d457c4ff6810b09c87 (patch) | |
| tree | 8bfb0f9eddbc23cff88af69be80ab3ce7d47011c /qpid/java/broker-plugins/management-amqp | |
| parent | 54aa3d7070da16ce55c28ccad3f7d0871479e461 (diff) | |
| download | qpid-python-0a0baee45ebcff44635907d457c4ff6810b09c87.tar.gz | |
QPID-6481: Move java source tree to top level
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1673693 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/management-amqp')
6 files changed, 0 insertions, 2106 deletions
diff --git a/qpid/java/broker-plugins/management-amqp/pom.xml b/qpid/java/broker-plugins/management-amqp/pom.xml deleted file mode 100644 index 9540560000..0000000000 --- a/qpid/java/broker-plugins/management-amqp/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <artifactId>qpid-java-build</artifactId> - <groupId>org.apache.qpid</groupId> - <version>0.32-SNAPSHOT</version> - <relativePath>../../pom.xml</relativePath> - </parent> - - <artifactId>qpid-broker-plugins-management-amqp</artifactId> - <name>Qpid AMQP Management Protocol Broker Plug-in</name> - <description>Qpid AMQP Management broker plug-in</description> - - <dependencies> - <dependency> - <groupId>org.apache.qpid</groupId> - <artifactId>qpid-broker-core</artifactId> - <version>${project.version}</version> - <scope>provided</scope> - </dependency> - - - <dependency> - <groupId>org.apache.qpid</groupId> - <artifactId>qpid-broker-codegen</artifactId> - <version>${project.version}</version> - <optional>true</optional> - </dependency> - - </dependencies> - - <build> - </build> - -</project> diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagedEntityType.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagedEntityType.java deleted file mode 100644 index 10a16faa56..0000000000 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagedEntityType.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.management.amqp; - -import java.util.Arrays; - -class ManagedEntityType -{ - private final String _name; - private final ManagedEntityType[] _parents; - private final String[] _attributes; - private final String[] _operations; - - ManagedEntityType(final String name, - final ManagedEntityType[] parents, - final String[] attributes, - final String[] operations) - { - _name = name; - _parents = parents; - _attributes = attributes; - _operations = operations; - } - - public String getName() - { - return _name; - } - - public ManagedEntityType[] getParents() - { - return _parents; - } - - public String[] getAttributes() - { - return _attributes; - } - - public String[] getOperations() - { - return _operations; - } - - @Override - public String toString() - { - return "ManagedEntityType{" + - "name='" + _name + '\'' + - ", parents=" + Arrays.toString(_parents) + - ", attributes=" + Arrays.toString(_attributes) + - ", operations=" + Arrays.toString(_operations) + - '}'; - } -} diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java deleted file mode 100644 index 8e64757cbb..0000000000 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java +++ /dev/null @@ -1,1449 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.management.amqp; - -import java.nio.charset.Charset; -import java.security.AccessControlException; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArrayList; - -import org.apache.qpid.server.consumer.ConsumerImpl; -import org.apache.qpid.server.consumer.ConsumerTarget; -import org.apache.qpid.server.filter.FilterManager; -import org.apache.qpid.server.filter.Filterable; -import org.apache.qpid.server.message.AMQMessageHeader; -import org.apache.qpid.server.message.InstanceProperties; -import org.apache.qpid.server.message.MessageDestination; -import org.apache.qpid.server.message.MessageInstance; -import org.apache.qpid.server.message.MessageSource; -import org.apache.qpid.server.message.ServerMessage; -import org.apache.qpid.server.message.internal.InternalMessage; -import org.apache.qpid.server.message.internal.InternalMessageHeader; -import org.apache.qpid.server.model.ConfigurationChangeListener; -import org.apache.qpid.server.model.ConfiguredObject; -import org.apache.qpid.server.model.ManagedObject; -import org.apache.qpid.server.model.State; -import org.apache.qpid.server.plugin.MessageConverter; -import org.apache.qpid.server.plugin.SystemNodeCreator; -import org.apache.qpid.server.protocol.AMQSessionModel; -import org.apache.qpid.server.protocol.MessageConverterRegistry; -import org.apache.qpid.server.store.MessageDurability; -import org.apache.qpid.server.store.MessageEnqueueRecord; -import org.apache.qpid.server.store.StorableMessageMetaData; -import org.apache.qpid.server.store.TransactionLogResource; -import org.apache.qpid.server.txn.AutoCommitTransaction; -import org.apache.qpid.server.txn.ServerTransaction; -import org.apache.qpid.server.util.Action; -import org.apache.qpid.server.util.StateChangeListener; -import org.apache.qpid.server.virtualhost.VirtualHostImpl; - -class ManagementNode implements MessageSource, MessageDestination -{ - - public static final String NAME_ATTRIBUTE = "name"; - public static final String IDENTITY_ATTRIBUTE = "identity"; - public static final String TYPE_ATTRIBUTE = "type"; - public static final String OPERATION_HEADER = "operation"; - public static final String SELF_NODE_NAME = "self"; - public static final String MANAGEMENT_TYPE = "org.amqp.management"; - public static final String GET_TYPES = "GET-TYPES"; - public static final String GET_ATTRIBUTES = "GET-ATTRIBUTES"; - public static final String GET_OPERATIONS = "GET-OPERATIONS"; - public static final String QUERY = "QUERY"; - public static final String ENTITY_TYPE_HEADER = "entityType"; - public static final String STATUS_CODE_HEADER = "statusCode"; - public static final int STATUS_CODE_OK = 200; - public static final String ATTRIBUTES_HEADER = "attributes"; - public static final String OFFSET_HEADER = "offset"; - public static final String COUNT_HEADER = "count"; - public static final String MANAGEMENT_NODE_NAME = "$management"; - public static final String CREATE_OPERATION = "CREATE"; - public static final String READ_OPERATION = "READ"; - public static final String UPDATE_OPERATION = "UPDATE"; - public static final String DELETE_OPERATION = "DELETE"; - public static final String STATUS_DESCRIPTION_HEADER = "statusDescription"; - public static final int NOT_FOUND_STATUS_CODE = 404; - public static final int NOT_IMPLEMENTED_STATUS_CODE = 501; - public static final int STATUS_CODE_NO_CONTENT = 204; - public static final int STATUS_CODE_FORBIDDEN = 403; - public static final int STATUS_CODE_BAD_REQUEST = 400; - public static final int STATUS_CODE_INTERNAL_ERROR = 500; - public static final String ATTRIBUTE_NAMES = "attributeNames"; - public static final String RESULTS = "results"; - - - private final VirtualHostImpl _virtualHost; - - private final UUID _id; - - private final CopyOnWriteArrayList<ConsumerRegistrationListener<? super MessageSource>> _consumerRegistrationListeners = - new CopyOnWriteArrayList<ConsumerRegistrationListener<? super MessageSource>>(); - - private final SystemNodeCreator.SystemNodeRegistry _registry; - private final ConfiguredObject<?> _managedObject; - private Map<String, ManagementNodeConsumer> _consumers = new ConcurrentHashMap<String, ManagementNodeConsumer>(); - - private Map<String,ManagedEntityType> _entityTypes = Collections.synchronizedMap(new LinkedHashMap<String, ManagedEntityType>()); - - private Map<ManagedEntityType,Map<String,ConfiguredObject>> _entities = Collections.synchronizedMap(new LinkedHashMap<ManagedEntityType,Map<String,ConfiguredObject>>()); - - - public ManagementNode(final SystemNodeCreator.SystemNodeRegistry registry, - final ConfiguredObject<?> configuredObject) - { - _virtualHost = registry.getVirtualHost(); - _registry = registry; - final String name = configuredObject.getId() + MANAGEMENT_NODE_NAME; - _id = UUID.nameUUIDFromBytes(name.getBytes(Charset.defaultCharset())); - - - _managedObject = configuredObject; - - configuredObject.addChangeListener(new ModelObjectListener()); - - } - - private Class getManagementClass(Class objectClass) - { - - if(objectClass.getAnnotation(ManagedObject.class)!=null) - { - return objectClass; - } - List<Class> allClasses = Collections.singletonList(objectClass); - List<Class> testedClasses = new ArrayList<Class>(); - do - { - testedClasses.addAll( allClasses ); - allClasses = new ArrayList<Class>(); - for(Class c : testedClasses) - { - for(Class i : c.getInterfaces()) - { - if(!allClasses.contains(i)) - { - allClasses.add(i); - } - } - if(c.getSuperclass() != null && !allClasses.contains(c.getSuperclass())) - { - allClasses.add(c.getSuperclass()); - } - } - allClasses.removeAll(testedClasses); - for(Class c : allClasses) - { - if(c.getAnnotation(ManagedObject.class) != null) - { - return c; - } - } - } - while(!allClasses.isEmpty()); - return null; - } - - private boolean populateTypeMetaData(final Class<? extends ConfiguredObject> objectClass, boolean allowCreate) - { - Class clazz = getManagementClass(objectClass); - if( clazz != null) - { - ManagedObject annotation = (ManagedObject) clazz.getAnnotation(ManagedObject.class); - populateTypeMetaData(clazz, annotation); - return true; - } - else - { - return false; - } - } - - private ManagedEntityType populateTypeMetaData(Class clazz, - final ManagedObject entityType) - { - - ManagedEntityType managedEntityType = _entityTypes.get(clazz.getName()); - - if(managedEntityType == null) - { - List<String> opsList = new ArrayList<String>(Arrays.asList(entityType.operations())); - if(entityType.creatable()) - { - boolean isCreatableChild = false; - Collection<Class<? extends ConfiguredObject>> parentTypes = _managedObject.getModel().getParentTypes(clazz); - for(Class<? extends ConfiguredObject> parentConfig : parentTypes) - { - isCreatableChild = parentConfig.isAssignableFrom(_managedObject.getClass()); - if(isCreatableChild) - { - opsList.add(CREATE_OPERATION); - break; - } - } - } - opsList.addAll(Arrays.asList(READ_OPERATION, UPDATE_OPERATION, DELETE_OPERATION)); - - Set<ManagedEntityType> parentSet = new HashSet<ManagedEntityType>(); - - List<Class> allClasses = new ArrayList<Class>(Arrays.asList(clazz.getInterfaces())); - if(clazz.getSuperclass() != null) - { - allClasses.add(clazz.getSuperclass()); - } - - for(Class parentClazz : allClasses) - { - if(parentClazz.getAnnotation(ManagedObject.class) != null) - { - ManagedEntityType parentType = populateTypeMetaData(parentClazz, - (ManagedObject) parentClazz.getAnnotation( - ManagedObject.class) - ); - parentSet.add(parentType); - parentSet.addAll(Arrays.asList(parentType.getParents())); - - } - } - managedEntityType = new ManagedEntityType(clazz.getName(), parentSet.toArray(new ManagedEntityType[parentSet.size()]), - (String[])(_managedObject.getModel().getTypeRegistry().getAttributeNames( - clazz).toArray(new String[0])), - opsList.toArray(new String[opsList.size()])); - _entityTypes.put(clazz.getName(),managedEntityType); - _entities.put(managedEntityType, Collections.synchronizedMap(new LinkedHashMap<String, ConfiguredObject>())); - - if(ConfiguredObject.class.isAssignableFrom(clazz)) - { - Collection<Class<? extends ConfiguredObject>> childTypes = _managedObject.getModel().getChildTypes(clazz); - for(Class<? extends ConfiguredObject> childClass : childTypes) - { - populateTypeMetaData(childClass, true); - } - } - - } - - return managedEntityType; - - } - - @Override - public <M extends ServerMessage<? extends StorableMessageMetaData>> int send(final M message, - final String routingAddress, - final InstanceProperties instanceProperties, - final ServerTransaction txn, - final Action<? super MessageInstance> postEnqueueAction) - { - - @SuppressWarnings("unchecked") - MessageConverter converter = - MessageConverterRegistry.getConverter(message.getClass(), InternalMessage.class); - - final InternalMessage msg = (InternalMessage) converter.convert(message, _virtualHost); - - if(validateMessage(msg)) - { - txn.addPostTransactionAction(new ServerTransaction.Action() - { - @Override - public void postCommit() - { - enqueue(msg, instanceProperties, postEnqueueAction); - } - - @Override - public void onRollback() - { - - } - }); - - return 1; - } - else - { - return 0; - } - } - - private boolean validateMessage(final ServerMessage message) - { - AMQMessageHeader header = message.getMessageHeader(); - return containsStringHeader(header, TYPE_ATTRIBUTE) && containsStringHeader(header, OPERATION_HEADER) - && (containsStringHeader(header, NAME_ATTRIBUTE) || containsStringHeader(header, IDENTITY_ATTRIBUTE)); - } - - private boolean containsStringHeader(final AMQMessageHeader header, String name) - { - return header.containsHeader(name) && header.getHeader(name) instanceof String; - } - - synchronized void enqueue(InternalMessage message, InstanceProperties properties, Action<? super MessageInstance> postEnqueueAction) - { - if(postEnqueueAction != null) - { - postEnqueueAction.performAction(new ConsumedMessageInstance(message, properties)); - } - - - - String name = (String) message.getMessageHeader().getHeader(NAME_ATTRIBUTE); - String id = (String) message.getMessageHeader().getHeader(IDENTITY_ATTRIBUTE); - String type = (String) message.getMessageHeader().getHeader(TYPE_ATTRIBUTE); - String operation = (String) message.getMessageHeader().getHeader(OPERATION_HEADER); - - InternalMessage response; - - if(SELF_NODE_NAME.equals(name) && type.equals(MANAGEMENT_TYPE)) - { - response = performManagementOperation(message); - } - else if(CREATE_OPERATION.equals(operation)) - { - response = performCreateOperation(message, type); - } - else - { - - ConfiguredObject entity = findSubject(name, id, type); - - if(entity != null) - { - response = performOperation(message, entity); - } - else - { - if(id != null) - { - response = createFailureResponse(message, - NOT_FOUND_STATUS_CODE, - "No entity with id {0} of type {1} found", id, type); - } - else - { - response = createFailureResponse(message, - NOT_FOUND_STATUS_CODE, - "No entity with name {0} of type {1} found", name, type); - } - } - } - - - ManagementNodeConsumer consumer = _consumers.get(message.getMessageHeader().getReplyTo()); - response.setInitialRoutingAddress(message.getMessageHeader().getReplyTo()); - if(consumer != null) - { - // TODO - check same owner - consumer.send(response); - } - else - { - _virtualHost.getDefaultDestination().send(response, - message.getMessageHeader().getReplyTo(), InstanceProperties.EMPTY, - new AutoCommitTransaction(_virtualHost.getMessageStore()), - null); - } - // TODO - route to a queue - - } - - private InternalMessage performCreateOperation(final InternalMessage message, final String type) - { - InternalMessage response; - ManagedEntityType entityType = _entityTypes.get(type); - if(type != null) - { - if(Arrays.asList(entityType.getOperations()).contains(CREATE_OPERATION)) - { - Object messageBody = message.getMessageBody(); - if(messageBody instanceof Map) - { - try - { - - Class<? extends ConfiguredObject> clazz = - (Class<? extends ConfiguredObject>) Class.forName(type); - try - { - ConfiguredObject child = _managedObject.createChild(clazz, (Map) messageBody); - if(child == null) - { - child = _entities.get(entityType).get(message.getMessageHeader().getHeader(NAME_ATTRIBUTE)); - } - response = performReadOperation(message, child); - } - catch(AccessControlException e) - { - response = createFailureResponse(message, STATUS_CODE_FORBIDDEN, e.getMessage()); - } - } - catch (ClassNotFoundException e) - { - response = createFailureResponse(message, - STATUS_CODE_INTERNAL_ERROR, "Unable to instantiate an instance of {0} ", type); - } - } - else - { - response = createFailureResponse(message, - STATUS_CODE_BAD_REQUEST, - "The message body in the request was not of the correct type"); - } - } - else - { - response = createFailureResponse(message, - STATUS_CODE_FORBIDDEN, - "Cannot CREATE entities of type {0}", type); - } - } - else - { - response = createFailureResponse(message, - NOT_FOUND_STATUS_CODE, - "Unknown type {0}",type); - } - return response; - } - - private InternalMessage performOperation(final InternalMessage requestMessage, final ConfiguredObject entity) - { - String operation = (String) requestMessage.getMessageHeader().getHeader(OPERATION_HEADER); - - if(READ_OPERATION.equals(operation)) - { - return performReadOperation(requestMessage, entity); - } - else if(DELETE_OPERATION.equals(operation)) - { - return performDeleteOperation(requestMessage, entity); - } - else if(UPDATE_OPERATION.equals(operation)) - { - return performUpdateOperation(requestMessage, entity); - } - else - { - return createFailureResponse(requestMessage, NOT_IMPLEMENTED_STATUS_CODE, "Unable to perform the {0} operation",operation); - } - } - - private InternalMessage performReadOperation(final InternalMessage requestMessage, final ConfiguredObject entity) - { - final InternalMessageHeader requestHeader = requestMessage.getMessageHeader(); - final MutableMessageHeader responseHeader = new MutableMessageHeader(); - responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null - ? requestHeader.getMessageId() - : requestHeader.getCorrelationId()); - responseHeader.setMessageId(UUID.randomUUID().toString()); - responseHeader.setHeader(NAME_ATTRIBUTE, entity.getName()); - responseHeader.setHeader(IDENTITY_ATTRIBUTE, entity.getId().toString()); - responseHeader.setHeader(STATUS_CODE_HEADER,STATUS_CODE_OK); - final String type = getManagementClass(entity.getClass()).getName(); - responseHeader.setHeader(TYPE_ATTRIBUTE, type); - - Map<String,Object> responseBody = new LinkedHashMap<String, Object>(); - final ManagedEntityType entityType = _entityTypes.get(type); - for(String attribute : entityType.getAttributes()) - { - responseBody.put(attribute, fixValue(entity.getAttribute(attribute))); - } - - return InternalMessage.createMapMessage(_virtualHost.getMessageStore(),responseHeader, responseBody); - } - - - private InternalMessage performDeleteOperation(final InternalMessage requestMessage, final ConfiguredObject entity) - { - final InternalMessageHeader requestHeader = requestMessage.getMessageHeader(); - final MutableMessageHeader responseHeader = new MutableMessageHeader(); - responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null - ? requestHeader.getMessageId() - : requestHeader.getCorrelationId()); - responseHeader.setMessageId(UUID.randomUUID().toString()); - responseHeader.setHeader(NAME_ATTRIBUTE, entity.getName()); - responseHeader.setHeader(IDENTITY_ATTRIBUTE, entity.getId().toString()); - final String type = getManagementClass(entity.getClass()).getName(); - responseHeader.setHeader(TYPE_ATTRIBUTE, type); - try - { - entity.delete(); - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_NO_CONTENT); - } - catch(AccessControlException e) - { - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_FORBIDDEN); - } - - return InternalMessage.createMapMessage(_virtualHost.getMessageStore(),responseHeader, Collections.emptyMap()); - } - - - private InternalMessage performUpdateOperation(final InternalMessage requestMessage, final ConfiguredObject entity) - { - final InternalMessageHeader requestHeader = requestMessage.getMessageHeader(); - final MutableMessageHeader responseHeader = new MutableMessageHeader(); - responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null - ? requestHeader.getMessageId() - : requestHeader.getCorrelationId()); - responseHeader.setMessageId(UUID.randomUUID().toString()); - responseHeader.setHeader(NAME_ATTRIBUTE, entity.getName()); - responseHeader.setHeader(IDENTITY_ATTRIBUTE, entity.getId().toString()); - final String type = getManagementClass(entity.getClass()).getName(); - responseHeader.setHeader(TYPE_ATTRIBUTE, type); - - Object messageBody = requestMessage.getMessageBody(); - if(messageBody instanceof Map) - { - try - { - entity.setAttributes((Map)messageBody); - return performReadOperation(requestMessage, entity); - } - catch(AccessControlException e) - { - return createFailureResponse(requestMessage, STATUS_CODE_FORBIDDEN, e.getMessage()); - } - } - else - { - return createFailureResponse(requestMessage, - STATUS_CODE_BAD_REQUEST, - "The message body in the request was not of the correct type"); - } - - - } - - private ConfiguredObject findSubject(final String name, final String id, final String type) - { - ConfiguredObject subject; - ManagedEntityType met = _entityTypes.get(type); - if(met == null) - { - return null; - } - - subject = findSubject(name, id, met); - if(subject == null) - { - ArrayList<ManagedEntityType> allTypes = new ArrayList<ManagedEntityType>(_entityTypes.values()); - for(ManagedEntityType entityType : allTypes) - { - if(Arrays.asList(entityType.getParents()).contains(met)) - { - subject = findSubject(name, id, entityType); - if(subject != null) - { - return subject; - } - } - } - } - return subject; - } - - private ConfiguredObject findSubject(final String name, final String id, final ManagedEntityType entityType) - { - - Map<String, ConfiguredObject> objects = _entities.get(entityType); - if(name != null) - { - ConfiguredObject subject = objects.get(name); - if(subject != null) - { - return subject; - } - } - else - { - final Collection<ConfiguredObject> values = new ArrayList<ConfiguredObject>(objects.values()); - for(ConfiguredObject o : values) - { - if(o.getId().toString().equals(id)) - { - return o; - } - } - } - return null; - } - - private InternalMessage createFailureResponse(final InternalMessage requestMessage, - final int statusCode, - final String stateDescription, - String... params) - { - final InternalMessageHeader requestHeader = requestMessage.getMessageHeader(); - final MutableMessageHeader responseHeader = new MutableMessageHeader(); - responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null - ? requestHeader.getMessageId() - : requestHeader.getCorrelationId()); - responseHeader.setMessageId(UUID.randomUUID().toString()); - for(String header : requestHeader.getHeaderNames()) - { - responseHeader.setHeader(header, requestHeader.getHeader(header)); - } - responseHeader.setHeader(STATUS_CODE_HEADER, statusCode); - responseHeader.setHeader(STATUS_DESCRIPTION_HEADER, MessageFormat.format(stateDescription, params)); - return InternalMessage.createBytesMessage(_virtualHost.getMessageStore(), responseHeader, new byte[0]); - - } - - private InternalMessage performManagementOperation(final InternalMessage msg) - { - final InternalMessage responseMessage; - final InternalMessageHeader requestHeader = msg.getMessageHeader(); - final MutableMessageHeader responseHeader = new MutableMessageHeader(); - responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null - ? requestHeader.getMessageId() - : requestHeader.getCorrelationId()); - responseHeader.setMessageId(UUID.randomUUID().toString()); - - - String operation = (String) requestHeader.getHeader(OPERATION_HEADER); - if(GET_TYPES.equals(operation)) - { - responseMessage = performGetTypes(requestHeader, responseHeader); - } - else if(GET_ATTRIBUTES.equals(operation)) - { - responseMessage = performGetAttributes(requestHeader, responseHeader); - } - else if(GET_OPERATIONS.equals(operation)) - { - responseMessage = performGetOperations(requestHeader, responseHeader); - } - else if(QUERY.equals(operation)) - { - responseMessage = performQuery(requestHeader, msg.getMessageBody(), responseHeader); - } - else - { - responseMessage = InternalMessage.createBytesMessage(_virtualHost.getMessageStore(), requestHeader, new byte[0]); - } - return responseMessage; - } - - private InternalMessage performGetTypes(final InternalMessageHeader requestHeader, - final MutableMessageHeader responseHeader) - { - final InternalMessage responseMessage; - List<String> restriction; - if(requestHeader.containsHeader(ENTITY_TYPE_HEADER)) - { - restriction = new ArrayList<String>(Collections.singletonList( (String)requestHeader.getHeader(ENTITY_TYPE_HEADER))); - } - else - { - restriction = null; - } - - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK); - Map<String,Object> responseMap = new LinkedHashMap<String, Object>(); - Map<String,ManagedEntityType> entityMapCopy; - synchronized (_entityTypes) - { - entityMapCopy = new LinkedHashMap<String, ManagedEntityType>(_entityTypes); - } - - for(ManagedEntityType type : entityMapCopy.values()) - { - if(restriction == null || meetsIndirectRestriction(type,restriction)) - { - final ManagedEntityType[] parents = type.getParents(); - List<String> parentNames = new ArrayList<String>(); - if(parents != null) - { - for(ManagedEntityType parent : parents) - { - parentNames.add(parent.getName()); - } - } - responseMap.put(type.getName(), parentNames); - } - } - responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap); - return responseMessage; - } - - private InternalMessage performGetAttributes(final InternalMessageHeader requestHeader, - final MutableMessageHeader responseHeader) - { - final InternalMessage responseMessage; - String restriction; - if(requestHeader.containsHeader(ENTITY_TYPE_HEADER)) - { - restriction = (String) requestHeader.getHeader(ENTITY_TYPE_HEADER); - } - else - { - restriction = null; - } - - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK); - Map<String,Object> responseMap = new LinkedHashMap<String, Object>(); - Map<String,ManagedEntityType> entityMapCopy; - synchronized (_entityTypes) - { - entityMapCopy = new LinkedHashMap<String, ManagedEntityType>(_entityTypes); - } - - if(restriction == null) - { - for(ManagedEntityType type : entityMapCopy.values()) - { - responseMap.put(type.getName(), Arrays.asList(type.getAttributes())); - } - } - else if(entityMapCopy.containsKey(restriction)) - { - responseMap.put(restriction, Arrays.asList(entityMapCopy.get(restriction).getAttributes())); - } - - responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap); - return responseMessage; - } - - - private InternalMessage performGetOperations(final InternalMessageHeader requestHeader, - final MutableMessageHeader responseHeader) - { - final InternalMessage responseMessage; - String restriction; - if(requestHeader.containsHeader(ENTITY_TYPE_HEADER)) - { - restriction = (String) requestHeader.getHeader(ENTITY_TYPE_HEADER); - } - else - { - restriction = null; - } - - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK); - Map<String,Object> responseMap = new LinkedHashMap<String, Object>(); - Map<String,ManagedEntityType> entityMapCopy; - synchronized (_entityTypes) - { - entityMapCopy = new LinkedHashMap<String, ManagedEntityType>(_entityTypes); - } - - if(restriction == null) - { - for(ManagedEntityType type : entityMapCopy.values()) - { - responseMap.put(type.getName(), Arrays.asList(type.getOperations())); - } - } - else if(entityMapCopy.containsKey(restriction)) - { - ManagedEntityType type = entityMapCopy.get(restriction); - responseMap.put(type.getName(), Arrays.asList(type.getOperations())); - } - responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap); - return responseMessage; - } - - private InternalMessage performQuery(final InternalMessageHeader requestHeader, - final Object messageBody, final MutableMessageHeader responseHeader) - { - final InternalMessage responseMessage; - List<String> restriction; - List<String> attributes; - int offset; - int count; - - if(requestHeader.containsHeader(ENTITY_TYPE_HEADER)) - { - restriction = new ArrayList<String>(Collections.singletonList((String) requestHeader.getHeader( - ENTITY_TYPE_HEADER))); - responseHeader.setHeader(ENTITY_TYPE_HEADER, restriction); - } - else - { - restriction = new ArrayList<String>(_entityTypes.keySet()); - } - - - if(messageBody instanceof Map && ((Map)messageBody).get(ATTRIBUTE_NAMES) instanceof List) - { - attributes = (List<String>) ((Map)messageBody).get(ATTRIBUTE_NAMES); - } - else - { - LinkedHashMap<String,Void> attributeSet = new LinkedHashMap<String, Void>(); - for(String entityType : restriction) - { - ManagedEntityType type = _entityTypes.get(entityType); - if(type != null) - { - for(String attributeName : type.getAttributes()) - { - attributeSet.put(attributeName, null); - } - } - } - attributes = new ArrayList<String>(attributeSet.keySet()); - - } - - if(requestHeader.containsHeader(OFFSET_HEADER)) - { - offset = ((Number) requestHeader.getHeader(OFFSET_HEADER)).intValue(); - responseHeader.setHeader(OFFSET_HEADER,offset); - } - else - { - offset = 0; - } - - if(requestHeader.containsHeader(COUNT_HEADER)) - { - count = ((Number) requestHeader.getHeader(COUNT_HEADER)).intValue(); - } - else - { - count = Integer.MAX_VALUE; - } - - - responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK); - List<List<? extends Object>> responseList = new ArrayList<List<? extends Object>>(); - int rowNo = 0; - for(String type : restriction) - { - ManagedEntityType entityType = _entityTypes.get(type); - if(entityType != null) - { - Map<String, ConfiguredObject> entityMap = _entities.get(entityType); - if(entityMap != null) - { - List<ConfiguredObject> entities; - synchronized(entityMap) - { - entities = new ArrayList<ConfiguredObject>(entityMap.values()); - } - for(ConfiguredObject entity : entities) - { - if(rowNo++ >= offset) - { - Object[] attrValue = new Object[attributes.size()]; - int col = 0; - for(String attr : attributes) - { - Object value; - if(TYPE_ATTRIBUTE.equals(attr)) - { - value = entityType.getName(); - } - else - { - value = fixValue(entity.getAttribute(attr)); - } - attrValue[col++] = value; - } - responseList.add(Arrays.asList(attrValue)); - } - if(responseList.size()==count+1) - { - break; - } - } - } - } - - if(responseList.size()==count) - { - break; - } - } - responseHeader.setHeader(COUNT_HEADER, responseList.size()); - Map<String,List> responseMap = new HashMap<String, List>(); - responseMap.put(ATTRIBUTE_NAMES, attributes); - responseMap.put(RESULTS, responseList); - responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), - responseHeader, - responseMap); - return responseMessage; - } - - private Object fixValue(final Object value) - { - Object fixedValue; - if(value instanceof Enum) - { - fixedValue = value.toString(); - } - else if(value instanceof Map) - { - Map<Object, Object> oldValue = (Map<Object, Object>) value; - Map<Object, Object> newValue = new LinkedHashMap<Object, Object>(); - for(Map.Entry<Object, Object> entry : oldValue.entrySet()) - { - newValue.put(fixValue(entry.getKey()),fixValue(entry.getValue())); - } - fixedValue = newValue; - } - else if(value instanceof Collection) - { - Collection oldValue = (Collection) value; - List newValue = new ArrayList(oldValue.size()); - for(Object o : oldValue) - { - newValue.add(fixValue(o)); - } - fixedValue = newValue; - } - else if(value != null && value.getClass().isArray() && !(value instanceof byte[])) - { - fixedValue = fixValue(Arrays.asList((Object[])value)); - } - else - { - fixedValue = value; - } - return fixedValue; - - } - - - private boolean meetsIndirectRestriction(final ManagedEntityType type, final List<String> restriction) - { - if(restriction.contains(type.getName())) - { - return true; - } - if(type.getParents() != null) - { - for(ManagedEntityType parent : type.getParents()) - { - if(meetsIndirectRestriction(parent, restriction)) - { - return true; - } - } - } - return false; - } - - @Override - public synchronized ManagementNodeConsumer addConsumer(final ConsumerTarget target, - final FilterManager filters, - final Class<? extends ServerMessage> messageClass, - final String consumerName, - final EnumSet<ConsumerImpl.Option> options) - { - - final ManagementNodeConsumer managementNodeConsumer = new ManagementNodeConsumer(consumerName,this, target); - target.consumerAdded(managementNodeConsumer); - _consumers.put(consumerName, managementNodeConsumer); - for(ConsumerRegistrationListener<? super MessageSource> listener : _consumerRegistrationListeners) - { - listener.consumerAdded(this, managementNodeConsumer); - } - return managementNodeConsumer; - } - - @Override - public synchronized Collection<ManagementNodeConsumer> getConsumers() - { - return new ArrayList<ManagementNodeConsumer>(_consumers.values()); - } - - @Override - public void addConsumerRegistrationListener(final ConsumerRegistrationListener<? super MessageSource> listener) - { - _consumerRegistrationListeners.add(listener); - } - - @Override - public void removeConsumerRegistrationListener(final ConsumerRegistrationListener listener) - { - _consumerRegistrationListeners.remove(listener); - } - - @Override - public boolean verifySessionAccess(final AMQSessionModel<?, ?> session) - { - return true; - } - - @Override - public String getName() - { - return MANAGEMENT_NODE_NAME; - } - - @Override - public UUID getId() - { - return _id; - } - - @Override - public MessageDurability getMessageDurability() - { - return MessageDurability.NEVER; - } - - private class ConsumedMessageInstance implements MessageInstance - { - private final ServerMessage _message; - private final InstanceProperties _properties; - - public ConsumedMessageInstance(final ServerMessage message, - final InstanceProperties properties) - { - _message = message; - _properties = properties; - } - - @Override - public int getDeliveryCount() - { - return 0; - } - - @Override - public void incrementDeliveryCount() - { - - } - - @Override - public void decrementDeliveryCount() - { - - } - - @Override - public void addStateChangeListener(final StateChangeListener<? super MessageInstance, State> listener) - { - - } - - @Override - public boolean removeStateChangeListener(final StateChangeListener<? super MessageInstance, State> listener) - { - return false; - } - - - @Override - public boolean acquiredByConsumer() - { - return false; - } - - @Override - public ConsumerImpl getAcquiringConsumer() - { - return null; - } - - @Override - public MessageEnqueueRecord getEnqueueRecord() - { - return null; - } - - @Override - public boolean isAcquiredBy(final ConsumerImpl consumer) - { - return false; - } - - @Override - public boolean removeAcquisitionFromConsumer(final ConsumerImpl consumer) - { - return false; - } - - @Override - public void setRedelivered() - { - - } - - @Override - public boolean isRedelivered() - { - return false; - } - - @Override - public ConsumerImpl getDeliveredConsumer() - { - return null; - } - - @Override - public void reject() - { - - } - - @Override - public boolean isRejectedBy(final ConsumerImpl consumer) - { - return false; - } - - @Override - public boolean getDeliveredToConsumer() - { - return true; - } - - @Override - public boolean expired() - { - return false; - } - - @Override - public boolean acquire(final ConsumerImpl sub) - { - return false; - } - - @Override - public boolean lockAcquisition() - { - return false; - } - - @Override - public boolean unlockAcquisition() - { - return false; - } - - @Override - public int getMaximumDeliveryCount() - { - return 0; - } - - @Override - public int routeToAlternate(final Action<? super MessageInstance> action, - final ServerTransaction txn) - { - return 0; - } - - - @Override - public Filterable asFilterable() - { - return null; - } - - @Override - public boolean isAvailable() - { - return false; - } - - @Override - public boolean acquire() - { - return false; - } - - @Override - public boolean isAcquired() - { - return false; - } - - @Override - public void release() - { - - } - - @Override - public boolean resend() - { - return false; - } - - @Override - public void delete() - { - - } - - @Override - public boolean isDeleted() - { - return false; - } - - @Override - public ServerMessage getMessage() - { - return _message; - } - - @Override - public InstanceProperties getInstanceProperties() - { - return _properties; - } - - @Override - public TransactionLogResource getOwningResource() - { - return ManagementNode.this; - } - } - - private class ModelObjectListener implements ConfigurationChangeListener - { - @Override - public void stateChanged(final ConfiguredObject object, final State oldState, final State newState) - { - if(newState == State.DELETED) - { - _registry.removeSystemNode(ManagementNode.this); - } - else if(newState == State.ACTIVE && object instanceof org.apache.qpid.server.model.VirtualHost) - { - populateTypeMetaData(object.getClass(), false); - final Class managementClass = getManagementClass(_managedObject.getClass()); - _entities.get(_entityTypes.get(managementClass.getName())).put(_managedObject.getName(), _managedObject); - - Collection<Class<? extends ConfiguredObject>> childClasses = object.getModel().getChildTypes(managementClass); - for(Class<? extends ConfiguredObject> childClass : childClasses) - { - if(getManagementClass(childClass) != null) - { - for(ConfiguredObject child : _managedObject.getChildren(childClass)) - { - _entities.get(_entityTypes.get(getManagementClass(childClass).getName())).put(child.getName(), child); - } - } - } - - } - } - - @Override - public void childAdded(final ConfiguredObject object, final ConfiguredObject child) - { - final Class managementClass = getManagementClass(child.getClass()); - final ManagedEntityType entityType = _entityTypes.get(managementClass.getName()); - if(entityType != null) - { - _entities.get(entityType).put(child.getName(), child); - } - } - - @Override - public void childRemoved(final ConfiguredObject object, final ConfiguredObject child) - { - final ManagedEntityType entityType = _entityTypes.get(getManagementClass(child.getClass()).getName()); - if(entityType != null) - { - _entities.get(entityType).remove(child.getName()); - } - } - - @Override - public void attributeSet(final ConfiguredObject object, - final String attributeName, - final Object oldAttributeValue, - final Object newAttributeValue) - { - - } - } - - private static class MutableMessageHeader implements AMQMessageHeader - { - private final LinkedHashMap<String, Object> _headers = new LinkedHashMap<String, Object>(); - private String _correlationId; - private long _expiration; - private String _userId; - private String _appId; - private String _messageId; - private String _mimeType; - private String _encoding; - private byte _priority; - private long _timestamp; - private String _type; - private String _replyTo; - - public void setCorrelationId(final String correlationId) - { - _correlationId = correlationId; - } - - public void setExpiration(final long expiration) - { - _expiration = expiration; - } - - public void setUserId(final String userId) - { - _userId = userId; - } - - public void setAppId(final String appId) - { - _appId = appId; - } - - public void setMessageId(final String messageId) - { - _messageId = messageId; - } - - public void setMimeType(final String mimeType) - { - _mimeType = mimeType; - } - - public void setEncoding(final String encoding) - { - _encoding = encoding; - } - - public void setPriority(final byte priority) - { - _priority = priority; - } - - public void setTimestamp(final long timestamp) - { - _timestamp = timestamp; - } - - public void setType(final String type) - { - _type = type; - } - - public void setReplyTo(final String replyTo) - { - _replyTo = replyTo; - } - - public String getCorrelationId() - { - return _correlationId; - } - - public long getExpiration() - { - return _expiration; - } - - public String getUserId() - { - return _userId; - } - - public String getAppId() - { - return _appId; - } - - public String getMessageId() - { - return _messageId; - } - - public String getMimeType() - { - return _mimeType; - } - - public String getEncoding() - { - return _encoding; - } - - public byte getPriority() - { - return _priority; - } - - public long getTimestamp() - { - return _timestamp; - } - - public String getType() - { - return _type; - } - - public String getReplyTo() - { - return _replyTo; - } - - @Override - public Object getHeader(final String name) - { - return _headers.get(name); - } - - @Override - public boolean containsHeaders(final Set<String> names) - { - return _headers.keySet().containsAll(names); - } - - @Override - public boolean containsHeader(final String name) - { - return _headers.containsKey(name); - } - - @Override - public Collection<String> getHeaderNames() - { - return Collections.unmodifiableCollection(_headers.keySet()); - } - - public void setHeader(String header, Object value) - { - _headers.put(header,value); - } - - } -} diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java deleted file mode 100644 index 28d8a6c88c..0000000000 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeConsumer.java +++ /dev/null @@ -1,240 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.management.amqp; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - -import org.apache.qpid.server.consumer.ConsumerImpl; -import org.apache.qpid.server.consumer.ConsumerTarget; -import org.apache.qpid.server.message.MessageSource; -import org.apache.qpid.server.message.internal.InternalMessage; -import org.apache.qpid.server.protocol.AMQSessionModel; -import org.apache.qpid.server.util.StateChangeListener; - -class ManagementNodeConsumer implements ConsumerImpl -{ - private final long _id = ConsumerImpl.CONSUMER_NUMBER_GENERATOR.getAndIncrement(); - private final ManagementNode _managementNode; - private final List<ManagementResponse> _queue = Collections.synchronizedList(new ArrayList<ManagementResponse>()); - private final ConsumerTarget _target; - private final String _name; - private final StateChangeListener<ConsumerTarget, ConsumerTarget.State> _targetChangeListener = new TargetChangeListener(); - - - public ManagementNodeConsumer(final String consumerName, final ManagementNode managementNode, ConsumerTarget target) - { - _name = consumerName; - _managementNode = managementNode; - _target = target; - target.addStateListener(_targetChangeListener); - } - - @Override - public void externalStateChange() - { - - } - - @Override - public long getBytesOut() - { - return 0; - } - - @Override - public long getMessagesOut() - { - return 0; - } - - @Override - public long getUnacknowledgedBytes() - { - return 0; - } - - @Override - public long getUnacknowledgedMessages() - { - return 0; - } - - @Override - public AMQSessionModel getSessionModel() - { - return _target.getSessionModel(); - } - - @Override - public MessageSource getMessageSource() - { - return _managementNode; - } - - @Override - public long getConsumerNumber() - { - return _id; - } - - @Override - public boolean isSuspended() - { - return false; - } - - @Override - public boolean isClosed() - { - return false; - } - - @Override - public boolean acquires() - { - return true; - } - - @Override - public boolean seesRequeues() - { - return false; - } - - @Override - public void close() - { - } - - @Override - public boolean trySendLock() - { - return _target.trySendLock(); - } - - @Override - public void getSendLock() - { - _target.getSendLock(); - } - - @Override - public void releaseSendLock() - { - _target.releaseSendLock(); - } - - - @Override - public boolean isActive() - { - return false; - } - - @Override - public String getName() - { - return _name; - } - - @Override - public void flush() - { - - } - - @Override - public ConsumerTarget getTarget() - { - return _target; - } - - ManagementNode getManagementNode() - { - return _managementNode; - } - - void send(final InternalMessage response) - { - _target.getSendLock(); - try - { - final ManagementResponse responseEntry = new ManagementResponse(this, response); - if(_queue.isEmpty() && _target.allocateCredit(response)) - { - _target.send(this, responseEntry, false); - } - else - { - _queue.add(responseEntry); - } - } - finally - { - _target.releaseSendLock(); - } - } - - private class TargetChangeListener implements StateChangeListener<ConsumerTarget, ConsumerTarget.State> - { - @Override - public void stateChanged(final ConsumerTarget object, - final ConsumerTarget.State oldState, - final ConsumerTarget.State newState) - { - if(newState == ConsumerTarget.State.ACTIVE) - { - deliverMessages(); - } - } - } - - private void deliverMessages() - { - _target.getSendLock(); - try - { - while(!_queue.isEmpty()) - { - - final ManagementResponse managementResponse = _queue.get(0); - if(!_target.isSuspended() && _target.allocateCredit(managementResponse.getMessage())) - { - _queue.remove(0); - _target.send(this, managementResponse, false); - } - else - { - break; - } - } - } - finally - { - _target.releaseSendLock(); - } - } -} diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java deleted file mode 100644 index e977c027a1..0000000000 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNodeCreator.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.management.amqp; - -import org.apache.qpid.server.plugin.PluggableService; -import org.apache.qpid.server.plugin.SystemNodeCreator; - -@PluggableService -public class ManagementNodeCreator implements SystemNodeCreator -{ - @Override - public void register(final SystemNodeRegistry registry) - { - ManagementNode managementNode = new ManagementNode(registry,registry.getVirtualHost()); - registry.registerSystemNode(managementNode); - } - - @Override - public String getType() - { - return "AMQP-VIRTUALHOST-MANAGEMENT"; - } -} diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementResponse.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementResponse.java deleted file mode 100644 index dd5b7540a7..0000000000 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementResponse.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ -package org.apache.qpid.server.management.amqp; - -import org.apache.qpid.server.consumer.ConsumerImpl; -import org.apache.qpid.server.filter.Filterable; -import org.apache.qpid.server.message.InstanceProperties; -import org.apache.qpid.server.message.MessageInstance; -import org.apache.qpid.server.message.ServerMessage; -import org.apache.qpid.server.message.internal.InternalMessage; -import org.apache.qpid.server.store.MessageEnqueueRecord; -import org.apache.qpid.server.store.TransactionLogResource; -import org.apache.qpid.server.txn.ServerTransaction; -import org.apache.qpid.server.util.Action; -import org.apache.qpid.server.util.StateChangeListener; - -class ManagementResponse implements MessageInstance -{ - private final ManagementNodeConsumer _consumer; - private int _deliveryCount; - private boolean _isRedelivered; - private boolean _isDelivered; - private boolean _isDeleted; - private InternalMessage _message; - - ManagementResponse(final ManagementNodeConsumer consumer, final InternalMessage message) - { - _consumer = consumer; - _message = message; - } - - @Override - public int getDeliveryCount() - { - return 0; - } - - @Override - public void incrementDeliveryCount() - { - _deliveryCount++; - } - - @Override - public void decrementDeliveryCount() - { - _deliveryCount--; - } - - @Override - public void addStateChangeListener(final StateChangeListener<? super MessageInstance, State> listener) - { - - } - - @Override - public boolean removeStateChangeListener(final StateChangeListener<? super MessageInstance, State> listener) - { - return false; - } - - - @Override - public boolean acquiredByConsumer() - { - return !isDeleted(); - } - - @Override - public ConsumerImpl getAcquiringConsumer() - { - return _consumer; - } - - @Override - public MessageEnqueueRecord getEnqueueRecord() - { - return null; - } - - @Override - public boolean isAcquiredBy(final ConsumerImpl consumer) - { - return consumer == _consumer && !isDeleted(); - } - - @Override - public boolean removeAcquisitionFromConsumer(final ConsumerImpl consumer) - { - return consumer == _consumer; - } - - @Override - public void setRedelivered() - { - _isRedelivered = true; - } - - @Override - public boolean isRedelivered() - { - return _isRedelivered; - } - - @Override - public ManagementNodeConsumer getDeliveredConsumer() - { - return isDeleted() ? null : _consumer; - } - - @Override - public void reject() - { - delete(); - } - - @Override - public boolean isRejectedBy(final ConsumerImpl consumer) - { - return false; - } - - @Override - public boolean getDeliveredToConsumer() - { - return _isDelivered; - } - - @Override - public boolean expired() - { - return false; - } - - @Override - public boolean acquire(final ConsumerImpl sub) - { - return false; - } - - @Override - public boolean lockAcquisition() - { - return false; - } - - @Override - public boolean unlockAcquisition() - { - return false; - } - - @Override - public int getMaximumDeliveryCount() - { - return 0; - } - - @Override - public int routeToAlternate(final Action<? super MessageInstance> action, - final ServerTransaction txn) - { - return 0; - } - - - @Override - public Filterable asFilterable() - { - return null; - } - - @Override - public boolean isAvailable() - { - return false; - } - - @Override - public boolean acquire() - { - return false; - } - - @Override - public boolean isAcquired() - { - return !isDeleted(); - } - - @Override - public void release() - { - delete(); - } - - @Override - public boolean resend() - { - return false; - } - - @Override - public void delete() - { - _isDeleted = true; - } - - @Override - public boolean isDeleted() - { - return _isDeleted; - } - - @Override - public ServerMessage getMessage() - { - return _message; - } - - @Override - public InstanceProperties getInstanceProperties() - { - return InstanceProperties.EMPTY; - } - - @Override - public TransactionLogResource getOwningResource() - { - return _consumer.getManagementNode(); - } -} |
