Remove blueprint, upgrade to karaf 4 commands Project: http://git-wip-us.apache.org/repos/asf/karaf-cave/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf-cave/commit/d36371b2 Tree: http://git-wip-us.apache.org/repos/asf/karaf-cave/tree/d36371b2 Diff: http://git-wip-us.apache.org/repos/asf/karaf-cave/diff/d36371b2
Branch: refs/heads/master Commit: d36371b2b199c9123203e929dadab935d7bad1c4 Parents: a59c7a8 Author: Guillaume Nodet <[email protected]> Authored: Tue May 5 11:06:48 2015 +0200 Committer: Guillaume Nodet <[email protected]> Committed: Tue May 5 11:06:48 2015 +0200 ---------------------------------------------------------------------- assembly/src/main/resources/features.xml | 4 +- pom.xml | 18 +++- server/command/pom.xml | 13 +-- .../command/CaveRepositoryCommandSupport.java | 13 ++- .../server/command/RepositoriesListCommand.java | 4 +- .../server/command/RepositoryCreateCommand.java | 8 +- .../command/RepositoryDestroyCommand.java | 9 +- .../command/RepositoryInstallCommand.java | 9 +- .../command/RepositoryPopulateCommand.java | 15 ++- .../server/command/RepositoryProxyCommand.java | 15 ++- .../command/RepositoryUninstallCommand.java | 9 +- .../server/command/RepositoryUpdateCommand.java | 9 +- .../RepositoryUploadArtifactCommand.java | 15 ++- .../command/completers/RepositoryCompleter.java | 18 ++-- .../OSGI-INF/blueprint/cave-server-commands.xml | 104 ------------------- server/management/pom.xml | 24 +++-- .../server/management/internal/Activator.java | 51 +++++++++ .../OSGI-INF/blueprint/cave-management.xml | 21 ---- server/storage/pom.xml | 17 ++- .../karaf/cave/server/storage/Activator.java | 45 ++++++++ .../OSGI-INF/blueprint/cave-storage.xml | 38 ------- 21 files changed, 236 insertions(+), 223 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/assembly/src/main/resources/features.xml ---------------------------------------------------------------------- diff --git a/assembly/src/main/resources/features.xml b/assembly/src/main/resources/features.xml index 47ff868..abce0f1 100644 --- a/assembly/src/main/resources/features.xml +++ b/assembly/src/main/resources/features.xml @@ -30,7 +30,6 @@ <configfile finalname="/etc/org.apache.karaf.cave.server.storage.cfg"> mvn:org.apache.karaf.cave/apache-karaf-cave/${project.version}/cfg/filesystem </configfile> - <feature>shell-compat</feature> <bundle dependency="true">mvn:javax.annotation/javax.annotation-api/1.2</bundle> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr339-api-2.0/2.4.0</bundle> <bundle>mvn:org.jsoup/jsoup/${jsoup.version}</bundle> @@ -57,7 +56,8 @@ mvn:org.apache.karaf.cave/apache-karaf-cave/${project.version}/cfg/cxf </configfile> <feature version="[3,4)">cxf</feature> - <feature>cave-server</feature> + <feature>aries-blueprint</feature> + <feature>cave-storage</feature> <bundle>mvn:org.apache.karaf.cave.server/org.apache.karaf.cave.server.rest/${project.version}</bundle> </feature> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 2dc9634..0b5f608 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ </dependency> <dependency> <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.console</artifactId> + <artifactId>org.apache.karaf.shell.core</artifactId> <version>${karaf.version}</version> </dependency> <dependency> @@ -136,9 +136,23 @@ <pluginManagement> <plugins> <plugin> + <groupId>org.apache.karaf.tooling</groupId> + <artifactId>karaf-services-maven-plugin</artifactId> + <version>${karaf.version}</version> + <executions> + <execution> + <id>service-metadata-generate</id> + <phase>process-classes</phase> + <goals> + <goal>service-metadata-generate</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> - <version>2.4.0</version> + <version>2.5.3</version> <extensions>true</extensions> </plugin> <plugin> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/pom.xml ---------------------------------------------------------------------- diff --git a/server/command/pom.xml b/server/command/pom.xml index 0e023e0..c185ea5 100644 --- a/server/command/pom.xml +++ b/server/command/pom.xml @@ -36,7 +36,7 @@ <dependencies> <dependency> <groupId>org.apache.karaf.shell</groupId> - <artifactId>org.apache.karaf.shell.console</artifactId> + <artifactId>org.apache.karaf.shell.core</artifactId> </dependency> <dependency> <groupId>org.apache.karaf.shell</groupId> @@ -52,18 +52,15 @@ <build> <plugins> <plugin> + <groupId>org.apache.karaf.tooling</groupId> + <artifactId>karaf-services-maven-plugin</artifactId> + </plugin> + <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> - <Import-Package> - org.apache.felix.service.command, - org.apache.felix.gogo.commands, - org.apache.karaf.shell*;version="[3,5)", - org.apache.karaf.cave.server.api;version="${project.version}", - * - </Import-Package> </instructions> </configuration> </plugin> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/CaveRepositoryCommandSupport.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/CaveRepositoryCommandSupport.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/CaveRepositoryCommandSupport.java index 2920c97..acc0ef8 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/CaveRepositoryCommandSupport.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/CaveRepositoryCommandSupport.java @@ -17,21 +17,26 @@ package org.apache.karaf.cave.server.command; import org.apache.karaf.cave.server.api.CaveRepositoryService; -import org.apache.karaf.shell.console.OsgiCommandSupport; +import org.apache.karaf.shell.api.action.Action; +import org.apache.karaf.shell.api.action.lifecycle.Reference; /** * Abstract command describing the default behavior of Karaf Cave commands. */ -public abstract class CaveRepositoryCommandSupport extends OsgiCommandSupport { +public abstract class CaveRepositoryCommandSupport implements Action { + @Reference private CaveRepositoryService caveRepositoryService; public CaveRepositoryService getCaveRepositoryService() { return this.caveRepositoryService; } - public void setCaveRepositoryService(CaveRepositoryService caveRepositoryService) { - this.caveRepositoryService = caveRepositoryService; + @Override + public Object execute() throws Exception { + return doExecute(); } + protected abstract Object doExecute() throws Exception; + } http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoriesListCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoriesListCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoriesListCommand.java index 49aca41..c1f6693 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoriesListCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoriesListCommand.java @@ -17,13 +17,15 @@ package org.apache.karaf.cave.server.command; import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.lifecycle.Service; import org.apache.karaf.shell.table.ShellTable; /** * Command to list all Cave repositories */ @Command(scope = "cave", name = "repositories", description = "List all Cave repositories") +@Service public class RepositoriesListCommand extends CaveRepositoryCommandSupport { protected Object doExecute() throws Exception { http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryCreateCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryCreateCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryCreateCommand.java index dfda227..1eff436 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryCreateCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryCreateCommand.java @@ -17,14 +17,16 @@ package org.apache.karaf.cave.server.command; import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Option; +import org.apache.karaf.shell.api.action.lifecycle.Service; /** * Create a Cave repository. */ @Command(scope = "cave", name = "repository-create", description = "Create a Cave repository") +@Service public class RepositoryCreateCommand extends CaveRepositoryCommandSupport { @Option(name = "-l", aliases = {"--location"}, description = "Location of the repository on the file system", required = false, multiValued = false) http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryDestroyCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryDestroyCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryDestroyCommand.java index 8298f4d..0ae3ca5 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryDestroyCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryDestroyCommand.java @@ -16,16 +16,21 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.lifecycle.Service; /** * Destroy a Cave repository */ @Command(scope = "cave", name = "repository-destroy", description = "Destroy a Cave repository from the registry, including delete of storage") +@Service public class RepositoryDestroyCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; protected Object doExecute() throws Exception { http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryInstallCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryInstallCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryInstallCommand.java index e7025e0..0677ae9 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryInstallCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryInstallCommand.java @@ -16,16 +16,21 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.lifecycle.Service; /** * Command to install a Cave repository into the OBR service. */ @Command(scope = "cave", name = "repository-install", description = "Install a Cave repository in the OBR service") +@Service public class RepositoryInstallCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; protected Object doExecute() throws Exception { http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryPopulateCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryPopulateCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryPopulateCommand.java index 76582c7..aa29d17 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryPopulateCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryPopulateCommand.java @@ -16,17 +16,21 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; - import java.net.URL; +import org.apache.karaf.cave.server.api.CaveRepository; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.Option; +import org.apache.karaf.shell.api.action.lifecycle.Service; + /** * Populate a Cave repository from a given URL */ @Command(scope = "cave", name = "repository-populate", description = "Populate a Cave repository with the artifacts available at a given URL") +@Service public class RepositoryPopulateCommand extends CaveRepositoryCommandSupport { @Option(name = "-no", aliases = { "--no-obr-generate" }, description = "Do not generate the OBR metadata", required = false, multiValued = false) @@ -36,6 +40,7 @@ public class RepositoryPopulateCommand extends CaveRepositoryCommandSupport { String filter; @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; @Argument(index = 1, name = "url", description = "The source URL to use", required = true, multiValued = false) http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryProxyCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryProxyCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryProxyCommand.java index 610c397..c33496b 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryProxyCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryProxyCommand.java @@ -16,20 +16,25 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; - import java.net.URL; +import org.apache.karaf.cave.server.api.CaveRepository; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.Option; +import org.apache.karaf.shell.api.action.lifecycle.Service; + /** * Add an URL to proxy in the Cave repository. */ @Command(scope = "cave", name = "repository-proxy", description = "Proxy a given URL in the Karaf Cave repository") +@Service public class RepositoryProxyCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; @Argument(index = 1, name = "URL", description = "The URL to proxy", required = true, multiValued = false) http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUninstallCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUninstallCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUninstallCommand.java index 1a60138..a0aab37 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUninstallCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUninstallCommand.java @@ -16,16 +16,21 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.lifecycle.Service; /** * Uninstall a Cave repository from the repositories registry */ @Command(scope = "cave", name = "repository-uninstall", description = "Uninstall a Cave repository from the repositories registry") +@Service public class RepositoryUninstallCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; protected Object doExecute() throws Exception { http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUpdateCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUpdateCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUpdateCommand.java index 29d5334..c4329f9 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUpdateCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUpdateCommand.java @@ -17,16 +17,21 @@ package org.apache.karaf.cave.server.command; import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.lifecycle.Service; /** * Update the OBR metadata of a Cave repository */ @Command(scope = "cave", name = "repository-update", description = "Update OBR metadata of a Cave repository") +@Service public class RepositoryUpdateCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "name", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; protected Object doExecute() throws Exception { http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUploadArtifactCommand.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUploadArtifactCommand.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUploadArtifactCommand.java index 3b68eb0..40988d4 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUploadArtifactCommand.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/RepositoryUploadArtifactCommand.java @@ -16,20 +16,25 @@ */ package org.apache.karaf.cave.server.command; -import org.apache.karaf.cave.server.api.CaveRepository; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; - import java.net.URL; +import org.apache.karaf.cave.server.api.CaveRepository; +import org.apache.karaf.cave.server.command.completers.RepositoryCompleter; +import org.apache.karaf.shell.api.action.Argument; +import org.apache.karaf.shell.api.action.Command; +import org.apache.karaf.shell.api.action.Completion; +import org.apache.karaf.shell.api.action.Option; +import org.apache.karaf.shell.api.action.lifecycle.Service; + /** * Upload an artifact into a Cave repository */ @Command(scope = "cave", name = "repository-upload", description = "Upload an artifact in a Cave repository") +@Service public class RepositoryUploadArtifactCommand extends CaveRepositoryCommandSupport { @Argument(index = 0, name = "repository", description = "The name of the repository", required = true, multiValued = false) + @Completion(RepositoryCompleter.class) String name = null; @Argument(index = 1, name = "artifact", description = "The URL of the artifact to upload", required = true, multiValued = false) http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/java/org/apache/karaf/cave/server/command/completers/RepositoryCompleter.java ---------------------------------------------------------------------- diff --git a/server/command/src/main/java/org/apache/karaf/cave/server/command/completers/RepositoryCompleter.java b/server/command/src/main/java/org/apache/karaf/cave/server/command/completers/RepositoryCompleter.java index da9a34a..202d298 100644 --- a/server/command/src/main/java/org/apache/karaf/cave/server/command/completers/RepositoryCompleter.java +++ b/server/command/src/main/java/org/apache/karaf/cave/server/command/completers/RepositoryCompleter.java @@ -16,16 +16,20 @@ */ package org.apache.karaf.cave.server.command.completers; +import java.util.List; + import org.apache.karaf.cave.server.api.CaveRepository; import org.apache.karaf.cave.server.api.CaveRepositoryService; -import org.apache.karaf.shell.console.Completer; -import org.apache.karaf.shell.console.completer.StringsCompleter; - -import java.util.List; +import org.apache.karaf.shell.api.action.lifecycle.Service; +import org.apache.karaf.shell.api.console.CommandLine; +import org.apache.karaf.shell.api.console.Completer; +import org.apache.karaf.shell.api.console.Session; +import org.apache.karaf.shell.support.completers.StringsCompleter; /** * Completer of the Karaf Cave repositories. */ +@Service public class RepositoryCompleter implements Completer { private CaveRepositoryService caveRepositoryService; @@ -38,11 +42,13 @@ public class RepositoryCompleter implements Completer { return this.caveRepositoryService; } - public int complete(String buffer, int cursor, List candidates) { + @Override + public int complete(Session session, CommandLine commandLine, List<String> list) { StringsCompleter delegate = new StringsCompleter(); for (CaveRepository caveRepository : caveRepositoryService.getRepositories()) { delegate.getStrings().add(caveRepository.getName()); } - return delegate.complete(buffer, cursor, candidates); + return delegate.complete(session, commandLine, list); } + } http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/command/src/main/resources/OSGI-INF/blueprint/cave-server-commands.xml ---------------------------------------------------------------------- diff --git a/server/command/src/main/resources/OSGI-INF/blueprint/cave-server-commands.xml b/server/command/src/main/resources/OSGI-INF/blueprint/cave-server-commands.xml deleted file mode 100644 index da38b90..0000000 --- a/server/command/src/main/resources/OSGI-INF/blueprint/cave-server-commands.xml +++ /dev/null @@ -1,104 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> - - <reference id="caveRepositoryService" interface="org.apache.karaf.cave.server.api.CaveRepositoryService"/> - - <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0"> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoriesListCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryCreateCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryDestroyCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryUninstallCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryUpdateCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryProxyCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryPopulateCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryInstallCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - <command> - <action class="org.apache.karaf.cave.server.command.RepositoryUploadArtifactCommand"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </action> - <completers> - <ref component-id="repositoryCompleter"/> - <null/> - </completers> - </command> - </command-bundle> - - <bean id="repositoryCompleter" class="org.apache.karaf.cave.server.command.completers.RepositoryCompleter"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </bean> - -</blueprint> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/management/pom.xml ---------------------------------------------------------------------- diff --git a/server/management/pom.xml b/server/management/pom.xml index 5ba4a86..4ccb8e4 100644 --- a/server/management/pom.xml +++ b/server/management/pom.xml @@ -39,27 +39,35 @@ <artifactId>org.apache.karaf.cave.server.api</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.karaf</groupId> + <artifactId>org.apache.karaf.util</artifactId> + <version>${karaf.version}</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.core</artifactId> + </dependency> </dependencies> <build> <plugins> <plugin> + <groupId>org.apache.karaf.tooling</groupId> + <artifactId>karaf-services-maven-plugin</artifactId> + </plugin> + <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> <Export-Package> - org.apache.karaf.cave.server.management*;version=${project.version} + org.apache.karaf.cave.server.management </Export-Package> - <Import-Package> - javax.management, - javax.management.loading, - javax.management.openmbean, - org.apache.karaf.cave.server.api;version=${project.version} - </Import-Package> <Private-Package> - org.apache.karaf.cave.server.management.internal + org.apache.karaf.cave.server.management.internal, + org.apache.karaf.util.tracker* </Private-Package> </instructions> </configuration> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/Activator.java ---------------------------------------------------------------------- diff --git a/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/Activator.java b/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/Activator.java new file mode 100644 index 0000000..3d61032 --- /dev/null +++ b/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/Activator.java @@ -0,0 +1,51 @@ +package org.apache.karaf.cave.server.management.internal; + +import java.util.Hashtable; + +import org.apache.karaf.cave.server.api.CaveRepositoryService; +import org.apache.karaf.util.tracker.BaseActivator; +import org.apache.karaf.util.tracker.annotation.RequireService; +import org.apache.karaf.util.tracker.annotation.Services; +import org.osgi.framework.ServiceRegistration; + +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Services( + requires = { @RequireService(CaveRepositoryService.class) } +) +public class Activator extends BaseActivator { + + private volatile ServiceRegistration registration; + + @Override + protected void doStart() throws Exception { + CaveRepositoryService service = getTrackedService(CaveRepositoryService.class); + CaveRepositoryMBeanImpl mbean = new CaveRepositoryMBeanImpl(); + mbean.setCaveRepositoryService(service); + + Hashtable<String, Object> props = new Hashtable<>(); + props.put("jmx.objectname", "org.apache.karaf.cave:type=repository,name=" + System.getProperty("karaf.name")); + registration = this.bundleContext.registerService(getInterfaceNames(mbean), mbean, props); + } + + @Override + protected void doStop() { + if (registration != null) { + registration.unregister(); + registration = null; + } + super.doStop(); + } +} http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/management/src/main/resources/OSGI-INF/blueprint/cave-management.xml ---------------------------------------------------------------------- diff --git a/server/management/src/main/resources/OSGI-INF/blueprint/cave-management.xml b/server/management/src/main/resources/OSGI-INF/blueprint/cave-management.xml deleted file mode 100644 index a4b9b3d..0000000 --- a/server/management/src/main/resources/OSGI-INF/blueprint/cave-management.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" - xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"> - - <!-- system properties --> - <ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/> - - <!-- reference to the Cave repository service --> - <reference id="caveRepositoryService" interface="org.apache.karaf.cave.server.api.CaveRepositoryService"/> - - <!-- Cave repostiroy MBean --> - <bean id="caveRepositoryMBean" class="org.apache.karaf.cave.server.management.internal.CaveRepositoryMBeanImpl"> - <property name="caveRepositoryService" ref="caveRepositoryService"/> - </bean> - <service ref="caveRepositoryMBean" auto-export="interfaces"> - <service-properties> - <entry key="jmx.objectname" value="org.apache.karaf.cave:type=repository,name=$[karaf.name]"/> - </service-properties> - </service> - -</blueprint> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/storage/pom.xml ---------------------------------------------------------------------- diff --git a/server/storage/pom.xml b/server/storage/pom.xml index 00ca419..eb9dd7c 100644 --- a/server/storage/pom.xml +++ b/server/storage/pom.xml @@ -48,18 +48,28 @@ <artifactId>jsoup</artifactId> </dependency> <dependency> - <groupId>org.apache.cxf</groupId> - <artifactId>cxf-rt-frontend-jaxrs</artifactId> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.core</artifactId> </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> + <artifactId>org.osgi.compendium</artifactId> + <version>5.0.0</version> + </dependency> + <dependency> + <groupId>org.apache.karaf</groupId> + <artifactId>org.apache.karaf.util</artifactId> + <version>${karaf.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> + <groupId>org.apache.karaf.tooling</groupId> + <artifactId>karaf-services-maven-plugin</artifactId> + </plugin> + <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <configuration> @@ -73,6 +83,7 @@ org.apache.felix.utils*, org.apache.karaf.features.internal.resolver, org.apache.karaf.features.internal.repository, + org.apache.karaf.util.tracker* </Private-Package> </instructions> </configuration> http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/storage/src/main/java/org/apache/karaf/cave/server/storage/Activator.java ---------------------------------------------------------------------- diff --git a/server/storage/src/main/java/org/apache/karaf/cave/server/storage/Activator.java b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/Activator.java new file mode 100644 index 0000000..8b41efd --- /dev/null +++ b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/Activator.java @@ -0,0 +1,45 @@ +package org.apache.karaf.cave.server.storage; + +import java.io.File; +import java.util.Hashtable; + +import org.apache.karaf.cave.server.api.CaveRepositoryService; +import org.apache.karaf.util.tracker.BaseActivator; +import org.apache.karaf.util.tracker.annotation.Managed; +import org.apache.karaf.util.tracker.annotation.ProvideService; +import org.apache.karaf.util.tracker.annotation.RequireService; +import org.apache.karaf.util.tracker.annotation.Services; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.ServiceRegistration; +import org.osgi.service.cm.ManagedService; + +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Services( + provides = { @ProvideService(CaveRepositoryService.class) } +) +@Managed("org.apache.karaf.cave.server.storage") +public class Activator extends BaseActivator implements ManagedService { + + @Override + protected void doStart() throws Exception { + CaveRepositoryServiceImpl service = new CaveRepositoryServiceImpl(); + service.setBundleContext(FrameworkUtil.getBundle(Activator.class).getBundleContext()); + service.setStorageLocation(new File(getString("storage.location", "cave"))); + service.init(); + register(CaveRepositoryService.class, service); + } + +} http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/d36371b2/server/storage/src/main/resources/OSGI-INF/blueprint/cave-storage.xml ---------------------------------------------------------------------- diff --git a/server/storage/src/main/resources/OSGI-INF/blueprint/cave-storage.xml b/server/storage/src/main/resources/OSGI-INF/blueprint/cave-storage.xml deleted file mode 100644 index 54be010..0000000 --- a/server/storage/src/main/resources/OSGI-INF/blueprint/cave-storage.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" - xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" - default-activation="lazy"> - - <bean id="caveRepositoryService" class="org.apache.karaf.cave.server.storage.CaveRepositoryServiceImpl" init-method="init"> - <property name="storageLocation" value="${storage.location}"/> - <property name="bundleContext" ref="blueprintBundleContext"/> - </bean> - - <service ref="caveRepositoryService" interface="org.apache.karaf.cave.server.api.CaveRepositoryService"/> - - <!-- use the cm of Cave filesystem backend --> - <cm:property-placeholder persistent-id="org.apache.karaf.cave.server.storage" update-strategy="reload"> - <cm:default-properties> - <cm:property name="storage.location" value="cave"/> - </cm:default-properties> - </cm:property-placeholder> - -</blueprint> \ No newline at end of file
