You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2013/10/22 00:05:07 UTC

svn commit: r1534394 [18/22] - in /qpid/branches/linearstore/qpid: ./ cpp/ cpp/bindings/qmf2/examples/python/ cpp/bindings/qmf2/python/ cpp/bindings/qpid/dotnet/ cpp/etc/ cpp/examples/ cpp/examples/messaging/ cpp/examples/qmf-agent/ cpp/include/qpid/ c...

Modified: qpid/branches/linearstore/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java (original)
+++ qpid/branches/linearstore/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/type/transport/codec/ErrorConstructor.java Mon Oct 21 22:04:51 2013
@@ -86,6 +86,10 @@ public class ErrorConstructor extends De
                                     if(condition == null)
                                     {
                                         condition = TransactionErrors.valueOf(val);
+                                        if(condition == null)
+                                        {
+                                            condition = new UnknownErrorCondition((Symbol)val);
+                                        }
                                     }
                                 }
                             }
@@ -166,4 +170,52 @@ public class ErrorConstructor extends De
     }
 
 
+    private static final class UnknownErrorCondition implements ErrorCondition
+    {
+        private final Symbol _value;
+
+        public UnknownErrorCondition(final Symbol value)
+        {
+            _value = value;
+        }
+
+        public Symbol getValue()
+        {
+            return _value;
+        }
+
+        @Override
+        public boolean equals(final Object o)
+        {
+            if (this == o)
+            {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass())
+            {
+                return false;
+            }
+
+            final UnknownErrorCondition that = (UnknownErrorCondition) o;
+
+            if (!_value.equals(that._value))
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        @Override
+        public int hashCode()
+        {
+            return _value.hashCode();
+        }
+
+        @Override
+        public String toString()
+        {
+            return _value.toString();
+        }
+    }
 }

Propchange: qpid/branches/linearstore/qpid/java/bdbstore/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/bdbstore/bin/backup.sh
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/bdbstore/bin/backup.sh?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/bdbstore/bin/backup.sh (original)
+++ qpid/branches/linearstore/qpid/java/bdbstore/bin/backup.sh Mon Oct 21 22:04:51 2013
@@ -35,7 +35,7 @@ if [ -z "${QPID_HOME}" ]; then
 fi
 
 # BDB's je JAR expected to be found in lib/opt
-LIBS="${QPID_HOME}/lib/opt/*:${QPID_HOME}/lib/qpid-all.jar"
+LIBS="${QPID_HOME}/lib/*:${QPID_HOME}/lib/plugins/*:${QPID_HOME}/lib/opt/*"
 
 echo "Starting Hot Backup Script"
 java -Dlog4j.configuration=backup-log4j.xml ${JAVA_OPTS} -cp "${LIBS}" org.apache.qpid.server.store.berkeleydb.BDBBackup "${ARGS[@]}"

Modified: qpid/branches/linearstore/qpid/java/bdbstore/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/bdbstore/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/bdbstore/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/bdbstore/build.xml Mon Oct 21 22:04:51 2013
@@ -17,10 +17,10 @@
  - under the License.
  -->
 <project name="bdbstore" xmlns:ivy="antlib:org.apache.ivy.ant" default="build">
-    <property name="module.depends" value="common broker broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol" />
-    <property name="module.test.depends" value="client common/tests broker/tests management/common systests broker-plugins/management-jmx broker-plugins/memory-store broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol broker-plugins/amqp-msg-conv-0-8-to-0-10" />
+    <property name="module.depends" value="common broker-core broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol" />
+    <property name="module.test.depends" value="client qpid-test-utils broker-core/tests management/common systests broker-plugins/management-jmx broker-plugins/memory-store broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol broker-plugins/amqp-msg-conv-0-8-to-0-10" />
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided -Sje=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided -Sje=provided"/>
 
     <property name="broker.plugin" value="true"/>
 

Propchange: qpid/branches/linearstore/qpid/java/bdbstore/jmx/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/bdbstore/jmx/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/bdbstore/jmx/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/bdbstore/jmx/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/bdbstore/jmx/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="bdbstore-jmx" default="build">
-    <property name="module.depends" value="common broker broker-plugins/management-jmx management/common bdbstore" />
-    <property name="module.test.depends" value="broker/tests common/tests management/common client systests bdbstore/tests broker-plugins/memory-store" />
+    <property name="module.depends" value="common broker-core broker-plugins/management-jmx management/common bdbstore" />
+    <property name="module.test.depends" value="broker-core/tests qpid-test-utils management/common client systests bdbstore/tests broker-plugins/memory-store" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided -Sqpid-broker-plugins-management-jmx=provided -Sqpid-management-common=provided -Sqpid-bdbstore=provided -Sje=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided -Sqpid-broker-plugins-management-jmx=provided -Sqpid-management-common=provided -Sqpid-bdbstore=provided -Sje=provided"/>
 
     <property name="broker.plugin" value="true"/>
 

Modified: qpid/branches/linearstore/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java (original)
+++ qpid/branches/linearstore/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBStoreUpgradeTestPreparer.java Mon Oct 21 22:04:51 2013
@@ -293,7 +293,7 @@ public class BDBStoreUpgradeTestPreparer
         connection.close();
     }
 
-    public static void sendMessages(Session session, MessageProducer messageProducer,
+    private static void sendMessages(Session session, MessageProducer messageProducer,
             Destination dest, int deliveryMode, int length, int numMesages) throws JMSException
     {
         for (int i = 1; i <= numMesages; i++)
@@ -304,7 +304,7 @@ public class BDBStoreUpgradeTestPreparer
         }
     }
 
