Propchange: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodDispatcherImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodProcessor.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodProcessor.java?rev=1630749&view=auto
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodProcessor.java
 (added)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodProcessor.java
 Fri Oct 10 09:59:55 2014
@@ -0,0 +1,957 @@
+/*
+ *
+ * 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.protocol.v0_8;
+
+import java.security.PrivilegedAction;
+
+import javax.security.auth.Subject;
+import javax.security.sasl.SaslException;
+import javax.security.sasl.SaslServer;
+
+import org.apache.log4j.Logger;
+
+import org.apache.qpid.framing.*;
+import org.apache.qpid.protocol.AMQConstant;
+import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.security.SubjectCreator;
+import org.apache.qpid.server.security.auth.SubjectAuthenticationResult;
+
+public class ServerMethodProcessor implements MethodProcessor
+{
+    private static final Logger LOGGER = 
Logger.getLogger(ServerMethodProcessor.class);
+
+
+    private static interface ChannelAction
+    {
+        void onChannel(ChannelMethodProcessor channel);
+    }
+
+    private ProtocolVersion _protocolVersion;
+    private ServerMethodDispatcherImpl _dispatcher;
+    private AMQProtocolEngine _connection;
+
+    public ServerMethodProcessor(final ProtocolVersion protocolVersion)
+    {
+        _protocolVersion = protocolVersion;
+    }
+
+
+    private void processChannelMethod(int channelId, final ChannelAction 
action)
+    {
+        final AMQChannel channel = _connection.getChannel(channelId);
+        if (channel == null)
+        {
+            // TODO throw body.getChannelNotFoundException(channelId, 
_connection.getMethodRegistry());
+        }
+        else
+        {
+            Subject.doAs(channel.getSubject(), new PrivilegedAction<Void>()
+            {
+                @Override
+                public Void run()
+                {
+                    action.onChannel(channel.getMethodProcessor());
+                    return null;
+                }
+            });
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionStart(final short versionMajor,
+                                       final short versionMinor,
+                                       final FieldTable serverProperties,
+                                       final byte[] mechanisms,
+                                       final byte[] locales)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0,
+                                          new ConnectionStartBody(versionMajor,
+                                                                  versionMinor,
+                                                                  
serverProperties,
+                                                                  mechanisms,
+                                                                  locales));
+        }
+        _connection.closeConnection(AMQConstant.COMMAND_INVALID, "Unexpected 
method received:  ConnectionStart", 0,
+                                    ConnectionStartBody.CLASS_ID, 
ConnectionStartBody.METHOD_ID);
+
+    }
+
+    @Override
+    public void receiveConnectionStartOk(final FieldTable clientProperties,
+                                         final AMQShortString mechanism,
+                                         final byte[] response,
+                                         final AMQShortString locale)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionStartOkBody(clientProperties, mechanism, response, locale));
+        }
+
+        Broker<?> broker = _connection.getBroker();
+
+        SubjectCreator subjectCreator = _connection.getSubjectCreator();
+        SaslServer ss = null;
+        try
+        {
+            ss = subjectCreator.createSaslServer(String.valueOf(mechanism),
+                                                 _connection.getLocalFQDN(),
+                                                 
_connection.getPeerPrincipal());
+
+            if (ss == null)
+            {
+                _connection.closeConnection(AMQConstant.RESOURCE_ERROR,
+                                                  "Unable to create SASL 
Server:" + mechanism, 0,
+                                                  
ConnectionStartOkBody.CLASS_ID,
+                                                  
ConnectionStartOkBody.METHOD_ID);
+            }
+            else
+            {
+                _connection.setSaslServer(ss);
+
+                final SubjectAuthenticationResult authResult = 
subjectCreator.authenticate(ss, response);
+                //save clientProperties
+                _connection.setClientProperties(clientProperties);
+
+                MethodRegistry methodRegistry = 
_connection.getMethodRegistry();
+
+                switch (authResult.getStatus())
+                {
+                    case ERROR:
+                        Exception cause = authResult.getCause();
+
+                        LOGGER.info("Authentication failed:" + (cause == null 
? "" : cause.getMessage()));
+
+                        _connection.closeConnection(AMQConstant.NOT_ALLOWED,
+                                                    
AMQConstant.NOT_ALLOWED.getName().toString(), 0,
+                                                    
ConnectionStartOkBody.CLASS_ID,
+                                                    
ConnectionStartOkBody.METHOD_ID);
+
+                        disposeSaslServer();
+                        break;
+
+                    case SUCCESS:
+                        if (LOGGER.isInfoEnabled())
+                        {
+                            LOGGER.info("Connected as: " + 
authResult.getSubject());
+                        }
+                        
_connection.setAuthorizedSubject(authResult.getSubject());
+
+                        int frameMax = broker.getContextValue(Integer.class, 
Broker.BROKER_FRAME_SIZE);
+
+                        if (frameMax <= 0)
+                        {
+                            frameMax = Integer.MAX_VALUE;
+                        }
+
+                        ConnectionTuneBody
+                                tuneBody =
+                                
methodRegistry.createConnectionTuneBody(broker.getConnection_sessionCountLimit(),
+                                                                        
frameMax,
+                                                                        
broker.getConnection_heartBeatDelay());
+                        _connection.writeFrame(tuneBody.generateFrame(0));
+                        break;
+                    case CONTINUE:
+                        ConnectionSecureBody
+                                secureBody = 
methodRegistry.createConnectionSecureBody(authResult.getChallenge());
+                        _connection.writeFrame(secureBody.generateFrame(0));
+                }
+            }
+        }
+        catch (SaslException e)
+        {
+            disposeSaslServer();
+
+            _connection.closeConnection(AMQConstant.RESOURCE_ERROR, "SASL 
error:  " + e.getMessage(), 0,
+                                        ConnectionStartOkBody.CLASS_ID, 
ConnectionStartOkBody.METHOD_ID);
+        }
+
+    }
+
+    @Override
+    public void receiveTxSelect(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, TxSelectBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveTxSelectOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, TxSelectOkBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveTxCommit(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, TxCommitBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveTxCommitOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, TxCommitOkBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveTxRollback(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, TxRollbackBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveTxRollbackOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, 
TxRollbackOkBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionSecure(final byte[] challenge)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionSecureBody(challenge));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionSecureOk(final byte[] response)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionSecureOkBody(response));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionTune(final int channelMax, final long 
frameMax, final int heartbeat)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionTuneBody(channelMax, frameMax, heartbeat));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionTuneOk(final int channelMax, final long 
frameMax, final int heartbeat)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionTuneOkBody(channelMax, frameMax, heartbeat));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionOpen(final AMQShortString virtualHost,
+                                      final AMQShortString capabilities,
+                                      final boolean insist)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionOpenBody(virtualHost, capabilities, insist));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionOpenOk(final AMQShortString knownHosts)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionOpenOkBody(knownHosts));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionRedirect(final AMQShortString host, final 
AMQShortString knownHosts)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new 
ConnectionRedirectBody(getProtocolVersion(), host, knownHosts));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionClose(final int replyCode,
+                                       final AMQShortString replyText,
+                                       final int classId,
+                                       final int methodId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0,
+                                          new 
ConnectionCloseBody(getProtocolVersion(),
+                                                                  replyCode,
+                                                                  replyText,
+                                                                  classId,
+                                                                  methodId));
+        }
+
+    }
+
+    @Override
+    public void receiveConnectionCloseOk()
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, 
ProtocolVersion.v8_0.equals(getProtocolVersion())
+                    ? ConnectionCloseOkBody.CONNECTION_CLOSE_OK_0_8
+                    : ConnectionCloseOkBody.CONNECTION_CLOSE_OK_0_9);
+        }
+    }
+
+    @Override
+    public void receiveChannelOpen(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new ChannelOpenBody());
+        }
+
+    }
+
+    @Override
+    public void receiveChannelOpenOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, 
ProtocolVersion.v8_0.equals(getProtocolVersion())
+                    ? ChannelOpenOkBody.INSTANCE_0_8
+                    : ChannelOpenOkBody.INSTANCE_0_9);
+        }
+    }
+
+    @Override
+    public void receiveChannelFlow(final int channelId, final boolean active)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ChannelFlowBody(active));
+        }
+
+    }
+
+    @Override
+    public void receiveChannelFlowOk(final int channelId, final boolean active)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ChannelFlowOkBody(active));
+        }
+
+    }
+
+    @Override
+    public void receiveChannelAlert(final int channelId,
+                                    final int replyCode,
+                                    final AMQShortString replyText,
+                                    final FieldTable details)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ChannelAlertBody(replyCode, replyText, details));
+        }
+
+    }
+
+    @Override
+    public void receiveChannelClose(final int channelId,
+                                    final int replyCode,
+                                    final AMQShortString replyText,
+                                    final int classId,
+                                    final int methodId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ChannelCloseBody(replyCode, replyText, classId, methodId));
+        }
+
+    }
+
+    @Override
+    public void receiveChannelCloseOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, 
ChannelCloseOkBody.INSTANCE);
+        }
+
+    }
+
+    @Override
+    public void receiveAccessRequest(final int channelId,
+                                     final AMQShortString realm,
+                                     final boolean exclusive,
+                                     final boolean passive,
+                                     final boolean active,
+                                     final boolean write,
+                                     final boolean read)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame =
+                    new AMQFrame(channelId, new AccessRequestBody(realm, 
exclusive, passive, active, write, read));
+        }
+
+    }
+
+    @Override
+    public void receiveAccessRequestOk(final int channelId, final int ticket)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
AccessRequestOkBody(ticket));
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeDeclare(final int channelId,
+                                       final AMQShortString exchange,
+                                       final AMQShortString type,
+                                       final boolean passive,
+                                       final boolean durable,
+                                       final boolean autoDelete,
+                                       final boolean internal,
+                                       final boolean nowait, final FieldTable 
arguments)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId,
+                                          new ExchangeDeclareBody(0,
+                                                                  exchange,
+                                                                  type,
+                                                                  passive,
+                                                                  durable,
+                                                                  autoDelete,
+                                                                  internal,
+                                                                  nowait,
+                                                                  arguments));
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeDeclareOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ExchangeDeclareOkBody());
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeDelete(final int channelId,
+                                      final AMQShortString exchange,
+                                      final boolean ifUnused,
+                                      final boolean nowait)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new ExchangeDeleteBody(0, 
exchange, ifUnused, nowait));
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeDeleteOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ExchangeDeleteOkBody());
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeBound(final int channelId,
+                                     final AMQShortString exchange,
+                                     final AMQShortString routingKey,
+                                     final AMQShortString queue)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ExchangeBoundBody(exchange, routingKey, queue));
+        }
+
+    }
+
+    @Override
+    public void receiveExchangeBoundOk(final int channelId, final int 
replyCode, final AMQShortString replyText)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ExchangeBoundOkBody(replyCode, replyText));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueBindOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new QueueBindOkBody());
+        }
+
+    }
+
+    @Override
+    public void receiveQueueUnbindOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new QueueUnbindOkBody());
+        }
+
+    }
+
+    @Override
+    public void receiveQueueDeclare(final int channelId,
+                                    final AMQShortString queue,
+                                    final boolean passive,
+                                    final boolean durable,
+                                    final boolean exclusive,
+                                    final boolean autoDelete,
+                                    final boolean nowait,
+                                    final FieldTable arguments)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId,
+                                          new QueueDeclareBody(0,
+                                                               queue,
+                                                               passive,
+                                                               durable,
+                                                               exclusive,
+                                                               autoDelete,
+                                                               nowait,
+                                                               arguments));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueDeclareOk(final int channelId,
+                                      final AMQShortString queue,
+                                      final long messageCount,
+                                      final long consumerCount)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
QueueDeclareOkBody(queue, messageCount, consumerCount));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueBind(final int channelId,
+                                 final AMQShortString queue,
+                                 final AMQShortString exchange,
+                                 final AMQShortString bindingKey,
+                                 final boolean nowait,
+                                 final FieldTable arguments)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame =
+                    new AMQFrame(channelId, new QueueBindBody(0, queue, 
exchange, bindingKey, nowait, arguments));
+        }
+
+    }
+
+    @Override
+    public void receiveQueuePurge(final int channelId, final AMQShortString 
queue, final boolean nowait)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new QueuePurgeBody(0, 
queue, nowait));
+        }
+
+    }
+
+    @Override
+    public void receiveQueuePurgeOk(final int channelId, final long 
messageCount)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
QueuePurgeOkBody(messageCount));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueDelete(final int channelId,
+                                   final AMQShortString queue,
+                                   final boolean ifUnused,
+                                   final boolean ifEmpty,
+                                   final boolean nowait)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new QueueDeleteBody(0, 
queue, ifUnused, ifEmpty, nowait));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueDeleteOk(final int channelId, final long 
messageCount)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
QueueDeleteOkBody(messageCount));
+        }
+
+    }
+
+    @Override
+    public void receiveQueueUnbind(final int channelId,
+                                   final AMQShortString queue,
+                                   final AMQShortString exchange,
+                                   final AMQShortString bindingKey,
+                                   final FieldTable arguments)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new QueueUnbindBody(0, 
queue, exchange, bindingKey, arguments));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicRecoverSyncOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicRecoverSyncOkBody(getProtocolVersion()));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicRecover(final int channelId, final boolean 
requeue, final boolean sync)
+    {
+        if (ProtocolVersion.v8_0.equals(getProtocolVersion()) || !sync)
+        {
+            if (LOGGER.isDebugEnabled())
+            {
+                AMQFrame frame = new AMQFrame(channelId, new 
BasicRecoverBody(requeue));
+            }
+
+        }
+        else
+        {
+            if (LOGGER.isDebugEnabled())
+            {
+                AMQFrame frame = new AMQFrame(channelId, new 
BasicRecoverSyncBody(getProtocolVersion(), requeue));
+            }
+
+        }
+    }
+
+    @Override
+    public void receiveBasicQos(final int channelId,
+                                final long prefetchSize,
+                                final int prefetchCount,
+                                final boolean global)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicQosBody(prefetchSize, prefetchCount, global));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicQosOk(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new BasicQosOkBody());
+        }
+
+    }
+
+    @Override
+    public void receiveBasicConsume(final int channelId,
+                                    final AMQShortString queue,
+                                    final AMQShortString consumerTag,
+                                    final boolean noLocal,
+                                    final boolean noAck,
+                                    final boolean exclusive,
+                                    final boolean nowait,
+                                    final FieldTable arguments)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId,
+                                          new BasicConsumeBody(0,
+                                                               queue,
+                                                               consumerTag,
+                                                               noLocal,
+                                                               noAck,
+                                                               exclusive,
+                                                               nowait,
+                                                               arguments));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicConsumeOk(final int channelId, final 
AMQShortString consumerTag)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicConsumeOkBody(consumerTag));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicCancel(final int channelId, final AMQShortString 
consumerTag, final boolean noWait)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicCancelBody(consumerTag, noWait));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicCancelOk(final int channelId, final AMQShortString 
consumerTag)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicCancelOkBody(consumerTag));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicPublish(final int channelId,
+                                    final AMQShortString exchange,
+                                    final AMQShortString routingKey,
+                                    final boolean mandatory,
+                                    final boolean immediate)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame =
+                    new AMQFrame(channelId, new BasicPublishBody(0, exchange, 
routingKey, mandatory, immediate));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicReturn(final int channelId, final int replyCode,
+                                   final AMQShortString replyText,
+                                   final AMQShortString exchange,
+                                   final AMQShortString routingKey)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicReturnBody(replyCode, replyText, exchange, routingKey));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicDeliver(final int channelId,
+                                    final AMQShortString consumerTag,
+                                    final long deliveryTag,
+                                    final boolean redelivered,
+                                    final AMQShortString exchange,
+                                    final AMQShortString routingKey)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId,
+                                          new BasicDeliverBody(consumerTag,
+                                                               deliveryTag,
+                                                               redelivered,
+                                                               exchange,
+                                                               routingKey));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicGet(final int channelId, final AMQShortString 
queue, final boolean noAck)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new BasicGetBody(0, 
queue, noAck));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicGetOk(final int channelId,
+                                  final long deliveryTag,
+                                  final boolean redelivered,
+                                  final AMQShortString exchange,
+                                  final AMQShortString routingKey,
+                                  final long messageCount)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId,
+                                          new BasicGetOkBody(deliveryTag,
+                                                             redelivered,
+                                                             exchange,
+                                                             routingKey,
+                                                             messageCount));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicGetEmpty(final int channelId)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicGetEmptyBody((AMQShortString) null));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicAck(final int channelId, final long deliveryTag, 
final boolean multiple)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicAckBody(deliveryTag, multiple));
+        }
+
+    }
+
+    @Override
+    public void receiveBasicReject(final int channelId, final long 
deliveryTag, final boolean requeue)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
BasicRejectBody(deliveryTag, requeue));
+        }
+
+    }
+
+    @Override
+    public void receiveHeartbeat()
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(0, new HeartbeatBody());
+        }
+
+    }
+
+    @Override
+    public ProtocolVersion getProtocolVersion()
+    {
+        return _protocolVersion;
+    }
+
+    public void setProtocolVersion(final ProtocolVersion protocolVersion)
+    {
+        _protocolVersion = protocolVersion;
+    }
+
+    @Override
+    public void receiveMessageContent(final int channelId, final byte[] data)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new ContentBody(data));
+        }
+
+    }
+
+    @Override
+    public void receiveMessageHeader(final int channelId,
+                                     final BasicContentHeaderProperties 
properties,
+                                     final long bodySize)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQFrame frame = new AMQFrame(channelId, new 
ContentHeaderBody(properties, bodySize));
+        }
+
+    }
+
+    @Override
+    public void receiveProtocolHeader(final ProtocolInitiation 
protocolInitiation)
+    {
+        if (LOGGER.isDebugEnabled())
+        {
+            AMQDataBlock frame = protocolInitiation;
+        }
+
+    }
+
+    private void disposeSaslServer()
+    {
+        SaslServer ss = _connection.getSaslServer();
+        if (ss != null)
+        {
+            _connection.setSaslServer(null);
+            try
+            {
+                ss.dispose();
+            }
+            catch (SaslException e)
+            {
+                LOGGER.error("Error disposing of Sasl server: " + e);
+            }
+        }
+    }
+}

Propchange: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/ServerMethodProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbySystemConfigImpl.java
 Fri Oct 10 09:59:55 2014
@@ -26,6 +26,7 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.AbstractSystemConfig;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.BrokerShutdownProvider;
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.SystemConfigFactoryConstructor;
@@ -47,9 +48,10 @@ public class DerbySystemConfigImpl exten
     public DerbySystemConfigImpl(final TaskExecutor taskExecutor,
                                  final EventLogger eventLogger,
                                  final LogRecorder logRecorder,
-                                 final BrokerOptions brokerOptions)
+                                 final BrokerOptions brokerOptions,
+                                 final BrokerShutdownProvider 
brokerShutdownProvider)
     {
-        super(taskExecutor, eventLogger, logRecorder, brokerOptions);
+        super(taskExecutor, eventLogger, logRecorder, brokerOptions, 
brokerShutdownProvider);
     }
 
     @Override

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/JDBCSystemConfigImpl.java
 Fri Oct 10 09:59:55 2014
@@ -26,6 +26,7 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.AbstractSystemConfig;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.BrokerShutdownProvider;
 import org.apache.qpid.server.model.ManagedAttributeField;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.SystemConfigFactoryConstructor;
@@ -49,9 +50,10 @@ public class JDBCSystemConfigImpl extend
     public JDBCSystemConfigImpl(final TaskExecutor taskExecutor,
                                 final EventLogger eventLogger,
                                 final LogRecorder logRecorder,
-                                final BrokerOptions brokerOptions)
+                                final BrokerOptions brokerOptions,
+                                final BrokerShutdownProvider 
brokerShutdownProvider)
     {
-        super(taskExecutor, eventLogger, logRecorder, brokerOptions);
+        super(taskExecutor, eventLogger, logRecorder, brokerOptions, 
brokerShutdownProvider);
     }
 
     @Override

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
 Fri Oct 10 09:59:55 2014
@@ -122,7 +122,7 @@ public class HttpManagement extends Abst
         super(attributes, broker);
     }
 
-    @StateTransition(currentState = State.UNINITIALIZED, desiredState = 
State.ACTIVE)
+    @StateTransition(currentState = {State.UNINITIALIZED,State.ERRORED}, 
desiredState = State.ACTIVE)
     private void doStart()
     {
         
getBroker().getEventLogger().message(ManagementConsoleMessages.STARTUP(OPERATIONAL_LOGGING_NAME));

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/addQueue.html?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/addQueue.html
 Fri Oct 10 09:59:55 2014
@@ -39,19 +39,75 @@
             <div class="clear">
                 <div class="formLabel-labelCell">Queue Type:</div>
                 <div class="formLabel-controlCell">
-                    <input type="radio" id="formAddQueueTypeStandard" 
name="type" value="standard" checked="checked" 
dojoType="dijit.form.RadioButton" />
-                    <label for="formAddQueueTypeStandard">Standard</label>
-                    &nbsp;
-                    <input type="radio" id="formAddQueueTypePriority" 
name="type" value="priority" dojoType="dijit.form.RadioButton" />
-                    <label for="formAddQueueTypePriority">Priority</label>
-                    &nbsp;
-                    <input type="radio" id="formAddQueueTypeLVQ" name="type" 
value="lvq" dojoType="dijit.form.RadioButton" />
-                    <label for="formAddQueueTypeLVQ">LVQ</label>
-                    &nbsp;
-                    <input type="radio" id="formAddQueueTypeSorted" 
name="type" value="sorted" dojoType="dijit.form.RadioButton" />
-                    <label for="formAddQueueTypeSorted">Sorted</label>
+                    <select id="formAddQueue.type"
+                            dojoType="dijit.form.FilteringSelect"
+                            data-dojo-props="
+                              name: 'type',
+                              value: 'standard',
+                              searchAttr: 'name',
+                              required: true,
+                              promptMessage: 'Type of Queue',
+                              title: 'Enter the queue type'">
+                        <option value="standard">Standard</option>
+                        <option value="priority">Priority</option>
+                        <option value="lvq">LVQ</option>
+                        <option value="sorted">Sorted</option>
+                    </select>
+                </div>
+            </div>
+            <div class="clear"></div>
+
+            <div id="formAddQueueType:priority" class="hidden typeSpecificDiv">
+                <div class="clear">
+                    <div class="formLabel-labelCell">Priorities:</div>
+                    <div class="formLabel-controlCell">
+                        <input type="text" id="formAddQueue.priorities"
+                               data-dojo-type="dijit/form/ValidationTextBox"
+                               data-dojo-props="
+                                  name: 'priorities',
+                                  placeHolder: 'number of priorities',
+                                  promptMessage: 'Number of priorities 
supported by the queue',
+                                  title: 'Enter the number of priorities 
supported by the queue',
+                                  trim: true"/>
+                    </div>
+                </div>
+                <div class="clear"></div>
+            </div>
+
+            <div id="formAddQueueType:lvq" class="hidden typeSpecificDiv">
+                <div class="clear">
+                    <div class="formLabel-labelCell">LVQ Message 
Property:</div>
+                    <div class="formLabel-controlCell">
+                        <input type="text" id="formAddQueue.lvqKey"
+                               data-dojo-type="dijit/form/ValidationTextBox"
+                               data-dojo-props="
+                                  name: 'lvqKey',
+                                  placeHolder: 'lvq key',
+                                  promptMessage: 'Name of the message property 
used to perform the conflation',
+                                  title: 'Enter the name of the message 
property used to perform the conflation',
+                                  trim: true"/>
+                    </div>
+                </div>
+                <div class="clear"></div>
+            </div>
+
+            <div id="formAddQueueType:sorted" class="hidden typeSpecificDiv">
+                <div class="clear">
+                    <div class="formLabel-labelCell">Sort Message 
Property*:</div>
+                    <div class="formLabel-controlCell">
+                        <input type="text" id="formAddQueue.sortKey"
+                               data-dojo-type="dijit/form/ValidationTextBox"
+                               data-dojo-props="
+                                  name: 'sortKey',
+                                  placeHolder: 'sort key',
+                                  promptMessage: 'Name of the message property 
used for sorting the messages on the queue',
+                                  title: 'Enter the name of the message 
property used for sorting the messages on the queue',
+                                  trim: true"/>
+                    </div>
                 </div>
+                <div class="clear"></div>
             </div>
+
             <div class="clear">
                 <div class="formLabel-labelCell">Durable?</div>
                 <div class="formLabel-controlCell">
@@ -73,8 +129,8 @@
                               value: '',
                               searchAttr: 'name',
                               required: false,
-                              promptMessage: 'Message durability override. If 
not default, messages arriving will have durability setting overridden',
-                              title: 'Enter message durability override'">
+                              promptMessage: 'Message persistence override. If 
not default, messages arriving will have persistence setting overridden',
+                              title: 'Enter message persistence override'">
                         <option value="ALWAYS">Always</option>
                         <option value="DEFAULT">Default</option>
                         <option value="NEVER">Never</option>
@@ -108,66 +164,9 @@
                 </div>
             </div>
 
-            <br/>
-            <div class="clear"></div>
-
-
-            <div id="formAddQueueTypePriority:fields" class="hidden"
-                 data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Priority Queue Settings'">
-                <div class="clear">
-                    <div class="formLabel-labelCell">Priorities:</div>
-                    <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.priorities"
-                               data-dojo-type="dijit/form/ValidationTextBox"
-                               data-dojo-props="
-                                  name: 'priorities',
-                                  placeHolder: 'number of priorities',
-                                  promptMessage: 'Number of priorities 
supported by the queue',
-                                  title: 'Enter the number of priorities 
supported by the queue',
-                                  trim: true"/>
-                    </div>
-                </div>
-                <div class="clear"></div>
-            </div>
-
-            <div id="formAddQueueTypeLVQ:fields" class="hidden"
-                 data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Last Value Queue Settings'">
-                <div class="clear">
-                    <div class="formLabel-labelCell">LVQ Message 
Property:</div>
-                    <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.lvqkey"
-                               data-dojo-type="dijit/form/ValidationTextBox"
-                               data-dojo-props="
-                                  name: 'lvqKey',
-                                  placeHolder: 'lvq key',
-                                  promptMessage: 'Name of the message property 
used to perform the conflation',
-                                  title: 'Enter the name of the message 
property used to perform the conflation',
-                                  trim: true"/>
-                    </div>
-                </div>
-                <div class="clear"></div>
-            </div>
-
-            <div id="formAddQueueTypeSorted:fields" class="hidden"
-                 data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Sorted Queue Settings'">
-                <div class="clear">
-                    <div class="formLabel-labelCell">Sort Message 
Property*:</div>
-                    <div class="formLabel-controlCell">
-                        <input type="text" id="formAddQueue.sortkey"
-                               data-dojo-type="dijit/form/ValidationTextBox"
-                               data-dojo-props="
-                                  name: 'sortKey',
-                                  placeHolder: 'sort key',
-                                  promptMessage: 'Name of the message property 
used for sorting the messages on the queue',
-                                  title: 'Enter the name of the message 
property used for sorting the messages on the queue',
-                                  trim: true"/>
-                    </div>
-                </div>
-                <div class="clear"></div>
-            </div>
-
-            <br/>
-            <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Flow Control Settings', open: false">
+            <div class="clear formBox">
+                <fieldset>
+                <legend>Flow Control Settings</legend>
                 <div class="clear">
                     <div class="formLabel-labelCell">Capacity:</div>
                     <div class="formLabel-controlCell">
@@ -194,11 +193,13 @@
                                   trim: true"/>
                     </div>
                 </div>
+                </fieldset>
                 <div class="clear"></div>
             </div>
 
-            <br/>
-            <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Alerting Settings', open: false">
+            <div class="clear formBox">
+                <fieldset>
+                <legend>Alerting Settings</legend>
                 <div class="clear">
                     <div class="formLabel-labelCell">Queue Depth:</div>
                     <div class="formLabel-controlCell">
@@ -264,11 +265,13 @@
                                   trim: true"/>
                     </div>
                 </div>
+                </fieldset>
                 <div class="clear"></div>
             </div>
 
-            <br/>
-            <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 
'Other Settings', open: false">
+            <div class="clear formBox">
+                <fieldset>
+                <legend>Other Settings</legend>
                 <div class="clear">
                     <div class="formLabel-labelCell">Maximum Delivery 
Retries:</div>
                     <div class="formLabel-controlCell">
@@ -323,9 +326,14 @@
                               title: 'Controls where a shared groups feature 
is enabled'"/>
                     </div>
                 </div>
+                </fieldset>
                 <div class="clear"></div>
             </div>
 
+          <div class="clear" data-dojo-type="dijit/TitlePane" 
data-dojo-props="title: 'Context variables',  open: false">
+              <div id="formAddQueue.context" ></div>
+          </div>
+
           <div class="dijitDialogPaneActionBar">
             <!-- submit buttons -->
             <input type="submit" value="Create Queue" label="Create Queue" 
dojoType="dijit.form.Button" />

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/css/common.css
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/css/common.css?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/css/common.css
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/css/common.css
 Fri Oct 10 09:59:55 2014
@@ -262,7 +262,6 @@ div .messages {
 
 /* Required to keep queue type radio buttons on one line when dialog adds 
scrollbar */
 #addQueue {
