[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;