-    public static void publishMessages(Session session, TopicPublisher publisher,
+    private static void publishMessages(Session session, TopicPublisher publisher,
             Destination dest, int deliveryMode, int length, int numMesages, String selectorProperty) throws JMSException
     {
         for (int i = 1; i <= numMesages; i++)
@@ -322,7 +322,7 @@ public class BDBStoreUpgradeTestPreparer
      * @param length number of characters in the string
      * @return string sequence of the given length
      */
-    public static String generateString(int length)
+    private static String generateString(int length)
     {
         char[] base_chars = new char[]{'0','1','2','3','4','5','6','7','8','9'};
         char[] chars = new char[length];

Propchange: qpid/branches/linearstore/qpid/java/bdbstore/systests/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Propchange: qpid/branches/linearstore/qpid/java/broker/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Propchange: qpid/branches/linearstore/qpid/java/broker/
------------------------------------------------------------------------------
    svn:mergeinfo = /qpid/trunk/qpid/java/broker:1525736-1534385

Propchange: qpid/branches/linearstore/qpid/java/broker-core/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,9 @@
+*.iml
+intellijclasses
+log
+target
+release
+qpid-broker.ipr
+qpid-broker.iws
+.classpath
+.project

Propchange: qpid/branches/linearstore/qpid/java/broker-core/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Oct 21 22:04:51 2013
@@ -0,0 +1,15 @@
+/qpid/branches/0.5.x-dev/broker-core:886720-886722
+/qpid/branches/0.5.x-dev/qpid/java/broker:886720-886722,887145,892761,930288
+/qpid/branches/0.5.x-dev/qpid/java/broker-core:886720-886722,887145,892761,894875,916304,916325,930288,931179
+/qpid/branches/java-broker-0-10/qpid/java/broker:795950-829653
+/qpid/branches/java-broker-0-10/qpid/java/broker-core:795950-829653
+/qpid/branches/java-broker-vhost-refactor/java/broker:1493674-1494547
+/qpid/branches/java-broker-vhost-refactor/java/broker-core:1493674-1494547
+/qpid/branches/java-network-refactor/qpid/java/broker:805429-821809
+/qpid/branches/java-network-refactor/qpid/java/broker-core:805429-821809
+/qpid/branches/jmx_mc_gsoc09/qpid/java/broker:787599
+/qpid/branches/qpid-2935/qpid/java/broker:1061302-1072333
+/qpid/branches/qpid-2935/qpid/java/broker-core:1061302-1072333
+/qpid/trunk/qpid/broker-core:796646-796653
+/qpid/trunk/qpid/java/broker:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,753219-753220,753253,754934,754958,755256,757258,757270,758730,759097,760919,761721,762365,762992,763959,764026,764109,764140,764790
+/qpid/trunk/qpid/java/broker-core:1501885-1525056,1525731-1534385

Propchange: qpid/branches/linearstore/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue:r1501885-1525056,1525731-1534385
  Merged /qpid/branches/0.5.x-dev/broker-core/src/main/java/org/apache/qpid/server/queue:r886720-886722
  Merged /qpid/branches/java-broker-0-10/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue:r795950-829653
  Merged /qpid/branches/0.5.x-dev/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:r887145,892761,930288
  Merged /qpid/branches/java-broker-vhost-refactor/java/broker-core/src/main/java/org/apache/qpid/server/queue:r1493674-1494547
  Merged /qpid/branches/qpid-2935/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue:r1061302-1072333
  Merged /qpid/branches/0.5.x-dev/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue:r886720-886722,887145,892761,894875,916304,916325,930288,931179
  Merged /qpid/trunk/qpid/broker-core/src/main/java/org/apache/qpid/server/queue:r796646-796653
  Merged /qpid/branches/java-network-refactor/qpid/java/broker-core/src/main/java/org/apache/qpid/server/queue:r805429-821809
  Merged /qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:r742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,754934,754958,755256,757258

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/access-control/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/access-control/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/access-control/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/access-control/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/access-control/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins Access Control" default="build">
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="common/tests broker/tests management/common" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests management/common" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
 
     <property name="broker.plugin" value="true"/>
 
@@ -31,6 +31,4 @@
 
     <target name="bundle" depends="bundle-tasks"/>
 
-    <target name="precompile" depends="gen_logging"/>
-
 </project>

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/config/RuleSet.java Mon Oct 21 22:04:51 2013
@@ -39,12 +39,12 @@ import org.apache.commons.lang.BooleanUt
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.logging.actors.CurrentActor;
+import org.apache.qpid.server.logging.messages.AccessControlMessages;
 import org.apache.qpid.server.security.Result;
 import org.apache.qpid.server.security.access.ObjectProperties;
 import org.apache.qpid.server.security.access.ObjectType;
 import org.apache.qpid.server.security.access.Operation;
 import org.apache.qpid.server.security.access.Permission;
-import org.apache.qpid.server.security.access.logging.AccessControlMessages;
 
 /**
  * Models the rule configuration for the access control plugin.

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-10-protocol/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-10-protocol/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-10-protocol/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-10-protocol/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-10-protocol/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 0-10 Protocol" default="build">
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
     <property name="broker-plugins-amqp-0-10-protocol.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 0-8 Protocol" default="build">
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
     <property name="broker-plugins-amqp-0-8-protocol.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java Mon Oct 21 22:04:51 2013
@@ -20,38 +20,38 @@
  */
 package org.apache.qpid.server.protocol.v0_8;
 
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.nio.ByteBuffer;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.security.auth.Subject;
+
 import org.apache.qpid.AMQException;
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.framing.ContentHeaderBody;
 import org.apache.qpid.framing.abstraction.MessagePublishInfo;
 import org.apache.qpid.protocol.AMQConstant;
-import org.apache.qpid.server.protocol.AMQSessionModel;
-import org.apache.qpid.server.protocol.v0_8.AMQChannel;
-import org.apache.qpid.server.protocol.v0_8.AMQMessage;
 import org.apache.qpid.server.message.MessageContentSource;
 import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.protocol.v0_8.AMQProtocolEngine;
+import org.apache.qpid.server.protocol.AMQSessionModel;
 import org.apache.qpid.server.protocol.v0_8.output.ProtocolOutputConverter;
 import org.apache.qpid.server.queue.QueueEntry;
 import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
 import org.apache.qpid.server.security.auth.UsernamePrincipal;
 import org.apache.qpid.server.subscription.ClientDeliveryMethod;
 import org.apache.qpid.server.subscription.Subscription;
-import org.apache.qpid.server.protocol.v0_8.SubscriptionImpl;
 import org.apache.qpid.server.virtualhost.VirtualHost;
-import org.apache.qpid.transport.TestNetworkConnection;
-
-import javax.security.auth.Subject;
-
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
+import org.apache.qpid.transport.Sender;
+import org.apache.qpid.transport.network.NetworkConnection;
 
 public class InternalTestProtocolSession extends AMQProtocolEngine implements ProtocolOutputConverter
 {
@@ -266,4 +266,95 @@ public class InternalTestProtocolSession
             }
         }
     }
+
+    private static class TestNetworkConnection implements NetworkConnection
+    {
+        private String _remoteHost = "127.0.0.1";
+        private String _localHost = "127.0.0.1";
+        private int _port = 1;
+        private final Sender<ByteBuffer> _sender;
+
+        public TestNetworkConnection()
+        {
+            _sender = new Sender<ByteBuffer>()
+            {
+                public void setIdleTimeout(int i)
+                {
+                }
+
+                public void send(ByteBuffer msg)
+                {
+                }
+
+                public void flush()
+                {
+                }
+
+                public void close()
+                {
+                }
+            };
+        }
+
+        @Override
+        public SocketAddress getLocalAddress()
+        {
+            return new InetSocketAddress(_localHost, _port);
+        }
+
+        @Override
+        public SocketAddress getRemoteAddress()
+        {
+            return new InetSocketAddress(_remoteHost, _port);
+        }
+
+        @Override
+        public void setMaxReadIdle(int idleTime)
+        {
+        }
+
+        @Override
+        public void setPeerPrincipal(Principal principal)
+        {
+        }
+
+        @Override
+        public Principal getPeerPrincipal()
+        {
+            return null;
+        }
+
+        @Override
+        public int getMaxReadIdle()
+        {
+            return 0;
+        }
+
+        @Override
+        public int getMaxWriteIdle()
+        {
+            return 0;
+        }
+
+        @Override
+        public void setMaxWriteIdle(int idleTime)
+        {
+        }
+
+        @Override
+        public void close()
+        {
+        }
+
+        @Override
+        public Sender<ByteBuffer> getSender()
+        {
+            return _sender;
+        }
+
+        @Override
+        public void start()
+        {
+        }
+    }
 }

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 1.0 Protocol" default="build">
-    <property name="module.depends" value="common broker amqp-1-0-common" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core amqp-1-0-common" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
     <property name="broker-plugins-amqp-1-0-protocol.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/
