Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 24052 invoked from network); 17 Jan 2008 07:54:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Jan 2008 07:54:49 -0000 Received: (qmail 15720 invoked by uid 500); 17 Jan 2008 07:54:38 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 15678 invoked by uid 500); 17 Jan 2008 07:54:38 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 15667 invoked by uid 99); 17 Jan 2008 07:54:38 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Jan 2008 23:54:38 -0800 X-ASF-Spam-Status: No, hits=-98.0 required=10.0 tests=ALL_TRUSTED,URIBL_BLACK X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Jan 2008 07:54:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id ED0971A983A; Wed, 16 Jan 2008 23:54:27 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r612745 - in /geronimo/server/trunk: framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/ framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/ framework/modules/geronimo-... Date: Thu, 17 Jan 2008 07:54:24 -0000 To: scm@geronimo.apache.org From: djencks@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080117075427.ED0971A983A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Wed Jan 16 23:54:17 2008 New Revision: 612745 URL: http://svn.apache.org/viewvc?rev=612745&view=rev Log: GERONIMO-3754 Add name/pw to sourceRepositoryFactory. Fix some problems with patch re trying to install already-installed plugins Modified: geronimo/server/trunk/framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/CommandInstallCAR.java geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/MissingDependencyException.java geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadPoller.java geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadResults.java geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/RemoteSourceRepository.java geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/SourceRepositoryFactory.java geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java Modified: geronimo/server/trunk/framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/CommandInstallCAR.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/CommandInstallCAR.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/CommandInstallCAR.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-deploy-tool/src/main/java/org/apache/geronimo/deployment/cli/CommandInstallCAR.java Wed Jan 16 23:54:17 2008 @@ -57,8 +57,8 @@ DownloadResults results = showProgress(consoleReader, mgr, key); int time = (int)(System.currentTimeMillis() - start) / 1000; printResults(consoleReader, results, time); - if(results.isFinished() && !results.isFailed() && results.getInstalledConfigIDs().length == 1) { - Artifact target = results.getInstalledConfigIDs()[0]; + if(results.isFinished() && !results.isFailed() && results.getInstalledConfigIDs().size() == 1) { + Artifact target = results.getInstalledConfigIDs().get(0); consoleReader.printString(DeployUtils.reformat("Now starting "+target+"...", 4, 72)); consoleReader.flushConsole(); new CommandStart().execute(consoleReader, connection, new BaseCommandArgs(new String[]{target.toString()})); @@ -107,13 +107,11 @@ if (!results.isFailed()) { DeployUtils.println("**** Installation Complete!", 0, consoleReader); - for (int i = 0; i < results.getDependenciesPresent().length; i++) { - Artifact uri = results.getDependenciesPresent()[i]; + for (Artifact uri: results.getDependenciesPresent()) { DeployUtils.println("Used existing: " + uri, 0, consoleReader); } - for (int i = 0; i < results.getDependenciesInstalled().length; i++) { - Artifact uri = results.getDependenciesInstalled()[i]; + for (Artifact uri: results.getDependenciesInstalled()) { DeployUtils.println("Installed new: " + uri, 0, consoleReader); } Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/MissingDependencyException.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/MissingDependencyException.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/MissingDependencyException.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/repository/MissingDependencyException.java Wed Jan 16 23:54:17 2008 @@ -18,6 +18,7 @@ package org.apache.geronimo.kernel.repository; import java.util.Stack; +import java.io.Serializable; import org.apache.geronimo.gbean.AbstractNameQuery; @@ -25,6 +26,7 @@ * @version $Rev$ $Date$ */ public class MissingDependencyException extends Exception { + private static final long serialVersionUID = -2557777157677213124L; private Artifact query; private Stack stack; Modified: geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadPoller.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadPoller.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadPoller.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadPoller.java Wed Jan 16 23:54:17 2008 @@ -17,6 +17,7 @@ package org.apache.geronimo.system.plugin; import org.apache.geronimo.kernel.repository.Artifact; +import org.apache.geronimo.kernel.repository.MissingDependencyException; /** * An interface for callers who want to monitor the progress of an installation. @@ -49,6 +50,12 @@ * was installed. */ void addRestartedConfigID(Artifact target); + + /** + * Provides details on why a plugin was not installed. + * @param e MissingDependencyException containing info on + */ + void addSkippedConfigID(MissingDependencyException e); /** * Notes that the current install operation found a dependency, and that Modified: geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadResults.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadResults.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadResults.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/DownloadResults.java Wed Jan 16 23:54:17 2008 @@ -19,7 +19,10 @@ import java.io.Serializable; import java.util.List; import java.util.ArrayList; +import java.util.Collections; + import org.apache.geronimo.kernel.repository.Artifact; +import org.apache.geronimo.kernel.repository.MissingDependencyException; /** * Provides the results of a configuration download operation. This is updated @@ -33,6 +36,7 @@ private List installedConfigIDs = new ArrayList(); private List dependenciesPresent = new ArrayList(); private List dependenciesInstalled = new ArrayList(); + private List skippedPlugins = new ArrayList(); private String currentFile; private String currentMessage; private int currentFileProgress = -1; @@ -68,6 +72,10 @@ restartedConfigIDs.add(target); } + public void addSkippedConfigID(MissingDependencyException e) { + skippedPlugins.add(e); + } + public synchronized void addDependencyPresent(Artifact dep) { dependenciesPresent.add(dep); } @@ -130,32 +138,36 @@ * request passed previously downloaded configurations on the command * line and the caller doesn't know what the Config IDs are. */ - public Artifact[] getInstalledConfigIDs() { - return installedConfigIDs.toArray(new Artifact[installedConfigIDs.size()]); + public List getInstalledConfigIDs() { + return Collections.unmodifiableList(installedConfigIDs); + } + + public List getRemovedConfigIDs() { + return Collections.unmodifiableList(removedConfigIDs); } - public Artifact[] getRemovedConfigIDs() { - return (Artifact[]) removedConfigIDs.toArray(new Artifact[installedConfigIDs.size()]); + public List getRestartedConfigIDs() { + return Collections.unmodifiableList(restartedConfigIDs); } - public Artifact[] getRestartedConfigIDs() { - return (Artifact[]) restartedConfigIDs.toArray(new Artifact[installedConfigIDs.size()]); + public List getSkippedPlugins() { + return Collections.unmodifiableList(skippedPlugins); } /** * Gets the dependencies that we've needed but they're already present in * the local server so no installation was necessary. */ - public Artifact[] getDependenciesPresent() { - return (Artifact[]) dependenciesPresent.toArray(new Artifact[dependenciesPresent.size()]); + public List getDependenciesPresent() { + return Collections.unmodifiableList(dependenciesPresent); } /** * Gets the dependencies that we've successfully downloaded and installed * into the local server environment. */ - public Artifact[] getDependenciesInstalled() { - return (Artifact[]) dependenciesInstalled.toArray(new Artifact[dependenciesInstalled.size()]); + public List getDependenciesInstalled() { + return Collections.unmodifiableList(dependenciesInstalled); } /** Modified: geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java Wed Jan 16 23:54:17 2008 @@ -503,7 +503,7 @@ */ public PluginListType listPlugins(URL mavenRepository, String username, String password) throws IOException, FailedLoginException { try { - SourceRepository repo = SourceRepositoryFactory.getSourceRepository(mavenRepository.toString()); + SourceRepository repo = SourceRepositoryFactory.getSourceRepository(mavenRepository.toString(), username, password); return repo.getPluginList(); } catch (IllegalStateException e) { return null; @@ -560,19 +560,25 @@ try { Map metaMap = new HashMap(); // Step 1: validate everything + List toInstall = new ArrayList(); for (PluginType metadata : pluginsToInstall.getPlugin()) { - validatePlugin(metadata); - verifyPrerequisites(metadata); - - PluginArtifactType instance = metadata.getPluginArtifact().get(0); + try { + validatePlugin(metadata); + verifyPrerequisites(metadata); - if (instance.getModuleId() != null) { - metaMap.put(toArtifact(instance.getModuleId()), metadata); + PluginArtifactType instance = metadata.getPluginArtifact().get(0); + + if (instance.getModuleId() != null) { + metaMap.put(toArtifact(instance.getModuleId()), metadata); + } + toInstall.add(metadata); + } catch (MissingDependencyException e) { + //ignore } } // Step 2: everything is valid, do the installation - for (PluginType metadata : pluginsToInstall.getPlugin()) { + for (PluginType metadata : toInstall) { // 2. Unload obsoleted configurations PluginArtifactType instance = metadata.getPluginArtifact().get(0); List obsoletes = new ArrayList(); @@ -804,13 +810,13 @@ */ public void validatePlugin(PluginType plugin) throws MissingDependencyException { if (plugin.getPluginArtifact().size() != 1) { - throw new IllegalArgumentException("A plugin configuration must include one plugin artifact, not " + plugin.getPluginArtifact().size()); + throw new MissingDependencyException("A plugin configuration must include one plugin artifact, not " + plugin.getPluginArtifact().size(), null, (Stack) null); } PluginArtifactType metadata = plugin.getPluginArtifact().get(0); - // 1. Check that it's not already running + // 1. Check that it's not already installed if (metadata.getModuleId() != null) { // that is, it's a real configuration not a plugin list Artifact artifact = toArtifact(metadata.getModuleId()); - if (configManager.isRunning(artifact)) { + if (configManager.isInstalled(artifact)) { boolean upgrade = false; for (ArtifactType obsolete : metadata.getObsoletes()) { Artifact test = toArtifact(obsolete); @@ -820,9 +826,9 @@ } } if (!upgrade) { - log.info("Configuration " + artifact + " is already running."); - throw new IllegalArgumentException( - "Configuration " + artifact + " is already running."); + log.info("Configuration " + artifact + " is already installed."); + throw new MissingDependencyException( + "Configuration " + artifact + " is already installed.", toArtifact(metadata.getModuleId()), (Stack) null); } } } Modified: geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/RemoteSourceRepository.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/RemoteSourceRepository.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/RemoteSourceRepository.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/RemoteSourceRepository.java Wed Jan 16 23:54:17 2008 @@ -60,25 +60,30 @@ private String username = null; private String password = null; - public RemoteSourceRepository(URI base) { + public RemoteSourceRepository(URI base, String username, String password) { if (!base.getPath().endsWith("/")) { throw new IllegalArgumentException("base uri must end with '/', not " + base); } this.base = base; + this.username = username; + this.password = password; } public PluginListType getPluginList() { try { URL uri = base.resolve("geronimo-plugins.xml").toURL(); - InputStream in = uri.openStream(); - try { - return PluginXmlUtil.loadPluginList(in); - } finally { - in.close(); + InputStream in = openStream(null, uri); + if (in != null) { + try { + return PluginXmlUtil.loadPluginList(in); + } finally { + in.close(); + } } } catch (Exception e) { - return null; + // TODO: log it? } + return null; } public OpenResult open(Artifact artifact, FileWriteMonitor monitor) throws IOException, FailedLoginException { Modified: geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/SourceRepositoryFactory.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/SourceRepositoryFactory.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/SourceRepositoryFactory.java (original) +++ geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/SourceRepositoryFactory.java Wed Jan 16 23:54:17 2008 @@ -22,7 +22,6 @@ import java.io.File; import java.net.URI; -import java.net.URISyntaxException; /** * @version $Rev$ $Date$ @@ -32,6 +31,10 @@ } public static SourceRepository getSourceRepository(String repo) { + return getSourceRepository(repo, null, null); + } + + public static SourceRepository getSourceRepository(String repo, String user, String pass) { if (repo == null) { throw new IllegalArgumentException("No repo supplied"); } @@ -41,7 +44,7 @@ } String scheme = repoURI.getScheme(); if (scheme.startsWith("http")) { - return new RemoteSourceRepository(repoURI); + return new RemoteSourceRepository(repoURI, user, pass); } else if ("file".equals(scheme)) { return new LocalSourceRepository(new File(repoURI)); } Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java?rev=612745&r1=612744&r2=612745&view=diff ============================================================================== --- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java (original) +++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java Wed Jan 16 23:54:17 2008 @@ -18,16 +18,16 @@ import java.io.IOException; import java.io.Serializable; -import java.util.List; import java.util.ArrayList; +import java.util.List; + import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletException; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; + import org.apache.geronimo.console.MultiPageModel; import org.apache.geronimo.kernel.repository.Artifact; import org.apache.geronimo.system.plugin.DownloadResults; @@ -38,7 +38,6 @@ * @version $Rev$ $Date$ */ public class DownloadStatusHandler extends BaseImportExportHandler { - private final static Log log = LogFactory.getLog(DownloadStatusHandler.class); public DownloadStatusHandler() { super(DOWNLOAD_STATUS_MODE, "/WEB-INF/view/car/downloadStatus.jsp"); @@ -72,13 +71,11 @@ if(results.isFailed()) { throw new PortletException("Unable to install configuration", results.getFailure()); } - List dependencies = new ArrayList(); - for (int i = 0; i < results.getDependenciesInstalled().length; i++) { - Artifact uri = results.getDependenciesInstalled()[i]; + List dependencies = new ArrayList(); + for (Artifact uri: results.getDependenciesInstalled()) { dependencies.add(new InstallResults(uri.toString(), "installed")); } - for (int i = 0; i < results.getDependenciesPresent().length; i++) { - Artifact uri = results.getDependenciesPresent()[i]; + for (Artifact uri: results.getDependenciesPresent()) { dependencies.add(new InstallResults(uri.toString(), "already present")); } request.getPortletSession(true).setAttribute("car.install.results", dependencies); @@ -91,6 +88,7 @@ } public static class InstallResults implements Serializable { + private static final long serialVersionUID = -3745382506085182610L; private String name; private String action;