-    max-height: 350px;
     overflow: auto;
     width: 630px;
 }
@@ -305,4 +304,4 @@ div .messages {
     width:100%;
     max-height: 140px;
     overflow: auto;
-}
\ No newline at end of file
+}

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/ContextVariablesEditor.js
 Fri Oct 10 09:59:55 2014
@@ -77,8 +77,8 @@ function (util, xhr, declare, array, con
         var addButton = registry.byNode(addButtonNode);
         var deleteButton = registry.byNode(deleteButtonNode);
         var layout = [[
-                      { name: "Name", field: "name", width: "40%", editable: 
true, selectOnClick: false, type: dojox.grid.cells._Widget, widgetClass: 
dijit.form.TextBox },
-                      { name: 'Actual Value', field: 'actualValue', width: 
'30%', editable: true, selectOnClick: false, type: dojox.grid.cells._Widget, 
widgetClass: dijit.form.TextBox},
+                      { name: "Name", field: "name", width: "40%", editable: 
true},
+                      { name: 'Actual Value', field: 'actualValue', width: 
'30%', editable: true},
                       { name: 'Effective Value', field: 'effectiveValue', 
width: '30%', editable: false}
                     ]];
         var data = [];
@@ -177,6 +177,38 @@ function (util, xhr, declare, array, con
         }
         this.setData(actualValues, allEffectiveValues, inheritedActualValues);
     },