------------------------------------------------------------------------------
  Merged /qpid/trunk/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0:r1525057-1534385

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java Mon Oct 21 22:04:51 2013
@@ -23,8 +23,12 @@ package org.apache.qpid.server.protocol.
 import java.io.EOFException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
 import org.apache.qpid.amqp_1_0.messaging.SectionEncoder;
 import org.apache.qpid.amqp_1_0.messaging.SectionEncoderImpl;
 import org.apache.qpid.amqp_1_0.type.Binary;
@@ -92,6 +96,7 @@ public abstract class MessageConverter_t
                 {
                     String propName = reader.readStringImpl();
                     Object value = reader.readObject();
+
                     map.put(propName, value);
                 }
                 catch (EOFException e)
@@ -105,21 +110,23 @@ public abstract class MessageConverter_t
 
             }
 
-            return new AmqpValue(map);
+            return new AmqpValue(fixMapValues(map));
 
         }
         else if("amqp/map".equals(mimeType))
         {
             BBDecoder decoder = new BBDecoder();
             decoder.init(ByteBuffer.wrap(data));
-            return new AmqpValue(decoder.readMap());
+            final Map<String,Object> map = decoder.readMap();
+
+            return new AmqpValue(fixMapValues(map));
 
         }
         else if("amqp/list".equals(mimeType))
         {
             BBDecoder decoder = new BBDecoder();
             decoder.init(ByteBuffer.wrap(data));
-            return new AmqpValue(decoder.readList());
+            return new AmqpValue(fixListValues(decoder.readList()));
         }
         else if("jms/stream-message".equals(mimeType))
         {
@@ -130,7 +137,7 @@ public abstract class MessageConverter_t
             {
                 try
                 {
-                    list.add(reader.readObject());
+                    list.add(fixValue(reader.readObject()));
                 }
                 catch (TypedBytesFormatException e)
                 {
@@ -150,6 +157,47 @@ public abstract class MessageConverter_t
         }
     }
 
+    private static Map fixMapValues(final Map<String, Object> map)
+    {
+        for(Map.Entry<String,Object> entry : map.entrySet())
+        {
+            entry.setValue(fixValue(entry.getValue()));
+        }
+        return map;
+    }
+
+    private static Object fixValue(final Object value)
+    {
+        if(value instanceof byte[])
+        {
+            return new Binary((byte[])value);
+        }
+        else if(value instanceof Map)
+        {
+            return fixMapValues((Map)value);
+        }
+        else if(value instanceof List)
+        {
+            return fixListValues((List)value);
+        }
+        else
+        {
+            return value;
+        }
+    }
+
+    private static List fixListValues(final List list)
+    {
+        ListIterator iterator = list.listIterator();
+        while(iterator.hasNext())
+        {
+            Object value = iterator.next();
+            iterator.set(fixValue(value));
+
+        }
+        return list;
+    }
+
     private StoredMessage<MessageMetaData_1_0> convertServerMessage(final MessageMetaData_1_0 metaData,
                                                                       final ServerMessage serverMessage,
                                                                       SectionEncoder sectionEncoder)

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java Mon Oct 21 22:04:51 2013
@@ -164,7 +164,7 @@ public class SendingLink_1_0 implements 
             }
             source.setFilter(actualFilters.isEmpty() ? null : actualFilters);
 
