From 8dce0df4d1148c9eec73ec1df4a0b770fe68bc68 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Mon, 6 May 2013 23:19:32 -0300 Subject: [PATCH] Reverted InstallRequestImpl changes --- .../manager/impl/InstallRequestImpl.java | 94 ++++++------------- 1 file changed, 31 insertions(+), 63 deletions(-) diff --git a/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/InstallRequestImpl.java b/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/InstallRequestImpl.java index f73785ed55..054fb65f3d 100644 --- a/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/InstallRequestImpl.java +++ b/addon-manager/impl/src/main/java/org/jboss/forge/addon/manager/impl/InstallRequestImpl.java @@ -26,6 +26,7 @@ import org.jboss.forge.container.repositories.AddonDependencyEntry; import org.jboss.forge.container.repositories.AddonRepository; import org.jboss.forge.container.repositories.MutableAddonRepository; +import org.jboss.forge.container.util.Assert; import org.jboss.forge.container.util.Predicate; import org.jboss.forge.dependencies.Coordinate; import org.jboss.forge.dependencies.DependencyNode; @@ -34,9 +35,9 @@ /** * When an addon is installed, another addons could be required. This object returns the necessary information for the * installation of an addon to succeed, like required addons and dependencies - * + * * @author George Gastaldi - * + * */ public class InstallRequestImpl implements InstallRequest { @@ -51,7 +52,7 @@ public class InstallRequestImpl implements InstallRequest /** * Package-access constructor. Only AddonManager should be allowed to call this constructor. - * + * * @param addonManager */ InstallRequestImpl(AddonManager addonManager, Forge forge, DependencyNode requestedAddonNode) @@ -103,34 +104,29 @@ public List getRequiredAddons() @Override public void perform() { - forge.getLockManager().performLocked(LockMode.WRITE, new Callable() + forge.getLockManager().performLocked(LockMode.WRITE, new Callable() { @Override - public Void call() throws Exception + public AddonId call() throws Exception { for (DependencyNode requiredAddon : getRequiredAddons()) { AddonId requiredAddonId = toAddonId(requiredAddon); - AddonRepository deployed = null; + boolean deployed = false; for (AddonRepository repository : forge.getRepositories()) { if (repository.isDeployed(requiredAddonId)) { - log.info("Addon " + requiredAddonId + " is already deployed."); - deployed = repository; + log.info("Addon " + requiredAddonId + " is already deployed. Skipping..."); + deployed = true; break; } } - if (deployed == null) + if (!deployed) { addonManager.install(requiredAddonId).perform(); } - else if (requiredAddon.getDependency().getCoordinate().isSnapshot()) - { - log.info("Re-installing Addon SNAPSHOT " + requiredAddonId + "."); - addonManager.install(requiredAddonId).perform(deployed); - } } AddonId requestedAddonId = toAddonId(requestedAddonNode); @@ -145,7 +141,7 @@ else if (requiredAddon.getDependency().getCoordinate().isSnapshot()) break; } } - return null; + return requestedAddonId; } }); } @@ -153,51 +149,41 @@ else if (requiredAddon.getDependency().getCoordinate().isSnapshot()) @Override public void perform(final AddonRepository target) { - forge.getLockManager().performLocked(LockMode.WRITE, new Callable() + Assert.isTrue(!(target instanceof MutableAddonRepository), "Addon repository [" + + target.getRootDirectory().getAbsolutePath() + + "] is not writable."); + + forge.getLockManager().performLocked(LockMode.WRITE, new Callable() { @Override - public Void call() throws Exception + public AddonId call() throws Exception { for (DependencyNode requiredAddon : getRequiredAddons()) { AddonId requiredAddonId = toAddonId(requiredAddon); - - AddonRepository deployed = null; + boolean deployed = false; for (AddonRepository repository : forge.getRepositories()) { if (repository.isDeployed(requiredAddonId)) { - log.info("Addon " + requiredAddonId + " is already deployed."); - deployed = repository; + log.info("Addon " + requiredAddonId + " is already deployed. Skipping..."); + deployed = true; break; } } - if (deployed == null) + if (!deployed) { - addonManager.install(requiredAddonId).perform(); - } - else if (requiredAddon.getDependency().getCoordinate().isSnapshot()) - { - log.info("Re-installing Addon SNAPSHOT " + requiredAddonId + "."); - addonManager.install(requiredAddonId).perform(deployed); + addonManager.install(requiredAddonId).perform(target); } } AddonId requestedAddonId = toAddonId(requestedAddonNode); - if (target instanceof MutableAddonRepository) - { - MutableAddonRepository mutableRespository = (MutableAddonRepository) target; - deploy(mutableRespository, requestedAddonId, requestedAddonNode); - mutableRespository.enable(requestedAddonId); - } - else - { - throw new IllegalArgumentException("Addon repository [" + target.getRootDirectory().getAbsolutePath() - + "] is not writable."); - } - return null; + MutableAddonRepository mutableRepository = (MutableAddonRepository) target; + deploy(mutableRepository, requestedAddonId, requestedAddonNode); + mutableRepository.enable(requestedAddonId); + return requestedAddonId; } }); } @@ -226,13 +212,13 @@ public boolean accept(DependencyNode node) return AddonId.from(coord.getGroupId() + ":" + coord.getArtifactId(), coord.getVersion(), apiVersion); } - private void deploy(MutableAddonRepository repository, AddonId addonId, DependencyNode root) + private void deploy(MutableAddonRepository repository, AddonId addon, DependencyNode root) { List resourceJars = toResourceJars(DependencyNodeUtil.select(root, new LocalResourceFilter(root))); if (resourceJars.isEmpty()) { - log.fine("No resource JARs found for " + addonId); + log.fine("No resource JARs found for " + addon); } List addonDependencies = toAddonDependencies(DependencyNodeUtil @@ -240,28 +226,10 @@ private void deploy(MutableAddonRepository repository, AddonId addonId, Dependen if (addonDependencies.isEmpty()) { - log.fine("No dependencies found for addon " + addonId); - } - - boolean deploy = true; - if (repository.isDeployed(addonId)) - { - if (root.getDependency().getCoordinate().isSnapshot()) - { - log.fine("Removing previous deployment of " + addonId); - repository.undeploy(addonId); - } - else - { - deploy = false; - } - } - - if (deploy) - { - log.info("Deploying addon " + addonId); - repository.deploy(addonId, addonDependencies, resourceJars); + log.fine("No dependencies found for addon " + addon); } + log.info("Deploying addon " + addon); + repository.deploy(addon, addonDependencies, resourceJars); } private List toAddonDependencies(List dependencies)