You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2013/08/05 20:34:40 UTC

svn commit: r1510648 - /karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java

Author: jbonofre
Date: Mon Aug  5 18:34:39 2013
New Revision: 1510648

URL: http://svn.apache.org/r1510648
Log:
[KARAF-872] Add support of ?repositories option in the Cave servlet to list the repositories

Modified:
    karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java

Modified: karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java
URL: http://svn.apache.org/viewvc/karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java?rev=1510648&r1=1510647&r2=1510648&view=diff
==============================================================================
--- karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java (original)
+++ karaf/cave/trunk/server/http/src/main/java/org/apache/karaf/cave/server/http/WrapperServlet.java Mon Aug  5 18:34:39 2013
@@ -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 Http
         // 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;