[KARAF-872] Add support of ?repositories option in the Cave servlet to list the 
repositories

git-svn-id: https://svn.apache.org/repos/asf/karaf/cave/trunk@1510648 
13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/karaf-cave/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-cave/commit/b74e271f
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cave/tree/b74e271f
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cave/diff/b74e271f

Branch: refs/heads/master
Commit: b74e271f41e8df6638d001179874ea13a5de4163
Parents: fa5fcde
Author: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Authored: Mon Aug 5 18:34:39 2013 +0000
Committer: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Committed: Mon Aug 5 18:34:39 2013 +0000

----------------------------------------------------------------------
 .../karaf/cave/server/http/WrapperServlet.java  | 22 +++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/b74e271f/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
----------------------------------------------------------------------
diff --git 
a/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
 
b/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
index 2c5f428..e24fcbf 100644
--- 
a/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
+++ 
b/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
@@ -34,7 +34,6 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.net.URL;
-import java.rmi.server.UnicastRemoteObject;
 
 /**
  * Wrapper servlet which "exposes" Karaf Cave repository resources in HTTP.
@@ -74,6 +73,27 @@ public class WrapperServlet extends HttpServlet {
         // remove the starting /
         uri = uri.substring(1);
 
+        // listing the repositories
+        if (request.getParameter("repositories") != null) {
+            ServiceReference caveRepositoryServiceReference = 
bundleContext.getServiceReference(CaveRepositoryService.class.getName());
+            if (caveRepositoryServiceReference != null) {
+                CaveRepositoryService caveRepositoryService = 
(CaveRepositoryService) 
bundleContext.getService(caveRepositoryServiceReference);
+                if (caveRepositoryService != null) {
+                    CaveRepository[] caveRepositories = 
caveRepositoryService.getRepositories();
+                    response.setContentType("text/plain");
+                    PrintWriter writer = response.getWriter();
+                    for (CaveRepository caveRepository : caveRepositories) {
+                        writer.println(caveRepository.getName());
+                    }
+                    writer.flush();
+                    writer.close();
+                }
+                bundleContext.ungetService(caveRepositoryServiceReference);
+            }
+            return;
+        }
+
+        // wrapping content (repository.xml or directly artifacts)
         try {
             URL url = null;
 

Reply via email to