Author: rgodfrey
Date: Thu Jun 14 14:00:07 2012
New Revision: 1350242

URL: http://svn.apache.org/viewvc?rev=1350242&view=rev
Log:
QPID-3999 : (committing patch supplied by Alex Rudyy) add default constructors 
to servlets, make URLs in web management relative

Modified:
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/ManagementActivator.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/ExchangesServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/VhostsServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/common.css
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/authorization/sasl.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Broker.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Connection.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Exchange.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Queue.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/VirtualHost.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addBinding.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addExchange.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addQueue.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/moveCopyMessages.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/showMessage.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/treeView.js
    
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/management.html

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/Management.java
 Thu Jun 14 14:00:07 2012
@@ -49,8 +49,6 @@ public class Management
 
     public Management()
     {
-        _logger.info("Starting up web server on port 8080");
-
         _broker = ApplicationRegistry.getInstance().getBroker();
 
         Collection<Port> ports = _broker.getPorts();
@@ -71,6 +69,8 @@ public class Management
 
     private Server createServer(int port)
     {
+        _logger.info("Starting up web server on port " + port);
+
         Server server = new Server(port);
         SocketAddress socketAddress = new InetSocketAddress(port);
 
@@ -102,7 +102,6 @@ public class Management
         root.addServlet(new ServletHolder(new 
DefinedFileServlet("management.html")),"/management");
 
 
-
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.js");
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.css");
         root.addServlet(new ServletHolder(FileServlet.INSTANCE), "*.html");

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/ManagementActivator.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/ManagementActivator.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/ManagementActivator.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/ManagementActivator.java
 Thu Jun 14 14:00:07 2012
@@ -22,6 +22,7 @@ package org.apache.qpid.server.managemen
 
 import org.apache.log4j.Logger;
 import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 
@@ -38,6 +39,12 @@ public class ManagementActivator impleme
     public void start(final BundleContext ctx) throws Exception
     {
         _ctx = ctx;
+        if 
(!ApplicationRegistry.getInstance().getConfiguration().getHTTPManagementEnabled())
+        {
+            _logger.info("Management plugin is diabled!");
+            ctx.getBundle().uninstall();
+            return;
+        }
         _managementService = new Management();
         _managementService.start();
         _bundleName = ctx.getBundle().getSymbolicName();
@@ -50,12 +57,16 @@ public class ManagementActivator impleme
 
     public void stop(final BundleContext bundleContext) throws Exception
     {
-        _logger.info("Stopping management plugin: " + _bundleName);
-
-        _managementService.stop();
-
-           // null object references
-           _managementService = null;
-               _ctx = null;
+        if (_managementService != null)
+        {
+            _logger.info("Stopping management plugin: " + _bundleName);
+
+            _managementService.stop();
+
+            // null object references
+            _managementService = null;
+        }
+        _ctx = null;
     }
+
 }

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/DefinedFileServlet.java
 Thu Jun 14 14:00:07 2012
@@ -2,6 +2,8 @@ package org.apache.qpid.server.managemen
 
 import java.io.IOException;
 import java.io.InputStream;
+
+import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServlet;
@@ -27,7 +29,14 @@ import javax.servlet.http.HttpServletRes
 public class DefinedFileServlet extends HttpServlet
 {
 
-    private final String _filename;
+    private static final String FILENAME_INIT_PARAMETER = "filename";
+
+    private String _filename;
+
+    public DefinedFileServlet()
+    {
+        super();
+    }
 
     public DefinedFileServlet(String filename)
     {
@@ -35,6 +44,17 @@ public class DefinedFileServlet extends 
     }
 
     @Override
+    public void init() throws ServletException
+    {
+        ServletConfig config = getServletConfig();
+        String fileName = config.getInitParameter(FILENAME_INIT_PARAMETER);
+        if (fileName != null && !"".equals(fileName))
+        {
+            _filename = fileName;
+        }
+    }
+
+    @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException
     {
         final ServletOutputStream output = response.getOutputStream();

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/FileServlet.java
 Thu Jun 14 14:00:07 2012
@@ -20,8 +20,12 @@
  */
 package org.apache.qpid.server.management.plugin.servlet;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -59,7 +63,6 @@ public class FileServlet extends HttpSer
     protected void doGet(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException
     {
         String filename = request.getServletPath();
-
         if(filename.contains("."))
         {
             String suffix = filename.substring(filename.lastIndexOf('.')+1);
@@ -69,19 +72,31 @@ public class FileServlet extends HttpSer
                 response.setContentType(contentType);
             }
         }
-
-        final ServletOutputStream output = response.getOutputStream();
-        InputStream fileInput = getClass().getResourceAsStream("/resources" + 
filename);
-
-        if(fileInput != null)
+        URL resourceURL = getClass().getResource("/resources" + filename);
+        if(resourceURL != null)
         {
-            byte[] buffer = new byte[1024];
             response.setStatus(HttpServletResponse.SC_OK);
-            int read = 0;
-
-            while((read = fileInput.read(buffer)) > 0)
+            InputStream fileInput = resourceURL.openStream();
+            try
+            {
+                byte[] buffer = new byte[1024];
+                int read = 0;
+                ServletOutputStream output = response.getOutputStream();
+                try
+                {
+                    while((read = fileInput.read(buffer)) != -1)
+                    {
+                        output.write(buffer, 0, read);
+                    }
+                }
+                finally
+                {
+                    output.close();
+                }
+            }
+            finally
             {
-                output.write(buffer, 0, read);
+                fileInput.close();
             }
         }
         else

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/ExchangesServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/ExchangesServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/ExchangesServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/ExchangesServlet.java
 Thu Jun 14 14:00:07 2012
@@ -28,6 +28,7 @@ import org.apache.qpid.server.model.Exch
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHost;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -49,6 +50,12 @@ public class ExchangesServlet extends Ht
 
     private Broker _broker;
 
+    public ExchangesServlet()
+    {
+        super();
+        _broker = ApplicationRegistry.getInstance().getBroker();
+    }
+
     public ExchangesServlet(Broker broker)
     {
         _broker = broker;

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/VhostsServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/VhostsServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/VhostsServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/api/VhostsServlet.java
 Thu Jun 14 14:00:07 2012
@@ -28,6 +28,7 @@ import org.apache.qpid.server.model.Life
 import org.apache.qpid.server.model.State;
 import org.apache.qpid.server.model.VirtualHost;
 import org.apache.qpid.server.protocol.AMQConnectionModel;
+import org.apache.qpid.server.registry.ApplicationRegistry;
 
 
 import javax.servlet.ServletException;
@@ -44,6 +45,12 @@ public class VhostsServlet extends HttpS
 
     private Broker _broker;
 
+    public VhostsServlet()
+    {
+        super();
+        _broker = ApplicationRegistry.getInstance().getBroker();
+    }
+
     public VhostsServlet(Broker broker)
     {
         _broker = broker;

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/AbstractServlet.java
 Thu Jun 14 14:00:07 2012
@@ -22,6 +22,7 @@
 package org.apache.qpid.server.management.plugin.servlet.rest;
 
 import java.io.IOException;
+import java.net.InetSocketAddress;
 import java.net.SocketAddress;
 import java.security.Principal;
 import java.util.Collections;
@@ -43,6 +44,13 @@ public abstract class AbstractServlet ex
     private final Broker _broker;
     private SocketAddress _socketAddress;
 
+    protected AbstractServlet()
+    {
+        super();
+        _broker = ApplicationRegistry.getInstance().getBroker();
+        _socketAddress = null;
+    }
+
     protected AbstractServlet(Broker broker, SocketAddress socketAddress)
     {
         _broker = broker;
@@ -100,10 +108,9 @@ public abstract class AbstractServlet ex
                         String[] credentials = (new 
String(Base64.decodeBase64(tokens[1].getBytes()))).split(":",2);
                         if(credentials.length == 2)
                         {
-
-
+                            SocketAddress address = getSocketAddress(request);
                             AuthenticationManager authenticationManager =
-                                    
ApplicationRegistry.getInstance().getAuthenticationManager(_socketAddress);
+                                    
ApplicationRegistry.getInstance().getAuthenticationManager(address);
                             AuthenticationResult authResult =
                                     
authenticationManager.authenticate(credentials[0], credentials[1]);
                             subject = authResult.getSubject();
@@ -189,8 +196,12 @@ public abstract class AbstractServlet ex
         return _broker;
     }
 
-    protected SocketAddress getSocketAddress()
+    protected SocketAddress getSocketAddress(HttpServletRequest request)
     {
+        if (_socketAddress == null)
+        {
+            return InetSocketAddress.createUnresolved(request.getServerName(), 
request.getServerPort());
+        }
         return _socketAddress;
     }
 }

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/LogRecordsServlet.java
 Thu Jun 14 14:00:07 2012
@@ -34,6 +34,11 @@ import org.codehaus.jackson.map.Serializ
 
 public class LogRecordsServlet extends AbstractServlet
 {
+    public LogRecordsServlet()
+    {
+        super(ApplicationRegistry.getInstance().getBroker(), null);
+    }
+
     public LogRecordsServlet(Broker broker, SocketAddress socketaddress)
     {
         super(broker, socketaddress);

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageContentServlet.java
 Thu Jun 14 14:00:07 2012
@@ -23,9 +23,11 @@ import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.Broker;
@@ -36,6 +38,11 @@ import org.apache.qpid.server.queue.Queu
 
 public class MessageContentServlet extends AbstractServlet
 {
+    public MessageContentServlet()
+    {
+        super();
+    }
+
     public MessageContentServlet(Broker broker, SocketAddress socketaddress)
     {
         super(broker, socketaddress);

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java
 Thu Jun 14 14:00:07 2012
@@ -20,10 +20,17 @@ package org.apache.qpid.server.managemen
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.SocketAddress;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.MessageReference;
 import org.apache.qpid.server.message.ServerMessage;
@@ -38,6 +45,11 @@ import org.codehaus.jackson.map.Serializ
 
 public class MessageServlet extends AbstractServlet
 {
+    public MessageServlet()
+    {
+        super();
+    }
+
     public MessageServlet(Broker broker, SocketAddress socketaddress)
     {
         super(broker, socketaddress);

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
 Thu Jun 14 14:00:07 2012
@@ -12,9 +12,12 @@ import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+
+import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Model;
@@ -40,15 +43,78 @@ import org.codehaus.jackson.map.Serializ
  */
 public class RestServlet extends AbstractServlet
 {
+    /**
+     * An initialization parameter to specify hierarchy
+     */
+    private static final String HIERARCHY_INIT_PARAMETER = "hierarchy";
+
     public static final String DEPTH_PARAM = "depth";
     private Class<? extends ConfiguredObject>[] _hierarchy;
 
+    private volatile boolean initializationRequired = false;
+
+    public RestServlet()
+    {
+        super();
+        initializationRequired = true;
+    }
+
     public RestServlet(Broker broker, SocketAddress socketaddress, Class<? 
extends ConfiguredObject>... hierarchy)
     {
         super(broker, socketaddress);
         _hierarchy = hierarchy;
     }
 
+    @Override
+    public void init() throws ServletException
+    {
+        if (initializationRequired)
+        {
+            doInitialization();
+            initializationRequired = false;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void doInitialization() throws ServletException
+    {
+        ServletConfig config = getServletConfig();
+        String hierarchy = config.getInitParameter(HIERARCHY_INIT_PARAMETER);
+        if (hierarchy != null && !"".equals(hierarchy))
+        {
+            List<Class<? extends ConfiguredObject>> classes = new 
ArrayList<Class<? extends ConfiguredObject>>();
+            String[] hierarchyItems = hierarchy.split(",");
+            for (String item : hierarchyItems)
+            {
+                Class<?> itemClass = null;
+                try
+                {
+                    itemClass = Class.forName(item);
+                }
+                catch (ClassNotFoundException e)
+                {
+                    try
+                    {
+                        itemClass = 
Class.forName("org.apache.qpid.server.model." + item);
+                    }
+                    catch (ClassNotFoundException e1)
+                    {
+                        throw new ServletException("Unknown configured object 
class '" + item
+                                + "' is specified in hierarchy for " + 
config.getServletName());
+                    }
+                }
+                Class<? extends ConfiguredObject> clazz = (Class<? extends 
ConfiguredObject>)itemClass;
+                classes.add(clazz);
+            }
+            Class<? extends ConfiguredObject>[] hierachyClasses = (Class<? 
extends ConfiguredObject>[])new Class[classes.size()];
+            _hierarchy = classes.toArray(hierachyClasses);
+        }
+        else
+        {
+            _hierarchy = (Class<? extends ConfiguredObject>[])new Class[0];
+        }
+    }
+
     protected Collection<ConfiguredObject> getObjects(HttpServletRequest 
request)
     {
         List<String> names = new ArrayList<String>();

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
 Thu Jun 14 14:00:07 2012
@@ -56,6 +56,11 @@ public class SaslServlet extends Abstrac
     private static final long SASL_EXCHANGE_EXPIRY = 1000L;
 
 
+    public SaslServlet()
+    {
+        super();
+    }
+
     public SaslServlet(Broker broker, SocketAddress socketaddress)
     {
         super(broker, socketaddress);
@@ -75,7 +80,7 @@ public class SaslServlet extends Abstrac
         HttpSession session = request.getSession();
         Random rand = getRandom(session);
 
-        AuthenticationManager authManager = 
ApplicationRegistry.getInstance().getAuthenticationManager(getSocketAddress());
+        AuthenticationManager authManager = 
ApplicationRegistry.getInstance().getAuthenticationManager(getSocketAddress(request));
         String[] mechanisms = authManager.getMechanisms().split(" ");
         Map<String, Object> outputObject = new LinkedHashMap<String, Object>();
         final Subject subject = (Subject) session.getAttribute("subject");
@@ -127,7 +132,7 @@ public class SaslServlet extends Abstrac
         String id = request.getParameter("id");
         String saslResponse = request.getParameter("response");
 
-        AuthenticationManager authManager = 
ApplicationRegistry.getInstance().getAuthenticationManager(getSocketAddress());
+        AuthenticationManager authManager = 
ApplicationRegistry.getInstance().getAuthenticationManager(getSocketAddress(request));
 
         if(mechanism != null)
         {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/StructureServlet.java
 Thu Jun 14 14:00:07 2012
@@ -19,10 +19,16 @@ package org.apache.qpid.server.managemen
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.SocketAddress;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.Model;
@@ -31,6 +37,11 @@ import org.codehaus.jackson.map.Serializ
 
 public class StructureServlet extends AbstractServlet
 {
+    public StructureServlet()
+    {
+        super();
+    }
+
     public StructureServlet(Broker broker, SocketAddress socketaddress)
     {
         super(broker, socketaddress);

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/common.css
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/common.css?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/common.css
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/css/common.css
 Thu Jun 14 14:00:07 2012
@@ -43,7 +43,7 @@ button {
        -moz-border-radius: 4px 4px 4px 4px;
        -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
        background-color: #E4F2FF;
-       background-image: 
url("/dojo/dijit/themes/claro/form/images/button.png");
+       background-image: 
url("../dojo/dijit/themes/claro/form/images/button.png");
        background-position: center top;
        background-repeat: repeat-x;
        border: 1px solid #769DC0;
@@ -62,7 +62,7 @@ h1 {
 
 .header {
     height:100px;
-    background:url("/images/qpid-logo.png") left center no-repeat
+    background:url("../images/qpid-logo.png") left center no-repeat
 }
 
 .logo {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/authorization/sasl.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/authorization/sasl.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/authorization/sasl.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/authorization/sasl.js
 Thu Jun 14 14:00:07 2012
@@ -58,7 +58,7 @@ var saslPlain = function saslPlain(user,
     // Using dojo.xhrGet, as very little information is being sent
     dojo.xhrPost({
         // The URL of the request
-        url: "/rest/sasl",
+        url: "rest/sasl",
         content: {
             mechanism: "PLAIN",
             response: plainResponse
@@ -89,7 +89,7 @@ var saslCramMD5 = function saslCramMD5(u
     // Using dojo.xhrGet, as very little information is being sent
     dojo.xhrPost({
         // The URL of the request
-        url: "/rest/sasl",
+        url: "rest/sasl",
         content: {
             mechanism: "CRAM-MD5"
         },
@@ -114,7 +114,7 @@ var saslCramMD5 = function saslCramMD5(u
 
                 dojo.xhrPost({
                         // The URL of the request
-                        url: "/rest/sasl",
+                        url: "rest/sasl",
                         content: {
                             id: id,
                             response: response
@@ -163,7 +163,7 @@ var updateAuthentication = function upda
 {
     dojo.xhrGet({
         // The URL of the request
-        url: "/rest/sasl",
+        url: "rest/sasl",
         handleAs: "json"
     }).then(function(data)
             {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Broker.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Broker.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Broker.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Broker.js
 Thu Jun 14 14:00:07 2012
@@ -77,7 +77,7 @@ define(["dojo/_base/xhr",
                this.durable = dom.byId("durable");
                this.lifetimePolicy = dom.byId("lifetimePolicy");
                */
-               this.query = "/rest/broker";
+               this.query = "rest/broker";
 
                var that = this;
 
@@ -123,7 +123,7 @@ define(["dojo/_base/xhr",
 
                          });
 
-               xhr.get({url: "/rest/logrecords", sync: properties.useSyncGet, 
handleAs: "json"})
+               xhr.get({url: "rest/logrecords", sync: properties.useSyncGet, 
handleAs: "json"})
                    .then(function(data)
                          {
                              that.logData = data;
@@ -190,7 +190,7 @@ define(["dojo/_base/xhr",
                                                                                
    });
 
 
-               xhr.get({url: "/rest/logrecords", sync: properties.useSyncGet, 
handleAs: "json"})
+               xhr.get({url: "rest/logrecords", sync: properties.useSyncGet, 
handleAs: "json"})
                    .then(function(data)
                          {
                              that.logData = data;

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Connection.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Connection.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Connection.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Connection.js
 Thu Jun 14 14:00:07 2012
@@ -95,7 +95,7 @@ define(["dojo/_base/xhr",
 
 
 
-               this.query = "/rest/connection/"+ 
encodeURIComponent(connectionObj.parent.virtualhost.name) + "/" + 
encodeURIComponent(connectionObj.name);
+               this.query = "rest/connection/"+ 
encodeURIComponent(connectionObj.parent.virtualhost.name) + "/" + 
encodeURIComponent(connectionObj.name);
 
                xhr.get({url: this.query, sync: properties.useSyncGet, 
handleAs: "json"}).then(function(data)
                                {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Exchange.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Exchange.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Exchange.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Exchange.js
 Thu Jun 14 14:00:07 2012
@@ -125,7 +125,7 @@ define(["dojo/_base/xhr",
 
 
 
-               this.query = "/rest/exchange/"+ 
encodeURIComponent(exchangeObj.parent.virtualhost.name) + "/" + 
encodeURIComponent(exchangeObj.name);
+               this.query = "rest/exchange/"+ 
encodeURIComponent(exchangeObj.parent.virtualhost.name) + "/" + 
encodeURIComponent(exchangeObj.name);
 
                xhr.get({url: this.query, sync: properties.useSyncGet, 
handleAs: "json"}).then(function(data)
                                {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Queue.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Queue.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Queue.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/Queue.js
 Thu Jun 14 14:00:07 2012
@@ -82,7 +82,7 @@ define(["dojo/_base/xhr",
 
                             that.queueUpdater.update();
 
-                            var myStore = new 
JsonRest({target:"/rest/message/"+ 
encodeURIComponent(that.getVirtualHostName()) +
+                            var myStore = new 
JsonRest({target:"rest/message/"+ encodeURIComponent(that.getVirtualHostName()) 
+
                                                                                
"/" + encodeURIComponent(that.getQueueName())});
                             var messageGridDiv = 
query(".messages",contentPane.containerNode)[0];
                             that.dataStore = new ObjectStore({objectStore: 
myStore});
@@ -176,7 +176,7 @@ define(["dojo/_base/xhr",
 
                            queryParam += "id=" + data[i].id;
                        }
-                       var query = "/rest/message/"+ 
encodeURIComponent(that.getVirtualHostName())
+                       var query = "rest/message/"+ 
encodeURIComponent(that.getVirtualHostName())
                            + "/" + encodeURIComponent(that.getQueueName()) + 
queryParam;
                        xhr.del({url: query, sync: true, handleAs: 
"json"}).then(
                            function(data) {
@@ -268,7 +268,7 @@ define(["dojo/_base/xhr",
 
 
 
-               this.query = "/rest/queue/"+ 
encodeURIComponent(queueObj.getVirtualHostName()) + "/" + 
encodeURIComponent(queueObj.getQueueName());
+               this.query = "rest/queue/"+ 
encodeURIComponent(queueObj.getVirtualHostName()) + "/" + 
encodeURIComponent(queueObj.getQueueName());
 
                xhr.get({url: this.query, sync: properties.useSyncGet, 
handleAs: "json"}).then(function(data)
                                {

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/VirtualHost.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/VirtualHost.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/VirtualHost.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/VirtualHost.js
 Thu Jun 14 14:00:07 2012
@@ -112,8 +112,7 @@ define(["dojo/_base/xhr",
                            "bytesOutRate",
                            "bytesOutRateUnits"]);
 
-               this.query = "/rest/virtualhost/"+ 
encodeURIComponent(vhost.name);
-
+               this.query = "rest/virtualhost/"+ 
encodeURIComponent(vhost.name);
 
                var that = this;
 

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addBinding.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addBinding.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addBinding.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addBinding.js
 Thu Jun 14 14:00:07 2012
@@ -114,7 +114,7 @@ define(["dojo/_base/xhr",
                                     var newBinding = 
convertToBinding(theForm.getValues());
                                     var that = this;
 
-                                    xhr.put({url: 
"/rest/binding/"+encodeURIComponent(addBinding.vhost)
+                                    xhr.put({url: 
"rest/binding/"+encodeURIComponent(addBinding.vhost)
                                                       
+"/"+encodeURIComponent(newBinding.exchange)
                                                       
+"/"+encodeURIComponent(newBinding.queue)
                                                       
+"/"+encodeURIComponent(newBinding.name),
@@ -154,7 +154,7 @@ define(["dojo/_base/xhr",
 
 
 
-            xhr.get({url: "/rest/queue/" + encodeURIComponent(obj.virtualhost) 
+ "?depth=0",
+            xhr.get({url: "rest/queue/" + encodeURIComponent(obj.virtualhost) 
+ "?depth=0",
                      handleAs: "json"}).then(
                 function(data) {
                     var queues =  [];
@@ -181,7 +181,7 @@ define(["dojo/_base/xhr",
                         that.queueChooser.set("disabled", true);
                     }
 
-                    xhr.get({url: "/rest/exchange/" + 
encodeURIComponent(obj.virtualhost) + "?depth=0",
+                    xhr.get({url: "rest/exchange/" + 
encodeURIComponent(obj.virtualhost) + "?depth=0",
                                          handleAs: "json"}).then(
                         function(data) {
 

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addExchange.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addExchange.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addExchange.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addExchange.js
 Thu Jun 14 14:00:07 2012
@@ -110,7 +110,7 @@ define(["dojo/_base/xhr",
                                     var newExchange = 
convertToExchange(theForm.getValues());
                                     var that = this;
 
-                                    xhr.put({url: 
"/rest/exchange/"+encodeURIComponent(addExchange.vhost) +
+                                    xhr.put({url: 
"rest/exchange/"+encodeURIComponent(addExchange.vhost) +
                                                   
"/"+encodeURIComponent(newExchange.name), sync: true, handleAs: "json",
                                              headers: { "Content-Type": 
"application/json"},
                                              putData: json.toJson(newExchange),

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addQueue.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addQueue.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addQueue.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/addQueue.js
 Thu Jun 14 14:00:07 2012
@@ -121,7 +121,7 @@ define(["dojo/_base/xhr",
                                     var newQueue = 
convertToQueue(theForm.getValues());
                                     var that = this;
 
-                                    xhr.put({url: 
"/rest/queue/"+encodeURIComponent(addQueue.vhost)
+                                    xhr.put({url: 
"rest/queue/"+encodeURIComponent(addQueue.vhost)
                                                   
+"/"+encodeURIComponent(newQueue.name), sync: true, handleAs: "json",
                                              headers: { "Content-Type": 
"application/json"},
                                              putData: json.toJson(newQueue),

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/moveCopyMessages.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/moveCopyMessages.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/moveCopyMessages.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/moveCopyMessages.js
 Thu Jun 14 14:00:07 2012
@@ -62,7 +62,7 @@ define(["dojo/_base/xhr",
                                     moveMessages.data.destinationQueue = 
theForm.getValues()["queue"];
                                     var that = this;
 
-                                    xhr.post({url: 
"/rest/message/"+encodeURIComponent(moveMessages.vhost)
+                                    xhr.post({url: 
"rest/message/"+encodeURIComponent(moveMessages.vhost)
                                                       
+"/"+encodeURIComponent(moveMessages.queue),
                                              sync: true, handleAs: "json",
                                              headers: { "Content-Type": 
"application/json"},
@@ -102,7 +102,7 @@ define(["dojo/_base/xhr",
 
 
 
-            xhr.get({url: "/rest/queue/" + encodeURIComponent(obj.virtualhost) 
+ "?depth=0",
+            xhr.get({url: "rest/queue/" + encodeURIComponent(obj.virtualhost) 
+ "?depth=0",
                      handleAs: "json"}).then(
                 function(data) {
                     var queues =  [];

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/showMessage.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/showMessage.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/showMessage.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/showMessage.js
 Thu Jun 14 14:00:07 2012
@@ -100,14 +100,14 @@ define(["dojo/_base/xhr",
             var contentField = query(".message-content", this.dialogNode)[0];
 
             if(data.mimeType && data.mimeType.match(/text\/.*/)) {
-                xhr.get({url: "/rest/message-content/" + 
encodeURIComponent(showMessage.virtualhost)
+                xhr.get({url: "rest/message-content/" + 
encodeURIComponent(showMessage.virtualhost)
                                             + "/" + 
encodeURIComponent(showMessage.queue)
                                             + "/" + 
encodeURIComponent(showMessage.messageNumber),
                                      sync: true
 
                                     }).then(function(obj) { 
contentField.innerHTML = encode(obj) });
             } else {
-                contentField.innerHTML = "<a href=\"" + 
"/rest/message-content/" + encodeURIComponent(showMessage.virtualhost)
+                contentField.innerHTML = "<a href=\"" + 
"rest/message-content/" + encodeURIComponent(showMessage.virtualhost)
                                                             + "/" + 
encodeURIComponent(showMessage.queue)
                                                             + "/" + 
encodeURIComponent(showMessage.messageNumber)
                                         + "\" target=\"_blank\">Download</a>";
@@ -122,7 +122,7 @@ define(["dojo/_base/xhr",
             showMessage.queue = obj.queue;
             showMessage.messageNumber = obj.messageNumber;
 
-            xhr.get({url: "/rest/message/" + 
encodeURIComponent(obj.virtualhost)
+            xhr.get({url: "rest/message/" + encodeURIComponent(obj.virtualhost)
                             + "/" + encodeURIComponent(obj.queue)
                             + "/" + encodeURIComponent(obj.messageNumber),
                      sync: properties.useSyncGet,

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/treeView.js
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/treeView.js?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/treeView.js
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/js/qpid/management/treeView.js
 Thu Jun 14 14:00:07 2012
@@ -292,7 +292,7 @@ define(["dojo/_base/xhr",
            };
 
            query('div[qpid-type="treeView"]').forEach(function(node, index, 
arr) {
-               var treeModel = new TreeViewModel("/rest/structure");
+               var treeModel = new TreeViewModel("rest/structure");
                treeModel.update();
                var tree = new Tree({ model: treeModel }, node);
                tree.on("dblclick",

Modified: 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/management.html
URL: 
http://svn.apache.org/viewvc/qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/management.html?rev=1350242&r1=1350241&r2=1350242&view=diff
==============================================================================
--- 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/management.html
 (original)
+++ 
qpid/branches/java-config-and-management/qpid/java/broker-plugins/management/src/main/java/resources/management.html
 Thu Jun 14 14:00:07 2012
@@ -19,27 +19,41 @@
 <head>
     <meta charset="utf-8">
     <title>Qpid Management</title>
-    <link rel="stylesheet" href="/dojo/dojo/resources/dojo.css">
-    <link rel="stylesheet" href="/dojo/dijit/themes/claro/claro.css">
-    <link rel="stylesheet" href="/dojo/dojox/grid/resources/claroGrid.css">
-    <link rel="stylesheet" 
href="/dojo/dojox/grid/enhanced/resources/claro/EnhancedGrid.css">
-    <link rel="stylesheet" 
href="/dojo/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css">
+    <link rel="stylesheet" href="dojo/dojo/resources/dojo.css">
+    <link rel="stylesheet" href="dojo/dijit/themes/claro/claro.css">
+    <link rel="stylesheet" href="dojo/dojox/grid/resources/claroGrid.css">
+    <link rel="stylesheet" 
href="dojo/dojox/grid/enhanced/resources/claro/EnhancedGrid.css">
+    <link rel="stylesheet" 
href="dojo/dojox/grid/enhanced/resources/EnhancedGrid_rtl.css">
     <link rel="stylesheet" href="css/common.css" media="screen">
     <script>
+        function getContextPath()
+        {
+            var contextPath = "/";
+            var documentURL = document.URL;
+            var managementPageStart = documentURL.lastIndexOf("/");
+            var firstSlashPos = documentURL.indexOf("/", 
documentURL.indexOf("//") + 2);
+            if (managementPageStart > firstSlashPos)
+            {
+                contextPath = documentURL.substring(firstSlashPos, 
managementPageStart);
+            }
+            return contextPath;
+        }
+
         var dojoConfig = {
             tlmSiblingOfDojo:false,
             parseOnLoad:true,
             async:true,
+            baseUrl: getContextPath(),
             packages:[
-                { name:"dojo", location:"/dojo/dojo" },
-                { name:"dijit", location:"/dojo/dijit" },
-                { name:"dojox", location:"/dojo/dojox" },
-                { name:"qpid", location:"/js/qpid" }
+                { name:"dojo", location:"dojo/dojo" },
+                { name:"dijit", location:"dojo/dijit" },
+                { name:"dojox", location:"dojo/dojox" },
+                { name:"qpid", location:"js/qpid" }
             ]
         };
 
     </script>
-    <script src="/dojo/dojo/dojo.js">
+    <script src="dojo/dojo/dojo.js">
     </script>
 
     <script>
@@ -64,7 +78,7 @@
         <div id="login"></div>
     </div>
     <div data-dojo-type="dijit.layout.ContentPane" 
data-dojo-props="region:'leading', splitter: true">
-        <div qpid-type="treeView" qpid-props="query: '/rest/structure'" ></div>
+        <div qpid-type="treeView" qpid-props="query: 'rest/structure'" ></div>
     </div>
     <div id="managedViews" data-dojo-type="dijit.layout.TabContainer" 
data-dojo-props="region:'center', tabPosition: 'top'">
     </div>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to