-            _subscription = new Subscription_1_0(this, qd);
+            _subscription = new Subscription_1_0(this, qd, source.getDistributionMode() != StdDistMode.COPY);
         }
         else if(destination instanceof ExchangeDestination)
         {

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-10-to-1-0/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 0.8 to 1.0 MessageConversion" default="build">
-    <property name="module.depends" value="common broker amqp-1-0-common broker-plugins/amqp-1-0-protocol broker-plugins/amqp-0-10-protocol" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core amqp-1-0-common broker-plugins/amqp-1-0-protocol broker-plugins/amqp-0-10-protocol" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided -Sqpid-amqp-1-0-common=provided -Sqpid-broker-plugins-amqp-0-10-protocol=provided -Sqpid-broker-plugins-amqp-1-0-protocol=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided -Sqpid-amqp-1-0-common=provided -Sqpid-broker-plugins-amqp-0-10-protocol=provided -Sqpid-broker-plugins-amqp-1-0-protocol=provided"/>
     <property name="broker-plugins-amqp-msg-conv-0-10-to-1-0.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-0-10/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 0.8 to 0.10 MessageConversion" default="build">
-    <property name="module.depends" value="common broker broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core broker-plugins/amqp-0-8-protocol broker-plugins/amqp-0-10-protocol" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided -Sqpid-broker-plugins-amqp-0-10-protocol=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided -Sqpid-broker-plugins-amqp-0-10-protocol=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided"/>
     <property name="broker-plugins-amqp-msg-conv-0-8-to-0-10.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/amqp-msg-conv-0-8-to-1-0/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins AMQP 0.8 to 1.0 MessageConversion" default="build">
-    <property name="module.depends" value="common broker amqp-1-0-common broker-plugins/amqp-0-8-protocol broker-plugins/amqp-1-0-protocol" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core amqp-1-0-common broker-plugins/amqp-0-8-protocol broker-plugins/amqp-1-0-protocol" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided -Sqpid-amqp-1-0-common=provided -Sqpid-broker-plugins-amqp-1-0-protocol=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided -Sqpid-amqp-1-0-common=provided -Sqpid-broker-plugins-amqp-1-0-protocol=provided -Sqpid-broker-plugins-amqp-0-8-protocol=provided"/>
     <property name="broker-plugins-amqp-msg-conv-0-8-to-1-0.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/derby-store/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/derby-store/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/derby-store/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/derby-store/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/derby-store/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins Derby Store" default="build">
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
     <property name="broker-plugins-derby-store.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-provider-bone/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-provider-bone/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-provider-bone/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-provider-bone/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-provider-bone/build.xml Mon Oct 21 22:04:51 2013
@@ -17,9 +17,9 @@
  - under the License.
  -->
 <project name="jdbc-provider-bone" xmlns:ivy="antlib:org.apache.ivy.ant" default="build">
-    <property name="module.depends" value="common broker" />
+    <property name="module.depends" value="common broker-core" />
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
 
     <property name="broker.plugin" value="true"/>
 

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-store/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-store/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-store/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-store/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/jdbc-store/build.xml Mon Oct 21 22:04:51 2013
@@ -17,11 +17,11 @@
  - under the License.
  -->
 <project name="Qpid Broker-Plugins JDBC Store" default="build">
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="common/tests broker/tests" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="qpid-test-utils broker-core/tests" />
 
     <property name="module.genpom" value="true"/>
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided"/>
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided"/>
     <property name="broker-plugins-jdbc-store.libs" value="" />
 
     <property name="broker.plugin" value="true"/>

Propchange: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 21 22:04:51 2013
@@ -0,0 +1,3 @@
+*.iml
+target
+release

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/build.xml?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/build.xml (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/build.xml Mon Oct 21 22:04:51 2013
@@ -18,36 +18,35 @@
  -->
 <project name="Qpid Broker-Plugins Management HTTP" default="build">
 
-    <property name="module.depends" value="common broker" />
-    <property name="module.test.depends" value="broker/tests common/tests management/common client" />
+    <property name="module.depends" value="common broker-core" />
+    <property name="module.test.depends" value="broker-core/tests qpid-test-utils management/common client" />
 
     <property name="module.genpom" value="true" />
-    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker=provided" />
+    <property name="module.genpom.args" value="-Sqpid-common=provided -Sqpid-broker-core=provided" />
 
     <property name="broker.plugin" value="true"/>
 
-    <property name="broker-plugins-management-http.libs" value="" />
-
     <import file="../../module.xml" />
 
-    <!-- Flagfile used to determine if uwar needs to be done.  ._ is part of Ant's defaultexcludes so wont appear bundles -->
-    <property name="dojo.uptodate.flagfile" value="${module.classes}/resources/dojo/._dojouptodate.timestamp" />
+    <property name="module.manifest" value="${module.build}/MANIFEST.MF" />
+    <property name="dojo.config.file" value="${module.classes}/dojoconfig.properties" />
 
-    <target name="precompile" depends="unwardojo" />
+    <target name="precompile" depends="generate-manifest, generate-dojo-config"/>
 
-    <target name="unwardojo" depends="check-unwardojo.done" unless="unwardojo.done">
-        <unwar src="${project.root}/${dojo}" dest="${module.classes}/resources/dojo">
-            <patternset>
-                <exclude name="META-INF/**" />
-                <exclude name="WEB-INF/**" />
-                <exclude name="**/*.uncompressed.js" />
-            </patternset>
-        </unwar>
-        <touch file="${dojo.uptodate.flagfile}" />
+    <target name="generate-manifest">
+        <!-- Echos exactly as shown, so leave no spaces before/after lines -->
+        <echo file="${module.manifest}" append="false">Manifest-Version: 1.0
+Class-Path: dojo-${dojo-version}.zip
+</echo>
     </target>
 
-    <target name="check-unwardojo.done">
-        <uptodate property="unwardojo.done" targetfile="${dojo.uptodate.flagfile}" srcfile="${project.root}/${dojo}" />
+    <target name="generate-dojo-config">
+        <!-- Echos exactly as shown, so leave no spaces before/after lines -->
+        <echo file="${dojo.config.file}" append="false">dojo-version=${dojo-version}
+dojo-path=/dojo-${dojo-version}/dojo
+dijit-path=/dojo-${dojo-version}/dijit
+dojox-path=/dojo-${dojo-version}/dojox
+</echo>
     </target>
 
     <target name="bundle" depends="bundle-tasks" />

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java Mon Oct 21 22:04:51 2013
@@ -47,7 +47,7 @@ import org.apache.qpid.server.management
 import org.apache.qpid.server.management.plugin.servlet.rest.LogoutServlet;
 import org.apache.qpid.server.management.plugin.servlet.rest.MessageContentServlet;
 import org.apache.qpid.server.management.plugin.servlet.rest.MessageServlet;
-import org.apache.qpid.server.management.plugin.servlet.rest.PreferencesServlet;
+import org.apache.qpid.server.management.plugin.servlet.rest.LoggedOnUserPreferencesServlet;
 import org.apache.qpid.server.management.plugin.servlet.rest.UserPreferencesServlet;
 import org.apache.qpid.server.management.plugin.servlet.rest.RestServlet;
 import org.apache.qpid.server.management.plugin.servlet.rest.SaslServlet;
@@ -300,7 +300,7 @@ public class HttpManagement extends Abst
         addRestServlet(root, "preferencesprovider", AuthenticationProvider.class, PreferencesProvider.class);
 
         root.addServlet(new ServletHolder(new UserPreferencesServlet()), "/rest/userpreferences/*");
-        root.addServlet(new ServletHolder(new PreferencesServlet()), "/rest/preferences");
+        root.addServlet(new ServletHolder(new LoggedOnUserPreferencesServlet()), "/rest/preferences");
         root.addServlet(new ServletHolder(new StructureServlet()), "/rest/structure");
         root.addServlet(new ServletHolder(new MessageServlet()), "/rest/message/*");
         root.addServlet(new ServletHolder(new MessageContentServlet()), "/rest/message-content/*");
@@ -313,6 +313,10 @@ public class HttpManagement extends Abst
         root.addServlet(new ServletHolder(new DefinedFileServlet("index.html")), "/");
         root.addServlet(new ServletHolder(new LogoutServlet()), "/logout");
 
+        root.addServlet(new ServletHolder(new FileServlet(DojoHelper.getDojoPath(), true)), "/dojo/dojo/*");
+        root.addServlet(new ServletHolder(new FileServlet(DojoHelper.getDijitPath(), true)), "/dojo/dijit/*");
+        root.addServlet(new ServletHolder(new FileServlet(DojoHelper.getDojoxPath(), true)), "/dojo/dojox/*");
+
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.js");
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.css");
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.html");
@@ -324,16 +328,9 @@ public class HttpManagement extends Abst
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.txt");
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.xsl");
         root.addServlet(new ServletHolder(new HelperServlet()), "/rest/helper");
-        root.addServlet(new ServletHolder(new LogFileListingServlet()), "/rest/logfiles");
+        root.addServlet(new ServletHolder(new LogFileListingServlet()), "/rest/logfilenames");
         root.addServlet(new ServletHolder(new LogFileServlet()), "/rest/logfile");
 
-        String[] timeZoneFiles = {"africa", "antarctica", "asia", "australasia", "backward",
-                "etcetera", "europe", "northamerica", "pacificnew",  "southamerica"};
-        for (String timeZoneFile : timeZoneFiles)
-        {
-            root.addServlet(new ServletHolder(FileServlet.INSTANCE), "/dojo/dojox/date/zoneinfo/" + timeZoneFile);
-        }
-
         final SessionManager sessionManager = root.getSessionHandler().getSessionManager();
         sessionManager.setSessionCookie(JSESSIONID_COOKIE_PREFIX + lastPort);
         sessionManager.setMaxInactiveInterval((Integer)getAttribute(TIME_OUT));

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/log/LogFileHelper.java Mon Oct 21 22:04:51 2013
@@ -55,14 +55,23 @@ public class LogFileHelper
         Map<String, List<LogFileDetails>> cache = new HashMap<String, List<LogFileDetails>>();
         for (int i = 0; i < requestedFiles.length; i++)
         {
-            String[] paths = requestedFiles[i].split("/");
-            if (paths.length != 2)
+            String logFile = requestedFiles[i];
+            if ("".equals(logFile))
             {
-                throw new IllegalArgumentException("Log file name '" + requestedFiles[i] + "' does not include an appender name");
+                throw new IllegalArgumentException("Log file parameter is empty");
+            }
+            int pos = logFile.indexOf("/");
+            if (pos == -1)
+            {
+                throw new IllegalArgumentException("Log file parameter '" + logFile + "' does not include an appender name");
+            }
+            if (pos == logFile.length())
+            {
+                throw new IllegalArgumentException("Log file parameter '" + logFile + "' does not include an file name");
             }
 
-            String appenderName = paths[0];
-            String fileName = paths[1];
+            String appenderName = logFile.substring(0, pos);
+            String fileName = logFile.substring(pos + 1);
 
             List<LogFileDetails> appenderFiles = cache.get(appenderName);
             if (appenderFiles == null)
@@ -92,6 +101,7 @@ public class LogFileHelper
                 if (logFileDetails.getName().equals(fileName))
                 {
                     logFiles.add(logFileDetails);
+                    break;
                 }
             }
         }
@@ -147,16 +157,16 @@ public class LogFileHelper
     {
         if (appender instanceof QpidCompositeRollingAppender)
         {
-            return listAppenderFiles((QpidCompositeRollingAppender) appender, includeLogFileLocation);
+            return listQpidCompositeRollingAppenderFiles((QpidCompositeRollingAppender) appender, includeLogFileLocation);
         }
         else if (appender instanceof FileAppender)
         {
-            return listAppenderFiles((FileAppender) appender, includeLogFileLocation);
+            return listFileAppenderFiles((FileAppender) appender, includeLogFileLocation);
         }
         return null;
     }
 
-    private List<LogFileDetails> listAppenderFiles(FileAppender appender, boolean includeLogFileLocation)
+    private List<LogFileDetails> listFileAppenderFiles(FileAppender appender, boolean includeLogFileLocation)
     {
         String appenderFilePath = appender.getFile();
         File appenderFile = new File(appenderFilePath);
@@ -167,17 +177,17 @@ public class LogFileHelper
         return Collections.emptyList();
     }
 
-    private List<LogFileDetails> listAppenderFiles(QpidCompositeRollingAppender appender, boolean includeLogFileLocation)
+    private List<LogFileDetails> listQpidCompositeRollingAppenderFiles(QpidCompositeRollingAppender appender, boolean includeLogFileLocation)
     {
-        List<LogFileDetails> files = listAppenderFiles((FileAppender) appender, includeLogFileLocation);
+        List<LogFileDetails> files = listFileAppenderFiles((FileAppender) appender, includeLogFileLocation);
         String appenderFilePath = appender.getFile();
         File appenderFile = new File(appenderFilePath);
         File backupFolder = new File(appender.getBackupFilesToPath());
         if (backupFolder.exists())
         {
-            String backFolderName = backupFolder.getName() + "/";
+            String backupFolderName = backupFolder.getName() + "/";
             List<LogFileDetails> backedUpFiles = listLogFiles(backupFolder, appenderFile.getName(), appender.getName(),
-                    backFolderName, includeLogFileLocation);
+                    backupFolderName, includeLogFileLocation);
             files.addAll(backedUpFiles);
         }
         return files;
@@ -192,7 +202,12 @@ public class LogFileHelper
             String name = file.getName();
             if (name.startsWith(baseFileName))
             {
-                files.add(new LogFileDetails(name, appenderName, includeLogFileLocation ? file : null, getMimeType(name), file.length(),
+                String diplayPath = name;
+                if (!relativePath.equals(""))
+                {
+                    diplayPath = relativePath + name;
+                }
+                files.add(new LogFileDetails(diplayPath, appenderName, includeLogFileLocation ? file : null, getMimeType(name), file.length(),
                         file.lastModified()));
             }
         }

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java Mon Oct 21 22:04:51 2013
@@ -26,6 +26,7 @@ import java.net.URL;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServlet;
@@ -34,6 +35,8 @@ import javax.servlet.http.HttpServletRes
 
 public class FileServlet extends HttpServlet
 {
+    private static final String RESOURCES_PREFIX = "/resources";
+
     public static final FileServlet INSTANCE = new FileServlet();
     
     private static final Map<String, String> CONTENT_TYPES;
@@ -52,14 +55,33 @@ public class FileServlet extends HttpSer
         CONTENT_TYPES = Collections.unmodifiableMap(contentTypes);
     }
 
+    private final String _resourcePathPrefix;
+    private boolean _usePathInfo;
 
     public FileServlet()
     {
+        _resourcePathPrefix = RESOURCES_PREFIX;
+        _usePathInfo = false;
+    }
+
+    public FileServlet(String resourcePathPrefix, boolean usePathInfo)
+    {
+        _resourcePathPrefix = resourcePathPrefix;
+        _usePathInfo = usePathInfo;
     }
 
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
     {
-        String filename = request.getServletPath();
+        String filename = null;
+        if(_usePathInfo)
+        {
+            filename = request.getPathInfo();
+        }
+        else
+        {
+            filename = request.getServletPath();
+        }
+
         if(filename.contains("."))
         {
             String suffix = filename.substring(filename.lastIndexOf('.')+1);
@@ -69,7 +91,8 @@ public class FileServlet extends HttpSer
                 response.setContentType(contentType);
             }
         }
-        URL resourceURL = getClass().getResource("/resources" + filename);
+
+        URL resourceURL = getClass().getResource(_resourcePathPrefix + filename);
         if(resourceURL != null)
         {
             response.setStatus(HttpServletResponse.SC_OK);

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/LogFileServlet.java Mon Oct 21 22:04:51 2013
@@ -35,14 +35,13 @@ import org.apache.qpid.server.management
 
 public class LogFileServlet extends AbstractServlet
 {
+    private static final String PARAMETER_LOG_FILE = "l";
+
     private static final long serialVersionUID = 1L;
 
     public static final String LOGS_FILE_NAME = "qpid-logs-%s.zip";
     public static final String DATE_FORMAT = "yyyy-MM-dd-mmHHss";
 
-    @SuppressWarnings("unchecked")
-    private LogFileHelper _helper = new LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
-
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException,
             ServletException
@@ -57,7 +56,7 @@ public class LogFileServlet extends Abst
             return;
         }
 
-        String[] requestedFiles = request.getParameterValues("l");
+        String[] requestedFiles = request.getParameterValues(PARAMETER_LOG_FILE);
 
         if (requestedFiles == null || requestedFiles.length == 0)
         {
@@ -65,11 +64,14 @@ public class LogFileServlet extends Abst
             return;
         }
 
+        @SuppressWarnings("unchecked")
+        LogFileHelper helper = new LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+
         List<LogFileDetails> logFiles = null;
 
         try
         {
-            logFiles = _helper.findLogFileDetails(requestedFiles);
+            logFiles = helper.findLogFileDetails(requestedFiles);
         }
         catch(IllegalArgumentException e)
         {
@@ -91,7 +93,7 @@ public class LogFileServlet extends Abst
         OutputStream os = response.getOutputStream();
         try
         {
-            _helper.writeLogFiles(logFiles, os);
+            helper.writeLogFiles(logFiles, os);
         }
         finally
         {

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java Mon Oct 21 22:04:51 2013
@@ -275,4 +275,14 @@ public abstract class AbstractServlet ex
         mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
         mapper.writeValue(writer, object);
     }
+
+    protected String[] getPathInfoElements(HttpServletRequest request)
+    {
+        String pathInfo = request.getPathInfo();
+        if (pathInfo != null && pathInfo.length() > 0)
+        {
+            return pathInfo.substring(1).split("/");
+        }
+        return null;
+    }
 }

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/HelperServlet.java Mon Oct 21 22:04:51 2013
@@ -35,6 +35,7 @@ import org.apache.qpid.server.management
 import org.apache.qpid.server.management.plugin.servlet.rest.action.ListAuthenticationProviderAttributes;
 import org.apache.qpid.server.management.plugin.servlet.rest.action.ListBrokerAttribute;
 import org.apache.qpid.server.management.plugin.servlet.rest.action.ListGroupProviderAttributes;
+import org.apache.qpid.server.management.plugin.servlet.rest.action.ListTimeZones;
 import org.apache.qpid.server.model.Broker;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.map.SerializationConfig;
@@ -61,7 +62,8 @@ public class HelperServlet extends Abstr
                 new ListBrokerAttribute(Broker.PRODUCT_VERSION, "version"),
                 new ListGroupProviderAttributes(),
                 new ListAccessControlProviderAttributes(),
-                new PluginClassProviderAction()
+                new PluginClassProviderAction(),
+                new ListTimeZones()
         };
 
         _actions = new HashMap<String, Action>();

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogFileListingServlet.java Mon Oct 21 22:04:51 2013
@@ -36,9 +36,6 @@ public class LogFileListingServlet exten
 {
     private static final long serialVersionUID = 1L;
 
-    @SuppressWarnings("unchecked")
-    private LogFileHelper _helper = new LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
-
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException,
             ServletException
@@ -49,11 +46,13 @@ public class LogFileListingServlet exten
 
         if (!getBroker().getSecurityManager().authoriseLogsAccess())
         {
-            response.sendError(HttpServletResponse.SC_FORBIDDEN, "Log files download is denied");
+            response.sendError(HttpServletResponse.SC_FORBIDDEN, "Log files access is denied");
             return;
         }
 
-        List<LogFileDetails> logFiles = _helper.getLogFileDetails(false);
+        @SuppressWarnings("unchecked")
+        LogFileHelper helper = new LogFileHelper(Collections.list(LogManager.getRootLogger().getAllAppenders()));
+        List<LogFileDetails> logFiles = helper.getLogFileDetails(false);
         response.setContentType("application/json");
         response.setStatus(HttpServletResponse.SC_OK);
 

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java Mon Oct 21 22:04:51 2013
@@ -44,8 +44,8 @@ public class MessageContentServlet exten
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
     {
-
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0 && request.getPathInfo().substring(1).split("/").length > 2)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null && pathInfoElements.length > 2)
         {
             getMessageContent(request, response);
         }
@@ -55,7 +55,7 @@ public class MessageContentServlet exten
     private void getMessageContent(HttpServletRequest request, HttpServletResponse response) throws IOException
     {
         Queue queue = getQueueFromRequest(request);
-        String path[] = request.getPathInfo().substring(1).split("/");
+        String path[] = getPathInfoElements(request);
         MessageFinder finder = new MessageFinder(Long.parseLong(path[2]));
         queue.visit(finder);
         if(finder.isFound())
@@ -70,15 +70,15 @@ public class MessageContentServlet exten
 
     private Queue getQueueFromRequest(HttpServletRequest request)
     {
-        List<String> names = new ArrayList<String>();
         // TODO - validation that there is a vhost and queue and only those in the path
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements == null || pathInfoElements.length < 2)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
+            throw new IllegalArgumentException("Invalid path is specified");
         }
-        String vhostName = names.get(0);
-        String queueName = names.get(1);
+        String vhostName = pathInfoElements[0];
+        String queueName = pathInfoElements[1];
 
         VirtualHost vhost = null;
 

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java Mon Oct 21 22:04:51 2013
@@ -56,8 +56,8 @@ public class MessageServlet extends Abst
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
     {
-
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0 && request.getPathInfo().substring(1).split("/").length > 2)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null && pathInfoElements.length > 2)
         {
             getMessageContent(request, response);
         }
@@ -71,7 +71,7 @@ public class MessageServlet extends Abst
     private void getMessageContent(HttpServletRequest request, HttpServletResponse response) throws IOException
     {
         Queue queue = getQueueFromRequest(request);
-        String path[] = request.getPathInfo().substring(1).split("/");
+        String path[] = getPathInfoElements(request);
         MessageFinder messageFinder = new MessageFinder(Long.parseLong(path[2]));
         queue.visit(messageFinder);
 
@@ -124,15 +124,15 @@ public class MessageServlet extends Abst
 
     private Queue getQueueFromRequest(HttpServletRequest request)
     {
-        List<String> names = new ArrayList<String>();
         // TODO - validation that there is a vhost and queue and only those in the path
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements == null || pathInfoElements.length < 2)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
+            throw new IllegalArgumentException("Invalid path is specified");
         }
-        String vhostName = names.get(0);
-        String queueName = names.get(1);
+        String vhostName = pathInfoElements[0];
+        String queueName = pathInfoElements[1];
 
         VirtualHost vhost = null;
 

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Mon Oct 21 22:04:51 2013
@@ -115,16 +115,15 @@ public class RestServlet extends Abstrac
 
     protected Collection<ConfiguredObject> getObjects(HttpServletRequest request)
     {
+        String[] pathInfoElements = getPathInfoElements(request);
         List<String> names = new ArrayList<String>();
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+        if(pathInfoElements != null)
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
-
-            if(names.size() > _hierarchy.length)
+            if(pathInfoElements.length > _hierarchy.length)
             {
                 throw new IllegalArgumentException("Too many entries in path. Expected " + _hierarchy.length + "; path: " + names);
             }
+            names.addAll(Arrays.asList(pathInfoElements));
         }
 
         Collection<ConfiguredObject> parents = Collections.singleton((ConfiguredObject) getBroker());
@@ -329,16 +328,15 @@ public class RestServlet extends Abstrac
 
 
         List<String> names = new ArrayList<String>();
-        if(request.getPathInfo() != null && request.getPathInfo().length()>0)
+        String[] pathInfoElements = getPathInfoElements(request);
+        if(pathInfoElements != null )
         {
-            String path = request.getPathInfo().substring(1);
-            names.addAll(Arrays.asList(path.split("/")));
-
-            if(names.size() != _hierarchy.length)
+            if(pathInfoElements.length != _hierarchy.length)
             {
                 throw new IllegalArgumentException("Path to object to create must be fully specified. "
                        + "Found " + names + " of size " + names.size() + " expecting " + _hierarchy.length);
             }
+            names.addAll(Arrays.asList(pathInfoElements));
         }
 
         if (names.isEmpty())

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java Mon Oct 21 22:04:51 2013
@@ -25,7 +25,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -50,11 +50,7 @@ public class UserPreferencesServlet exte
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException,
             ServletException
     {
-        String[] pathElements = null;
-        if (request.getPathInfo() != null && request.getPathInfo().length() > 0)
-        {
-            pathElements = request.getPathInfo().substring(1).split("/");
-        }
+        String[] pathElements = getPathInfoElements(request);
         if (pathElements != null && pathElements.length > 1)
         {
             getUserPreferences(pathElements[0], pathElements[1], response);
@@ -70,7 +66,7 @@ public class UserPreferencesServlet exte
     {
         if (!userPreferencesOperationAuthorized(userId))
         {
-            response.sendError(HttpServletResponse.SC_FORBIDDEN, "Vieweing of preferences is not allowed");
+            response.sendError(HttpServletResponse.SC_FORBIDDEN, "Viewing of preferences is not allowed");
             return;
         }
         Map<String, Object> preferences = null;
@@ -161,53 +157,75 @@ public class UserPreferencesServlet exte
     @Override
     protected void doDeleteWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws IOException
     {
-        final List<String[]> userData = new ArrayList<String[]>();
-        for (String name : request.getParameterValues("user"))
+        Broker broker = getBroker();
+        Collection<AuthenticationProvider> authenticationProviders = broker.getAuthenticationProviders();
+        Map<String, Set<String>> providerUsers = new HashMap<String, Set<String>>();
+        Map<String, AuthenticationProvider> requestProviders = new HashMap<String, AuthenticationProvider>();
+        for (String path : request.getParameterValues("user"))
         {
-            String[] elements = name.split("/");
+            String[] elements = path.split("/");
             if (elements.length != 2)
             {
-                throw new IllegalArgumentException("Illegal parameter");
+                throw new IllegalArgumentException("Illegal user parameter " + path);
             }
-            userData.add(elements);
+
+            String userId = elements[1];
+
+            if (!userPreferencesOperationAuthorized(userId))
+            {
+                response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed");
+                return;
+            }
+            String providerName =  elements[0];
+            Set<String> users = providerUsers.get(providerName);
+
+            if (users == null)
+            {
+                AuthenticationProvider provider = findAuthenticationProviderByName(providerName, authenticationProviders);
+                if (provider == null)
+                {
+                    throw new IllegalArgumentException("Cannot find provider with name '" + providerName + "'");
+                }
+                users = new HashSet<String>();
+                providerUsers.put(providerName, users);
+                requestProviders.put(providerName, provider);
+            }
+            users.add(userId);
         }
 
-        if (!userData.isEmpty())
+        if (!providerUsers.isEmpty())
         {
-            Broker broker = getBroker();
-            Collection<AuthenticationProvider> authenticationProviders = broker.getAuthenticationProviders();
-            for (Iterator<String[]> it = userData.iterator(); it.hasNext();)
+            for (Map.Entry<String, Set<String>> entry : providerUsers.entrySet())
             {
-                String[] data = (String[]) it.next();
-                String authenticationProviderName = data[0];
-                String userId = data[1];
+                String providerName = entry.getKey();
+                AuthenticationProvider provider = requestProviders.get(providerName);
+                Set<String> usersToDelete = entry.getValue();
+                PreferencesProvider preferencesProvider = provider.getPreferencesProvider();
 
-                for (AuthenticationProvider authenticationProvider : authenticationProviders)
+                if (preferencesProvider != null && !usersToDelete.isEmpty())
                 {
-                    if (authenticationProviderName.equals(authenticationProvider.getName()))
-                    {
-                        PreferencesProvider preferencesProvider = authenticationProvider.getPreferencesProvider();
-                        if (preferencesProvider != null)
-                        {
-                            Set<String> usernames = preferencesProvider.listUserIDs();
-                            if (usernames.contains(userId))
-                            {
-                                if (!userPreferencesOperationAuthorized(userId))
-                                {
-                                    response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed");
-                                    return;
-                                }
-                                preferencesProvider.deletePreferences(userId);
-                            }
-                        }
-                        break;
-                    }
+                    String[] users = usersToDelete.toArray(new String[usersToDelete.size()]);
+                    preferencesProvider.deletePreferences(users);
                 }
             }
         }
 
     }
 
+    protected AuthenticationProvider findAuthenticationProviderByName(String providerName, Collection<AuthenticationProvider> authenticationProviders)
+    {
+        AuthenticationProvider provider = null;
+        for (AuthenticationProvider authenticationProvider : authenticationProviders)
+        {
+            if(authenticationProvider.getName().equals(providerName))
+            {
+                provider = authenticationProvider;
+                break;
+            }
+        }
+        return provider;
+    }
+
     private boolean userPreferencesOperationAuthorized(String userId)
     {
         return getBroker().getSecurityManager().authoriseUserOperation(Operation.UPDATE, userId);

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addAuthenticationProvider.html Mon Oct 21 22:04:51 2013
@@ -17,7 +17,7 @@
 <div class="dijitHidden">
     <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Authentication Provider'" id="addAuthenticationProvider">
         <form id="formAddAuthenticationProvider" method="post" dojoType="dijit.form.Form">
-            <div style="height:100px; width:420px; overflow: auto">
+            <div style="width:420px; overflow: auto">
                 <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1">
                 <tr>
                     <td class="tableContainer-labelCell" style="width: 200px;">Type*:</td>
@@ -32,6 +32,10 @@
                 </table>
                 <input type="hidden" id="formAddAuthenticationProvider.id" name="id"/>
                 <div id="addAuthenticationProvider.fieldSets"></div>
+                <br/>
+                <div data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'Preferences Provider',  open: true" id="addAuthenticationProvider.preferencesProviderPanel">
+                  <div id="addAuthenticationProvider.preferencesProvider"></div>
+                </div>
             </div>
             <div class="dijitDialogPaneActionBar">
                 <!-- submit buttons -->

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/addPreferencesProvider.html Mon Oct 21 22:04:51 2013
@@ -18,24 +18,8 @@
     <div data-dojo-type="dijit.Dialog" data-dojo-props="title:'Preferences Provider'" id="addPreferencesProvider">
         <form id="formAddPreferencesProvider" method="post" data-dojo-type="dijit.form.Form">
             <input type="hidden" id="preferencesProvider.id" name="id"/>
-            <div style="height:100px; width:420px; overflow: auto">
-                <table class="tableContainer-table tableContainer-table-horiz" width="100%" cellspacing="1">
-                <tr>
-                    <td class="tableContainer-labelCell" style="width: 200px;"><strong>Type*:</strong></td>
-                    <td class="tableContainer-valueCell"><div id="addPreferencesProvider.selectPreferencesProviderDiv"></div></td>
-                </tr>
-                <tr>
-                    <td class="tableContainer-labelCell" style="width: 200px;"><strong>Name*:</strong></td>
-                    <td class="tableContainer-valueCell"><input type="text" name="name"
-                        id="preferencesProvider.name" data-dojo-type="dijit.form.ValidationTextBox"
-                        data-dojo-props="placeHolder: 'Name',
-                                    required: true,
-                                    missingMessage: 'A name must be supplied',
-                                    title: 'Enter name',
-                                    pattern: '^[\x20-\x2e\x30-\x7F]{1,255}$'" /></td>
-                </tr>
-                </table>
-                <div id="preferencesProvider.fieldsContainer"></div>
+            <div style="width:420px; overflow: auto">
+                <div id="addPreferencesProvider.preferencesProvider"></div>
             </div>
             <div class="dijitDialogPaneActionBar">
                 <!-- submit buttons -->

Modified: qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html?rev=1534394&r1=1534393&r2=1534394&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html (original)
+++ qpid/branches/linearstore/qpid/java/broker-plugins/management-http/src/main/java/resources/authenticationprovider/preferences/filesystempreferences/add.html Mon Oct 21 22:04:51 2013
@@ -18,7 +18,7 @@
   <tr>
       <td class="tableContainer-labelCell" style="width: 200px;"><strong>Path*: </strong></td>
       <td class="tableContainer-valueCell" >
-        <input type="text" name="path"
+        <input type="text" name="preferencesProviderPath"
                         id="preferencesProvider.path"
                         data-dojo-type="dijit.form.ValidationTextBox"
                         data-dojo-props="placeHolder: 'Path/to/file',



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