[KARAF-974] Tightening up of cave:remove-repository and 
cave:register-repository commands

git-svn-id: https://svn.apache.org/repos/asf/karaf/cave/trunk@1200039 
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/447cebbe
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cave/tree/447cebbe
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cave/diff/447cebbe

Branch: refs/heads/master
Commit: 447cebbe9ab88c325a7275860c8917bdb24cdb99
Parents: f883b7e
Author: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Authored: Wed Nov 9 23:35:30 2011 +0000
Committer: jbonofre <jbonofre@13f79535-47bb-0310-9956-ffa450edef68>
Committed: Wed Nov 9 23:35:30 2011 +0000

----------------------------------------------------------------------
 .../karaf/cave/server/command/CreateRepositoryCommand.java  | 4 ++--
 .../karaf/cave/server/command/RemoveRepositoryCommand.java  | 2 ++
 .../cave/server/storage/CaveRepositoryServiceImpl.java      | 9 ++++++++-
 3 files changed, 12 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/447cebbe/server/command/src/main/java/org/apache/karaf/cave/server/command/CreateRepositoryCommand.java
----------------------------------------------------------------------
diff --git 
a/server/command/src/main/java/org/apache/karaf/cave/server/command/CreateRepositoryCommand.java
 
b/server/command/src/main/java/org/apache/karaf/cave/server/command/CreateRepositoryCommand.java
index b03c97a..425900d 100644
--- 
a/server/command/src/main/java/org/apache/karaf/cave/server/command/CreateRepositoryCommand.java
+++ 
b/server/command/src/main/java/org/apache/karaf/cave/server/command/CreateRepositoryCommand.java
@@ -30,10 +30,10 @@ public class CreateRepositoryCommand extends 
CaveRepositoryCommandSupport {
     @Option(name = "-l", aliases = {"--location"}, description = "Location of 
the new Cave Repository on the file system", required = false, multiValued = 
false)
     String location;
 
-    @Option(name = "-nu", aliases = {"--no-update"}, description = "Disable 
the OBR metadata generation at creation time", required = false, multiValued = 
false)
+    @Option(name = "-nu", aliases = {"--no-update"}, description = "Omit 
generating OBR metadata during creation", required = false, multiValued = false)
     boolean noUpdate = false;
 
-    @Option(name = "-nr", aliases = {"--no-register"}, description = "Disable 
the registration of this Cave Repository in the OBR service", required = false, 
multiValued = false)
+    @Option(name = "-nr", aliases = {"--no-register"}, description = "Do not 
register the Cave repository within the OBR service", required = false, 
multiValued = false)
     boolean noRegister = false;
 
     @Argument(index = 0, name = "name", description = "The name of the Cave 
Repository", required = true, multiValued = false)

http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/447cebbe/server/command/src/main/java/org/apache/karaf/cave/server/command/RemoveRepositoryCommand.java
----------------------------------------------------------------------
diff --git 
a/server/command/src/main/java/org/apache/karaf/cave/server/command/RemoveRepositoryCommand.java
 
b/server/command/src/main/java/org/apache/karaf/cave/server/command/RemoveRepositoryCommand.java
index 73504fc..8111449 100644
--- 
a/server/command/src/main/java/org/apache/karaf/cave/server/command/RemoveRepositoryCommand.java
+++ 
b/server/command/src/main/java/org/apache/karaf/cave/server/command/RemoveRepositoryCommand.java
@@ -17,10 +17,12 @@
 package org.apache.karaf.cave.server.command;
 
 import org.apache.felix.gogo.commands.Argument;
+import org.apache.felix.gogo.commands.Command;
 
 /**
  * Remove a Karaf Cave repository from the repositories registry.
  */
+@Command(scope = "cave", name = "remove-repository", description = "Remove a 
Karaf Cave repository from the Cave repository list")
 public class RemoveRepositoryCommand extends CaveRepositoryCommandSupport {
 
     @Argument(index = 0, name = "name", description = "The Karaf Cave 
repository name", required = true, multiValued = false)

http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/447cebbe/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryServiceImpl.java
 
b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryServiceImpl.java
index 312f7ae..e216fc9 100644
--- 
a/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryServiceImpl.java
+++ 
b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryServiceImpl.java
@@ -90,7 +90,10 @@ public class CaveRepositoryServiceImpl implements 
CaveRepositoryService {
     public synchronized void remove(String name) throws Exception {
         CaveRepository repository = this.getRepository(name);
         if (repository != null) {
+            
repositoryAdmin.removeRepository(repository.getRepositoryXml().toString());
             repositories.remove(name);
+        } else {
+            throw new IllegalArgumentException("Cave repository " + name + " 
not found.");
         }
     }
 
@@ -103,7 +106,11 @@ public class CaveRepositoryServiceImpl implements 
CaveRepositoryService {
      */
     public synchronized void register(String name) throws Exception {
         CaveRepository caveRepository = this.getRepository(name);
-        repositoryAdmin.addRepository(caveRepository.getRepositoryXml());
+        if (caveRepository != null) {
+            repositoryAdmin.addRepository(caveRepository.getRepositoryXml());
+        } else {
+            throw new IllegalArgumentException("Cave repository " + name + " 
not found.");
+        }
     }
 
     /**

Reply via email to