+    loadInheritedData: function(restUrl)
+    {
+        var allEffectiveValues = null;
+        xhr.get(
+            {
+              url: restUrl,
+              sync: true,
+              content: { actuals: false },
+              handleAs: "json",
+              load: function(data)
+              {
+                allEffectiveValues = data[0].context;
+              }
+            }
+        );
+
+        var inheritedActualValues = null;
+        xhr.get(
+            {
+              url: restUrl,
+              sync: true,
+              content: { actuals: true, inheritedActuals: true},
+              handleAs: "json",
+              load: function(data)
+              {
+                inheritedActualValues = data[0].context;
+              }
+            }
+        );
+
+        this.setData({}, allEffectiveValues, inheritedActualValues);
+    },
     setData: function(actualValues, allEffectiveValues, inheritedActualValues)
     {
       this.value = actualValues;
@@ -523,4 +555,4 @@ function (util, xhr, declare, array, con
     }
 
   });
-});
\ No newline at end of file
+});

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
 Fri Oct 10 09:59:55 2014
@@ -34,6 +34,7 @@ define(["dojo/_base/xhr",
         "qpid/management/moveCopyMessages",
         "qpid/management/showMessage",
         "qpid/management/UserPreferences",
+        "qpid/management/editQueue",
         "dojo/store/JsonRest",
         "dojox/grid/EnhancedGrid",
         "dojo/data/ObjectStore",
@@ -42,7 +43,7 @@ define(["dojo/_base/xhr",
         "dojox/grid/enhanced/plugins/IndirectSelection",
         "dojo/domReady!"],
        function (xhr, parser, query, registry, connect, event, json, 
properties, updater, util, formatter,
-                 UpdatableStore, addBinding, moveMessages, showMessage, 
UserPreferences, JsonRest, EnhancedGrid, ObjectStore, entities) {
+                 UpdatableStore, addBinding, moveMessages, showMessage, 
UserPreferences, editQueue, JsonRest, EnhancedGrid, ObjectStore, entities) {
 
            function Queue(name, parent, controller) {
                this.name = name;
@@ -172,6 +173,12 @@ define(["dojo/_base/xhr",
                                         event.stop(evt);
                                         that.deleteQueue();
                                     });
+                            var editQueueButton = query(".editQueueButton", 
contentPane.containerNode)[0];
+                            connect.connect(registry.byNode(editQueueButton), 
"onClick",
+                                    function(evt){
+                                        event.stop(evt);
+                                        
editQueue.show({nodeName:that.modelObj.parent.parent.name, 
hostName:that.modelObj.parent.name,queueName:that.name});
+                                    });
                             UserPreferences.addListener(that);
                         }});
 

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
 Fri Oct 10 09:59:55 2014
@@ -27,7 +27,9 @@ define(["dojo/_base/xhr",
         "dojo/_base/array",
         "dojo/_base/event",
         'dojo/_base/json',
+        "dojo/query",
         'qpid/common/util',
+        "qpid/common/ContextVariablesEditor",
         "dijit/form/NumberSpinner", // required by the form
         /* dojox/ validate resources */
         "dojox/validate/us", "dojox/validate/web",
@@ -42,22 +44,14 @@ define(["dojo/_base/xhr",
         /* basic dojox classes */
         "dojox/form/BusyButton", "dojox/form/CheckedMultiSelect",
         "dojo/domReady!"],
-    function (xhr, dom, construct, win, registry, parser, array, event, json, 
util) {
+    function (xhr, dom, construct, win, registry, parser, array, event, json, 
query, util) {
 
         var addQueue = {};
 
         var node = construct.create("div", null, win.body(), "last");
 
-        var typeSpecificFields = {
-                        priorities: "priority",
-                        lvqKey: "lvq",
-                        sortKey: "sorted"
-                    };
-
-        var requiredFields = {
-                priority: "priorities",
-                sorted: "sortkey"
-            };
+        var typeSpecificFields = { priorities: "priority", lvqKey: "lvq", 
sortKey: "sorted" };
+        var requiredFields = { sorted: "sortKey"};
 
         var fieldConverters = {
                 queueFlowControlSizeBytes:        parseInt,
@@ -96,8 +90,8 @@ define(["dojo/_base/xhr",
                                 newQueue["messageGroupSharedGroups"] = true;
                             }
                         }
-                        else if (!typeSpecificFields.hasOwnProperty(propName) 
||
-                                        formValues[ "type" ] === 
typeSpecificFields[ propName ]) {
+                        else if (!typeSpecificFields.hasOwnProperty(propName) 
|| formValues[ "type" ] === typeSpecificFields[ propName ])
+                        {
                             if(formValues[ propName ] !== "") {
                                 if (fieldConverters.hasOwnProperty(propName))
                                 {
@@ -125,36 +119,29 @@ define(["dojo/_base/xhr",
                             addQueue.dialogNode = dom.byId("addQueue");
                             parser.instantiate([addQueue.dialogNode]);
 
-                            // for children which have name type, add a 
function to make all the associated rows
-                            // visible / invisible as the radio button is 
checked / unchecked
-
+                            // for children which have name type, add a 
function to make all the associated atrributes
+                            // visible / invisible as the select is changed
                             theForm = registry.byId("formAddQueue");
-                            array.forEach(theForm.getDescendants(), 
function(widget)
+                            var typeSelector = 
registry.byId("formAddQueue.type");
+                            typeSelector.on("change", function(value)
+                            {
+                                
query(".typeSpecificDiv").forEach(function(node, index, arr)
                                 {
-                                    if(widget.name === "type") {
-                                        widget.on("change", 
function(isChecked) {
-
-                                            var objId = widget.id + ":fields";
-                                            var obj = registry.byId(objId);
-                                            if(obj) {
-                                                if(isChecked) {
-                                                    obj.domNode.style.display 
= "block";
-                                                } else {
-                                                    obj.domNode.style.display 
= "none";
-                                                }
-                                                obj.resize();
-                                                var widgetValue = widget.value;
-                                                if 
(requiredFields.hasOwnProperty(widgetValue))
-                                                {
-                                                    dijit.byId('formAddQueue.' 
+ requiredFields[widgetValue]).required = isChecked;
-                                                }
-
-                                                
util.applyMetadataToWidgets(obj.domNode, "Queue", widgetValue);
-                                            }
-                                        })
+                                    if (node.id === "formAddQueueType:" + 
value)
+                                    {
+                                        node.style.display = "block";
+                                        util.applyMetadataToWidgets(node, 
"Queue", value);
+                                    }
+                                    else
+                                    {
+                                        node.style.display = "none";
                                     }
-
                                 });
+                                for(var requiredField in requiredFields)
+                                {
+                                    dijit.byId('formAddQueue.' + 
requiredFields[requiredField]).required = (requiredField == value);
+                                }
+                            });
 
                             theForm.on("submit", function(e) {
 
@@ -200,6 +187,14 @@ define(["dojo/_base/xhr",
                             registry.byId("addQueue").show();
                             util.applyMetadataToWidgets(form.domNode, "Queue", 
"standard");
 
+                            if (!this.context)
+                            {
+                             this.context = new 
qpid.common.ContextVariablesEditor({name: 'context', title: 'Context 
variables'});
+                             
this.context.placeAt(dom.byId("formAddQueue.context"));
+                            }
+
+                            var escapedUrl = "api/latest/virtualhost/" + 
encodeURIComponent(addQueue.vhostnode) + "/" + 
encodeURIComponent(addQueue.vhost);
+                            this.context.loadInheritedData(escapedUrl);
         };
 
         return addQueue;

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
 Fri Oct 10 09:59:55 2014
@@ -134,35 +134,10 @@ define(["dojo/_base/xhr",
                 
this.virtualHostContext.placeAt(dom.byId("addVirtualHost.context"));
 
         }
-        var inheritedActualValues = null;
-        xhr.get(
-            {
-              url: "api/latest/broker",
-              sync: true,
-              content: { actuals: true, inheritedActuals: true},
-              handleAs: "json",
-              load: function(data)
-              {
-                inheritedActualValues = data[0].context;
-              }
-            }
-        );
 
-        var effectiveValues = null;
-        xhr.get(
-            {
-              url: "api/latest/broker",
-              sync: true,
-              handleAs: "json",
-              load: function(data)
-              {
-                effectiveValues = data[0].context;
-              }
-            }
-        );
+        this.virtualHostNodeContext.loadInheritedData("api/latest/broker");
+        this.virtualHostContext.setData({}, 
this.virtualHostNodeContext.effectiveValues,this.virtualHostNodeContext.inheritedActualValues);
 
-        
this.virtualHostNodeContext.setData({},effectiveValues,inheritedActualValues);
-        
this.virtualHostContext.setData({},effectiveValues,inheritedActualValues);
         this.dialog.show();
         if (!this.resizeEventRegistered)
         {

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/showQueue.html?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-http/src/main/java/resources/showQueue.html
 Fri Oct 10 09:59:55 2014
@@ -198,7 +198,7 @@
             </div>
         </div>
         <div class="clear">
-            <div class="formLabel-labelCell">Alert frequency:</div>
+            <div class="formLabel-labelCell">Gap between alerts:</div>
             <div>
                 <span class="alertRepeatGap"></span>
                 <span class="alertRepeatGapUnits"></span>
@@ -208,6 +208,7 @@
     </div>
 
     <div class="dijitDialogPaneActionBar">
+        <button data-dojo-type="dijit.form.Button" class="editQueueButton" 
type="button">Edit Queue</button>
         <button data-dojo-type="dijit.form.Button" class="deleteQueueButton" 
type="button">Delete Queue</button>
     </div>
 </div>

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagementPluginImpl.java
 Fri Oct 10 09:59:55 2014
@@ -29,6 +29,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
+import javax.management.InstanceAlreadyExistsException;
 import javax.management.JMException;
 
 import org.apache.log4j.Logger;
@@ -103,7 +104,7 @@ public class JMXManagementPluginImpl
         return _usePlatformMBeanServer;
     }
 
-    @StateTransition(currentState = State.UNINITIALIZED, desiredState = 
State.ACTIVE)
+    @StateTransition(currentState = {State.UNINITIALIZED,State.ERRORED}, 
desiredState = State.ACTIVE)
     private void doStart() throws JMException, IOException
     {
         _allowPortActivation = true;
@@ -340,8 +341,8 @@ public class JMXManagementPluginImpl
                         mbean = new 
UserManagementMBean((PasswordCredentialManagingAuthenticationProvider<?>) 
object, _objectRegistry);
                         registerMBean(object, _pluginMBeanProvider, mbean);
                     }
-                    createAdditionalMBeansFromProvidersIfNecessary(object, 
_objectRegistry);
                 }
+                createAdditionalMBeansFromProvidersIfNecessary(object, 
_objectRegistry);
             }
         }
         return mbean;
@@ -351,10 +352,27 @@ public class JMXManagementPluginImpl
     {
         if (!providerMBeanExists(host, _pluginMBeanProvider))
         {
-            VirtualHostMBean mbean = new VirtualHostMBean(host, 
_objectRegistry);
-            registerMBean(host, _pluginMBeanProvider, mbean);
             host.addChangeListener(_changeListener);
-            return mbean;
+            try
+            {
+                VirtualHostMBean mbean = new VirtualHostMBean(host, 
_objectRegistry);
+                registerMBean(host, _pluginMBeanProvider, mbean);
+                return mbean;
+            }
+            catch (InstanceAlreadyExistsException e)
+            {
+                VirtualHostNode parent = host.getParent(VirtualHostNode.class);
+                Set<ConfiguredObject<?>> registered = _children.keySet();
+                for (ConfiguredObject<?> object: registered)
+                {
+                    if (object instanceof VirtualHost && 
object.getParent(VirtualHostNode.class) == parent)
+                    {
+                        LOGGER.warn("Unexpected MBean is found for VirtualHost 
" + object + " belonging to node " +  parent);
+                    }
+                }
+
+                throw e;
+            }
         }
         return null;
     }
@@ -392,24 +410,21 @@ public class JMXManagementPluginImpl
                 }
                 unregisterObjectMBeans(object);
                 _children.remove(object);
-                destroyChildrenMBeansIfVirtualHostNode(object);
+                destroyChildrenMBeans(object);
             }
         }
     }
 
-    private void destroyChildrenMBeansIfVirtualHostNode(ConfiguredObject<?> 
child)
+    private void destroyChildrenMBeans(ConfiguredObject<?> object)
     {
-        if (child instanceof VirtualHostNode)
+        for (Iterator<ConfiguredObject<?>> iterator = 
_children.keySet().iterator(); iterator.hasNext();)
         {
-            for (Iterator<ConfiguredObject<?>> iterator = 
_children.keySet().iterator(); iterator.hasNext();)
+            ConfiguredObject<?> registeredObject = iterator.next();
+            ConfiguredObject<?> parent = 
registeredObject.getParent(object.getCategoryClass());
+            if (parent == object)
             {
-                ConfiguredObject<?> registeredObject = iterator.next();
-                ConfiguredObject<?> parent = 
registeredObject.getParent(VirtualHostNode.class);
-                if (parent == child)
-                {
-                    registeredObject.removeChangeListener(_changeListener);
-                    unregisterObjectMBeans(registeredObject);
-                }
+                registeredObject.removeChangeListener(_changeListener);
+                unregisterObjectMBeans(registeredObject);
                 iterator.remove();
             }
         }

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemorySystemConfigImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemorySystemConfigImpl.java?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemorySystemConfigImpl.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/store/MemorySystemConfigImpl.java
 Fri Oct 10 09:59:55 2014
@@ -26,6 +26,7 @@ import org.apache.qpid.server.logging.Ev
 import org.apache.qpid.server.logging.LogRecorder;
 import org.apache.qpid.server.model.AbstractSystemConfig;
 import org.apache.qpid.server.model.Broker;
+import org.apache.qpid.server.model.BrokerShutdownProvider;
 import org.apache.qpid.server.model.ManagedObject;
 import org.apache.qpid.server.model.SystemConfigFactoryConstructor;
 
@@ -39,9 +40,10 @@ public class MemorySystemConfigImpl exte
     public MemorySystemConfigImpl(final TaskExecutor taskExecutor,
                                   final EventLogger eventLogger,
                                   final LogRecorder logRecorder,
-                                  final BrokerOptions brokerOptions)
+                                  final BrokerOptions brokerOptions,
+                                  final BrokerShutdownProvider 
brokerShutdownProvider)
     {
-        super(taskExecutor, eventLogger, logRecorder, brokerOptions);
+        super(taskExecutor, eventLogger, logRecorder, brokerOptions, 
brokerShutdownProvider);
     }
 
     @Override

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1001-MessageSize-Transient-ByteSec.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1001-MessageSize-Transient-ByteSec.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1001-MessageSize-Transient-ByteSec.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1001-MessageSize-Transient-ByteSec.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Impact of Message Size Bytes/S
 chartSubtitle=Transient messages
-chartDescription=1P 1C, transient, auto-ack, with message payload between 
256-262144 bytes ${baselineName}.
+chartDescription=1P 1C, transient, auto-ack, with message payload between 
256-262144 bytes ${baselineName}, single queue.
 
 xAxisTitle=Message Size (B)
 yAxisTitle=Throughput (KB/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1002-MessageSize-Persistent-ByteSec.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1002-MessageSize-Persistent-ByteSec.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1002-MessageSize-Persistent-ByteSec.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1002-MessageSize-Persistent-ByteSec.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Impact of Message Size Bytes/S
 chartSubtitle=Persistent messages
-chartDescription=1P 1C, persistent, auto-ack, with message payload between 
256-262144 bytes.
+chartDescription=1P 1C, persistent, auto-ack, with message payload between 
256-262144 bytes, single queue.
 
 xAxisTitle=Message Size (B)
 yAxisTitle=Throughput (KB/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1003-MessageSize-Transient-MsgSec.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1003-MessageSize-Transient-MsgSec.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1003-MessageSize-Transient-MsgSec.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1003-MessageSize-Transient-MsgSec.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Impact of Message Size
 chartSubtitle=Transient messages
-chartDescription=1P 1C, transient, auto-ack, with message payload between 
256-262144 bytes.
+chartDescription=1P 1C, transient, auto-ack, with message payload between 
256-262144 bytes, single queue.
 
 xAxisTitle=Message Size (B)
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1004-MessageSize-Persistent-MsgSec.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1004-MessageSize-Persistent-MsgSec.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1004-MessageSize-Persistent-MsgSec.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1004-MessageSize-Persistent-MsgSec.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Impact of Message Size
 chartSubtitle=Persistent messages
-chartDescription=1P 1C, persistent, auto-ack, with message payload between 
256-262144 bytes.
+chartDescription=1P 1C, persistent, auto-ack, with message payload between 
256-262144 bytes, single queue.
 
 xAxisTitle=Message Size (B)
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1011-VaryingNumberOfProducers-AutoAck.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1011-VaryingNumberOfProducers-AutoAck.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1011-VaryingNumberOfProducers-AutoAck.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1011-VaryingNumberOfProducers-AutoAck.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Varying number of producers - auto ack
 chartSubtitle=Persistent 1KB messages
-chartDescription=1,2,5,10 P/Cs, persistent, auto-ack, with message payload 1KB.
+chartDescription=1,2,5,10 P/Cs, persistent, auto-ack, with message payload 
1KB, single queue.
 
 xAxisTitle=Producers
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1012-VaryingNumberOfConsumers-AutoAck.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1012-VaryingNumberOfConsumers-AutoAck.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1012-VaryingNumberOfConsumers-AutoAck.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1012-VaryingNumberOfConsumers-AutoAck.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Varying number of consumers - auto ack
 chartSubtitle=Persistent 1KB messages
-chartDescription=1,2,5,10 P/Cs, persistent, auto-ack, with message payload 1KB.
+chartDescription=1,2,5,10 P/Cs, persistent, auto-ack, with message payload 
1KB, single queue.
 
 xAxisTitle=Consumers
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1015-VaryingNumberOfProducers-SessionTrans.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1015-VaryingNumberOfProducers-SessionTrans.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1015-VaryingNumberOfProducers-SessionTrans.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1015-VaryingNumberOfProducers-SessionTrans.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Varying number of producers - transacted
 chartSubtitle=Persistent 1KB messages
-chartDescription=1,2,5,10 P/Cs, persistent, transacted, with message payload 
1KB.
+chartDescription=1,2,5,10 P/Cs, persistent, transacted, with message payload 
1KB, single queue.
 
 xAxisTitle=Producers
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1016-VaryingNumberOfConsumers-SessionTrans.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1016-VaryingNumberOfConsumers-SessionTrans.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1016-VaryingNumberOfConsumers-SessionTrans.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1016-VaryingNumberOfConsumers-SessionTrans.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Varying number of consumers - transacted
 chartSubtitle=Persistent 1KB messages
-chartDescription=1,2,5,10 P/Cs, persistent, transacted, with message payload 
1KB.
+chartDescription=1,2,5,10 P/Cs, persistent, transacted, with message payload 
1KB, single queue.
 
 xAxisTitle=Consumers
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1021-AcknowledgementModes-Persistent.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1021-AcknowledgementModes-Persistent.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1021-AcknowledgementModes-Persistent.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1021-AcknowledgementModes-Persistent.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=BAR
 chartTitle=Performance of acknowledgement modes
 chartSubtitle=Persistent messages (1KB)
-chartDescription=1P 1C, persistent, with message payload 1KB.
+chartDescription=1P 1C, persistent, with message payload 1KB, single queue.
 
 xAxisTitle=Acknowledge mode (0=session transacted; 1=auto-acknowledge)
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1022-AcknowledgementModes-Transient.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1022-AcknowledgementModes-Transient.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1022-AcknowledgementModes-Transient.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1022-AcknowledgementModes-Transient.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=BAR
 chartTitle=Performance of acknowledgement modes
 chartSubtitle=Transient messages (1024b)
-chartDescription=1P 1C, transient, with message payload 1KB.
+chartDescription=1P 1C, transient, with message payload 1KB, single queue.
 
 xAxisTitle=Acknowledge mode (0=session transacted; 1=auto-acknowledge)
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1030-BatchSize-Equal.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1030-BatchSize-Equal.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1030-BatchSize-Equal.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1030-BatchSize-Equal.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Transaction Batch Sizes Equal
 chartSubtitle=Persistent 1KB messages
-chartDescription=1P 1C, persistent, transacted with message payload 1KB with 
producer/consumer batch size varying between 1-400 messages for both P and C
+chartDescription=1P 1C, persistent, transacted with message payload 1KB with 
producer/consumer batch size varying between 1-400 messages for both P and C, 
single queue.
 
 xAxisTitle=Batch Size
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1031-BatchSize-Unequal.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1031-BatchSize-Unequal.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1031-BatchSize-Unequal.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1031-BatchSize-Unequal.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=XYLINE
 chartTitle=Transaction Batch Size Unequal
 chartSubtitle=Persistent 1KB messages
-chartDescription=1P 1C, persistent, transacted with message payload 1KB with 
fixed batch size 1 for one party whilst other varies between 1-400 messages
+chartDescription=1P 1C, persistent, transacted with message payload 1KB with 
fixed batch size 1 for one party whilst other varies between 1-400 messages, 
single queue.
 
 xAxisTitle=Batch Size
 yAxisTitle=Throughput (messages/s)

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1040-QueueTypes.chartdef
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1040-QueueTypes.chartdef?rev=1630749&r1=1630748&r2=1630749&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1040-QueueTypes.chartdef
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/perftests/etc/chartdefs/1040-QueueTypes.chartdef
 Fri Oct 10 09:59:55 2014
@@ -20,7 +20,7 @@
 chartType=BAR
 chartTitle=Queue Types
 chartSubtitle=Persistent 1KB messages
-chartDescription=1P 1C, persistent, auto-ack with message payload 1KB. Sorted 
queue - 160,000 random keys, Priority - iteriates priority 0..9.
+chartDescription=1P 1C, persistent, auto-ack with message payload 1KB. Sorted 
queue - 160,000 random keys, Priority - iteriates priority 0..9, single queue.
 
 xAxisTitle=Queue Types
 yAxisTitle=Throughput (messages/s)



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to