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/12/18 09:20:10 UTC
[49/50] [abbrv] git commit: [KARAF-2433] Refactoring of the Cave API
to prepare the destroy command
[KARAF-2433] Refactoring of the Cave API to prepare the destroy command
git-svn-id: https://svn.apache.org/repos/asf/karaf/cave/trunk@1514562 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/f740a191
Tree: http://git-wip-us.apache.org/repos/asf/karaf-cave/tree/f740a191
Diff: http://git-wip-us.apache.org/repos/asf/karaf-cave/diff/f740a191
Branch: refs/heads/master
Commit: f740a19159ab48f69924bc6340abc6d0b52c382e
Parents: ab67133
Author: jbonofre <jb...@13f79535-47bb-0310-9956-ffa450edef68>
Authored: Fri Aug 16 02:48:53 2013 +0000
Committer: jbonofre <jb...@13f79535-47bb-0310-9956-ffa450edef68>
Committed: Fri Aug 16 02:48:53 2013 +0000
----------------------------------------------------------------------
.../cave/server/api/CaveRepositoryService.java | 53 +++++++-----
.../server/command/RepositoryCreateCommand.java | 4 +-
.../internal/CaveRepositoryMBeanImpl.java | 2 +-
.../cave/server/storage/CaveRepositoryImpl.java | 28 +++----
.../storage/CaveRepositoryServiceImpl.java | 84 +++++++++++++-------
5 files changed, 106 insertions(+), 65 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/f740a191/server/api/src/main/java/org/apache/karaf/cave/server/api/CaveRepositoryService.java
----------------------------------------------------------------------
diff --git a/server/api/src/main/java/org/apache/karaf/cave/server/api/CaveRepositoryService.java b/server/api/src/main/java/org/apache/karaf/cave/server/api/CaveRepositoryService.java
index 945d813..733f631 100644
--- a/server/api/src/main/java/org/apache/karaf/cave/server/api/CaveRepositoryService.java
+++ b/server/api/src/main/java/org/apache/karaf/cave/server/api/CaveRepositoryService.java
@@ -25,45 +25,60 @@ import javax.ws.rs.*;
public interface CaveRepositoryService {
/**
- * Create a new Karaf Cave repository.
+ * Create a Cave repository.
*
* @param name the name of the repository
- * @param scan if true, the repository is scanned at creation time.
- * @return the Karaf Cave repository.
+ * @param scan if true, the repository is scanned at creation time, and the OBR metadata are created.
+ * @return the Cave repository.
* @throws Exception in case of creation failure.
*/
@POST
@Consumes("application/xml")
@Produces("application/xml")
- CaveRepository createRepository(String name, boolean scan) throws Exception;
+ CaveRepository create(String name, boolean scan) throws Exception;
/**
- * Create a new Karaf Cave repository.
+ * Create a Cave repository.
*
* @param name the name of the repository.
* @param location the storage location of the repository.
- * @param scan if true, the repository is scanned at creation time.
- * @return the Karaf Cave repository.
+ * @param scan if true, the repository is scanned at creation time, and the OBR metadata are created.
+ * @return the Cave repository.
* @throws Exception in case of creation failure.
*/
@POST
@Consumes("application/xml")
@Produces("application/xml")
- CaveRepository createRepository(String name, String location, boolean scan) throws Exception;
+ CaveRepository create(String name, String location, boolean scan) throws Exception;
/**
- * Uninstall (remove) an existing Karaf Cave repository from the OBR registry.
- * NB: the Karaf Cave repository storage is not removed.
+ * Uninstall a Cave repository from the OBR service.
*
- * @param name the name of Karaf Cave repository to remove.
- * @throws Exception in case of remove failure.
+ * @param name the name of the repository.
+ * @throws Exception in case of uninstall failure.
*/
void uninstall(String name) throws Exception;
/**
- * Install (register) a Karaf Cave repository into the OBR registry.
+ * Remove a Cave repository from the repositories registry.
+ *
+ * @param name the name of the repository.
+ * @throws Exception in case of remove failure.
+ */
+ void remove(String name) throws Exception;
+
+ /**
+ * Destroy a Cave repository, including the storage.
+ *
+ * @param name the name of the repository.
+ * @throws Exception incase of remove failure.
+ */
+ void destroy(String name) throws Exception;
+
+ /**
+ * Install a Cave repository into the OBR service.
*
- * @param name the name of the Karaf Cave repository.
+ * @param name the name of the Cave repository.
* @throws Exception in case of registration failure.
*/
@POST
@@ -71,9 +86,9 @@ public interface CaveRepositoryService {
void install(String name) throws Exception;
/**
- * Get the list of all Karaf Cave repositories.
+ * Get the list of all Cave repositories.
*
- * @return the Karaf Cave repositories.
+ * @return the Cave repositories.
*/
@GET
@Path("/repositories")
@@ -81,10 +96,10 @@ public interface CaveRepositoryService {
CaveRepository[] getRepositories();
/**
- * Get the Karaf Cave repository identified by the given name.
+ * Get a Cave repository identified by the given name.
*
- * @param name the name of the Karaf Cave repository to look for.
- * @return the Karaf Cave repository
+ * @param name the name of the Cave repository.
+ * @return the Cave repository
*/
@GET
@Path("/repositories/{name}")
http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/f740a191/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 d159f7b..2a4ebce 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
@@ -45,9 +45,9 @@ public class RepositoryCreateCommand extends CaveRepositoryCommandSupport {
return null;
}
if (location != null) {
- getCaveRepositoryService().createRepository(name, location, false);
+ getCaveRepositoryService().create(name, location, false);
} else {
- getCaveRepositoryService().createRepository(name, false);
+ getCaveRepositoryService().create(name, false);
}
CaveRepository caveRepository = getCaveRepositoryService().getRepository(name);
if (!noOBRGenerate) {
http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/f740a191/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/CaveRepositoryMBeanImpl.java
----------------------------------------------------------------------
diff --git a/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/CaveRepositoryMBeanImpl.java b/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/CaveRepositoryMBeanImpl.java
index f4c1d47..40979b1 100644
--- a/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/CaveRepositoryMBeanImpl.java
+++ b/server/management/src/main/java/org/apache/karaf/cave/server/management/internal/CaveRepositoryMBeanImpl.java
@@ -65,7 +65,7 @@ public class CaveRepositoryMBeanImpl extends StandardMBean implements CaveReposi
}
public void createRepository(String name) throws Exception {
- caveRepositoryService.createRepository(name, true);
+ caveRepositoryService.create(name, true);
}
public void removeRepository(String name) throws Exception {
http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/f740a191/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryImpl.java
----------------------------------------------------------------------
diff --git a/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryImpl.java b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryImpl.java
index 987ecac..468ce65 100644
--- a/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryImpl.java
+++ b/server/storage/src/main/java/org/apache/karaf/cave/server/storage/CaveRepositoryImpl.java
@@ -41,7 +41,7 @@ import java.io.OutputStreamWriter;
import java.net.URL;
/**
- * Default implementation of a Karaf Cave repository.
+ * Default implementation of a Cave repository.
*/
public class CaveRepositoryImpl extends CaveRepository {
@@ -65,11 +65,11 @@ public class CaveRepositoryImpl extends CaveRepository {
* Check if the repository folder exists and create it if not.
*/
private void createRepositoryDirectory() throws Exception {
- LOGGER.debug("Create Karaf Cave repository {} folder.", this.getName());
+ LOGGER.debug("Create Cave repository {} folder.", this.getName());
File locationFile = new File(this.getLocation());
if (!locationFile.exists()) {
locationFile.mkdirs();
- LOGGER.debug("Karaf Cave repository {} location has been created.", this.getName());
+ LOGGER.debug("Cave repository {} location has been created.", this.getName());
LOGGER.debug(locationFile.getAbsolutePath());
}
obrRepository = new RepositoryImpl();
@@ -179,7 +179,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Proxy an URL (by adding repository.xml OBR information) in the Karaf Cave repository.
+ * Proxy an URL (by adding repository.xml OBR information) in the Cave repository.
*
* @param url the URL to proxyFilesystem. the URL to proxyFilesystem.
* @param filter regex filter. Only artifacts URL matching the filter will be considered.
@@ -199,7 +199,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Proxy an URL (by adding repository.xml OBR information) in the Karaf Cave repository.
+ * Proxy an URL (by adding repository.xml OBR information) in the Cave repository.
*
* @param url the URL to proxy.
* @throws Exception
@@ -288,7 +288,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Populate an URL into the Karaf Cave repository, and eventually update the OBR information.
+ * Populate an URL into the Cave repository, and eventually update the OBR information.
*
* @param url the URL to copy.
* @param filter regex filter. Only artifacts URL matching the filter will be considered.
@@ -297,12 +297,12 @@ public class CaveRepositoryImpl extends CaveRepository {
*/
public void populate(URL url, String filter, boolean update) throws Exception {
if (url.getProtocol().equals("file")) {
- // populate the Karaf Cave repository from a filesystem folder
+ // populate the Cave repository from a filesystem folder
File populateFolder = new File(url.toURI());
this.populateFromFilesystem(populateFolder, filter, update);
}
if (url.getProtocol().equals("http")) {
- // populate the Karaf Cave repository from a HTTP URL
+ // populate the Cave repository from a HTTP URL
this.populateFromHttp(url.toExternalForm(), filter, update);
}
if (update) {
@@ -311,7 +311,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Populate an URL into the Karaf Cave repository, and eventually update the OBR information.
+ * Populate an URL into the Cave repository, and eventually update the OBR information.
*
* @param url the URL to copy.
* @param update if true the OBR information is updated, false else.
@@ -322,7 +322,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Populate the Karaf Cave repository using a filesystem directory.
+ * Populate the Cave repository using a filesystem directory.
*
* @param filesystem the "source" directory.
* @param filter regex filter. Only artifacts URL matching the filter will be considered.
@@ -359,7 +359,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Populate the Karaf Cave repository using the given URL.
+ * Populate the Cave repository using the given URL.
*
* @param url the "source" HTTP URL.
* @param filter regex filter. Only artifacts URL matching the filter will be considered.
@@ -382,7 +382,7 @@ public class CaveRepositoryImpl extends CaveRepository {
if ((filter == null) || (url.matches(filter))) {
ResourceImpl resource = (ResourceImpl) new DataModelHelperImpl().createResource(new URL(url));
if (resource != null) {
- LOGGER.debug("Copy {} into the Karaf Cave repository storage", url);
+ LOGGER.debug("Copy {} into the Cave repository storage", url);
int index = url.lastIndexOf("/");
if (index > 0) {
url = url.substring(index);
@@ -422,7 +422,7 @@ public class CaveRepositoryImpl extends CaveRepository {
* Convert the Resource absolute URI to an URI relative to the repository one.
*
* @param resource the Resource to manipulate.
- * @throws Exception in cave of URI convertion failure.
+ * @throws Exception in cave of URI conversion failure.
*/
private void useResourceRelativeUri(ResourceImpl resource) throws Exception {
String resourceURI = resource.getURI();
@@ -452,7 +452,7 @@ public class CaveRepositoryImpl extends CaveRepository {
}
/**
- * Return the OBR repository.xml corresponding to this Karaf Cave repository.
+ * Return the OBR repository.xml corresponding to this Cave repository.
*
* @return the URL of the OBR repository.xml.
* @throws Exception in case of lookup failure.
http://git-wip-us.apache.org/repos/asf/karaf-cave/blob/f740a191/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 6097f70..4d6c82e 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
@@ -28,7 +28,7 @@ import java.util.Map;
import java.util.Properties;
/**
- * Default implementation of the Cave Repository Service.
+ * Default implementation of the CaveRepositoryService.
*/
public class CaveRepositoryServiceImpl implements CaveRepositoryService {
@@ -58,28 +58,28 @@ public class CaveRepositoryServiceImpl implements CaveRepositoryService {
}
/**
- * Create a new Karaf Cave repository.
+ * Create a Cave repository.
*
* @param name the name of the repository
* @param scan if true, the repository is scanned at creation time.
- * @return the Karaf Cave repository.
+ * @return the Cave repository.
* @throws Exception in case of creation failure.
*/
- public synchronized CaveRepository createRepository(String name, boolean scan) throws Exception {
+ public synchronized CaveRepository create(String name, boolean scan) throws Exception {
File location = new File(storageLocation, name);
- return this.createRepository(name, location.getAbsolutePath(), scan);
+ return this.create(name, location.getAbsolutePath(), scan);
}
/**
- * Create a new Karaf Cave repository.
+ * Create a Cave repository.
*
* @param name the name of the repository.
* @param location the storage location of the repository.
- * @param scan if true, the repostory is scanned at creation time.
- * @return the Karaf Cave repository.
+ * @param scan if true, the repository is scanned at creation time.
+ * @return the Cave repository.
* @throws Exception in case of creation failure.
*/
- public synchronized CaveRepository createRepository(String name, String location, boolean scan) throws Exception {
+ public synchronized CaveRepository create(String name, String location, boolean scan) throws Exception {
if (repositories.get(name) != null) {
throw new IllegalArgumentException("Cave repository " + name + " already exists");
}
@@ -90,52 +90,78 @@ public class CaveRepositoryServiceImpl implements CaveRepositoryService {
}
/**
- * Uninstall (remove) a Karaf Cave repository from the repositories registry.
+ * Uninstall a Cave repository from the repositories registry.
*
- * @param name the name of Karaf Cave repository to remove.
+ * @param name the name of Cave repository to remove.
* @throws Exception in case of remove failure.
*/
public synchronized void uninstall(String name) throws Exception {
CaveRepository repository = this.getRepository(name);
- if (repository != null) {
- repositoryAdmin.removeRepository(repository.getRepositoryXml().toString());
- repositories.remove(name);
- save();
- } else {
- throw new IllegalArgumentException("Cave repository " + name + " not found");
+ if (repository == null) {
+ throw new IllegalArgumentException("Cave repository " + name + " doesn't exist");
+ }
+ repositoryAdmin.removeRepository(repository.getRepositoryXml().toString());
+ save();
+ }
+
+ /**
+ * Remove a Cave repository from the repositories registry.
+ * @param name the name of the repository.
+ * @throws Exception
+ */
+ public synchronized void remove(String name) throws Exception {
+ CaveRepository repository = this.getRepository(name);
+ if (repository == null) {
+ throw new IllegalArgumentException("Cave repository " + name + " doesn't exist");
+ }
+ repositories.remove(name);
+ }
+
+ /**
+ * Destroy a Cave repository. It removes the repository from the repositories registry
+ * and cleanup the repository storage.
+ *
+ * @param name the name of the repository.
+ * @throws Exception
+ */
+ public synchronized void destroy(String name) throws Exception {
+ CaveRepository repository = this.getRepository(name);
+ if (repository == null) {
+ throw new IllegalArgumentException("Cave repository " + name + " doesn't exist");
}
+ repositories.remove(name);
+ repository.cleanup();
}
/**
- * Install (register) a Karaf Cave repository in the OBR service.
+ * Install a Cave repository in the OBR service.
* NB: this method allows refresh the repository in the OBR "client".
*
- * @param name the name of the Karaf Cave repository.
+ * @param name the name of the Cave repository.
* @throws Exception in case of registration failure.
*/
public synchronized void install(String name) throws Exception {
CaveRepository caveRepository = this.getRepository(name);
- if (caveRepository != null) {
- repositoryAdmin.addRepository(caveRepository.getRepositoryXml());
- } else {
- throw new IllegalArgumentException("Cave repository " + name + " not found");
+ if (caveRepository == null) {
+ throw new IllegalArgumentException("Cave repository " + name + " doesn't exist");
}
+ repositoryAdmin.addRepository(caveRepository.getRepositoryXml());
}
/**
- * Get the list of all Karaf Cave repositories.
+ * Get the list of all Cave repositories.
*
- * @return the list of all Karaf Cave repositories.
+ * @return the list of all Cave repositories.
*/
public synchronized CaveRepository[] getRepositories() {
return repositories.values().toArray(new CaveRepository[0]);
}
/**
- * Get the Karaf Cave repository identified by name.
+ * Get the Cave repository identified by name.
*
- * @param name the name of the Karaf Cave repository to look for.
- * @return the corresponding Karaf Cave repository.
+ * @param name the name of the Cave repository to look for.
+ * @return the corresponding Cave repository.
*/
public synchronized CaveRepository getRepository(String name) {
return repositories.get(name);
@@ -152,7 +178,7 @@ public class CaveRepositoryServiceImpl implements CaveRepositoryService {
storage.setProperty("item." + i + ".name", repositories[i].getName());
storage.setProperty("item." + i + ".location", repositories[i].getLocation());
}
- saveStorage(storage, new File(storageLocation, STORAGE_FILE), "Karaf Cave Service storage");
+ saveStorage(storage, new File(storageLocation, STORAGE_FILE), "Cave Service storage");
}
/**