David, I posted a comment to the JIRA (GERONIMO-4318), please review. Thanks
Lin On Fri, Sep 26, 2008 at 2:07 PM, Lin Sun <[EMAIL PROTECTED]> wrote: > Cool - I am running a full build to check them out. > > thanks > > Lin > > On Fri, Sep 26, 2008 at 1:26 PM, David Jencks <[EMAIL PROTECTED]> wrote: >> >> On Sep 26, 2008, at 9:11 AM, David Jencks wrote: >> >>> >>> On Sep 26, 2008, at 7:55 AM, Lin Sun wrote: >>> >>>> David, thanks for adding this to keep track of what plugins have been >>>> installed on the server. >>>> >>>> I think there is a prob with the change. In InstallModulesMojo.java, >>>> as it set installedPluginsList as null. I think this would cause all >>>> the plugins that came with the server assembly during build time >>>> (using c-m-p) not recorded, as saveHistory and loadHistory only handle >>>> cases when installedPluginList is not null. >>> >>> I agree. >>>> >>>> >>>> Also, in PluginInstallerGBean.java, I don't see anywhere you specify >>>> where we set the default location of the installedPluginsList file to >>>> "var/config/installedPlugins.properties"... I only see that in the >>>> two test files. >>> >>> I forgot to configure this in the plan. >>> >> >> I think I got these fixed in rev 699420. In my farm example the nodes seem >> to be tracking what has been installed properly, and the c-m-p assembly >> seems to be recording what was installed. >> >> thanks again >> david jencks >> >>> thanks for noticing these problems! >>> david jencks >>> >>>> >>>> >>>> Lin >>>> >>>> On Fri, Sep 26, 2008 at 3:26 AM, <[EMAIL PROTECTED]> wrote: >>>>> >>>>> Author: djencks >>>>> Date: Fri Sep 26 00:26:53 2008 >>>>> New Revision: 699202 >>>>> >>>>> URL: http://svn.apache.org/viewvc?rev=699202&view=rev >>>>> Log: >>>>> GERONIMO-4318 try to indicate when plugins have been installed in the >>>>> current server, irrespective of whether they are in the repos >>>>> >>>>> Modified: >>>>> >>>>> >>>>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java >>>>> >>>>> >>>>> geronimo/server/trunk/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java >>>>> >>>>> >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstaller.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/test/java/org/apache/geronimo/system/plugin/CopyFileTest.java >>>>> >>>>> >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java >>>>> >>>>> >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/AbstractListHandler.java >>>>> >>>>> >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/buildsupport/car-maven-plugin/src/main/java/org/apache/geronimo/mavenplugins/car/InstallModulesMojo.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -162,7 +162,7 @@ >>>>> Kernel kernel = new BasicKernel("Assembly"); >>>>> PluginRepositoryList pluginRepoList = new >>>>> PluginRepositoryDownloader(Collections.singletonMap(localRepo, (String[]) >>>>> null), true); >>>>> try { >>>>> - PluginInstallerGBean installer = new >>>>> PluginInstallerGBean(targetRepositoryPath, targetServerPath, servers, >>>>> pluginRepoList, kernel, getClass().getClassLoader()); >>>>> + PluginInstallerGBean installer = new >>>>> PluginInstallerGBean(targetRepositoryPath, targetServerPath, null, >>>>> servers, >>>>> pluginRepoList, kernel, getClass().getClassLoader()); >>>>> installer.install(pluginList, sourceRepo, true, null, null, >>>>> downloadPoller); >>>>> if (overrides != null) { >>>>> for (Override override: this.overrides) { >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/framework/modules/geronimo-deploy-jsr88/src/main/java/org/apache/geronimo/deployment/plugin/jmx/RemoteDeploymentManager.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -189,10 +189,10 @@ >>>>> } >>>>> } >>>>> >>>>> - public void validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException { >>>>> + public boolean validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException { >>>>> PluginInstaller installer = getPluginInstaller(); >>>>> try { >>>>> - installer.validatePlugin(plugin); >>>>> + return installer.validatePlugin(plugin); >>>>> } finally { >>>>> kernel.getProxyManager().destroyProxy(installer); >>>>> } >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstaller.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstaller.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstaller.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/main/java/org/apache/geronimo/system/plugin/PluginInstaller.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -21,12 +21,14 @@ >>>>> import java.net.URL; >>>>> import java.util.Map; >>>>> import javax.security.auth.login.FailedLoginException; >>>>> -import org.apache.geronimo.kernel.repository.Artifact; >>>>> -import org.apache.geronimo.kernel.repository.Dependency; >>>>> -import >>>>> org.apache.geronimo.kernel.repository.MissingDependencyException; >>>>> + >>>>> +import >>>>> org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException; >>>>> import org.apache.geronimo.kernel.config.ConfigurationManager; >>>>> import org.apache.geronimo.kernel.config.NoSuchStoreException; >>>>> import org.apache.geronimo.kernel.InvalidGBeanException; >>>>> +import org.apache.geronimo.kernel.repository.Artifact; >>>>> +import org.apache.geronimo.kernel.repository.Dependency; >>>>> +import >>>>> org.apache.geronimo.kernel.repository.MissingDependencyException; >>>>> import org.apache.geronimo.system.plugin.model.PluginListType; >>>>> import org.apache.geronimo.system.plugin.model.PluginType; >>>>> import org.apache.geronimo.system.plugin.model.AttributesType; >>>>> @@ -52,7 +54,7 @@ >>>>> * @return A Map with key type String (plugin name) and value type >>>>> Artifact >>>>> * (config ID of the plugin). >>>>> */ >>>>> - public Map getInstalledPlugins(); >>>>> + public Map<String, Artifact> getInstalledPlugins(); >>>>> >>>>> /** >>>>> * Gets a CofigurationMetadata for a configuration installed in the >>>>> local >>>>> @@ -185,7 +187,7 @@ >>>>> * @throws >>>>> org.apache.geronimo.kernel.repository.MissingDependencyException >>>>> * if a dependency is not satisfied >>>>> */ >>>>> - public void validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException; >>>>> + public boolean validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException; >>>>> >>>>> /** >>>>> * Ensures that a plugin's prerequisites are installed >>>>> >>>>> 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=699202&r1=699201&r2=699202&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 >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -21,6 +21,8 @@ >>>>> import java.io.FileOutputStream; >>>>> import java.io.IOException; >>>>> import java.io.InputStream; >>>>> +import java.io.FileInputStream; >>>>> +import java.io.OutputStream; >>>>> import java.net.URI; >>>>> import java.net.URL; >>>>> import java.util.ArrayList; >>>>> @@ -54,6 +56,7 @@ >>>>> import org.apache.geronimo.gbean.ReferenceCollectionEvent; >>>>> import org.apache.geronimo.gbean.ReferenceCollectionListener; >>>>> import org.apache.geronimo.gbean.annotation.GBean; >>>>> +import org.apache.geronimo.gbean.annotation.ParamAttribute; >>>>> import org.apache.geronimo.gbean.annotation.ParamReference; >>>>> import org.apache.geronimo.gbean.annotation.ParamSpecial; >>>>> import org.apache.geronimo.gbean.annotation.SpecialAttributeType; >>>>> @@ -68,6 +71,7 @@ >>>>> import org.apache.geronimo.kernel.config.NoSuchConfigException; >>>>> import org.apache.geronimo.kernel.config.NoSuchStoreException; >>>>> import org.apache.geronimo.kernel.config.PersistentConfigurationList; >>>>> +import >>>>> org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException; >>>>> import org.apache.geronimo.kernel.repository.Artifact; >>>>> import org.apache.geronimo.kernel.repository.ArtifactManager; >>>>> import org.apache.geronimo.kernel.repository.DefaultArtifactManager; >>>>> @@ -116,6 +120,9 @@ >>>>> private static final Logger log = >>>>> LoggerFactory.getLogger(PluginInstallerGBean.class); >>>>> >>>>> private static int counter; >>>>> + private final String installedPluginsList; >>>>> + //all plugins that have ever been installed on this server. >>>>> + private final Set<Artifact> installedArtifacts = new >>>>> HashSet<Artifact>(); >>>>> private final ConfigurationManager configManager; >>>>> private final GeronimoSourceRepository localSourceRepository; >>>>> private final WritableListableRepository writeableRepo; >>>>> @@ -146,7 +153,8 @@ >>>>> * @param classLoader classLoader @throws IOException >>>>> exception if server instance cannot be loaded >>>>> * @throws java.io.IOException from bad ServerInstance >>>>> */ >>>>> - public PluginInstallerGBean(@ParamReference(name = "ConfigManager", >>>>> namingType = "ConfigurationManager")ConfigurationManager configManager, >>>>> + public PluginInstallerGBean(@ParamAttribute(name = >>>>> "installedPluginsList")String installedPluginsList, >>>>> + @ParamReference(name = "ConfigManager", >>>>> namingType = "ConfigurationManager")ConfigurationManager configManager, >>>>> @ParamReference(name = "Repository", >>>>> namingType = "Repository")WritableListableRepository repository, >>>>> @ParamReference(name = "ConfigStore", >>>>> namingType = "ConfigurationStore")ConfigurationStore configStore, >>>>> @ParamReference(name = "ServerInstances", >>>>> namingType = "ServerInstanceData")Collection<ServerInstanceData> >>>>> serverInstanceDatas, >>>>> @@ -171,6 +179,8 @@ >>>>> localSourceRepository = new >>>>> GeronimoSourceRepository(configManager.getRepositories(), >>>>> configManager.getArtifactResolver()); >>>>> setUpServerInstances(serverInstanceDatas, serverInfo, >>>>> artifactManager, servers, writeableRepo, true); >>>>> this.pluginRepositoryList = pluginRepositoryList; >>>>> + this.installedPluginsList = installedPluginsList; >>>>> + loadHistory(); >>>>> } >>>>> >>>>> /** >>>>> @@ -178,6 +188,7 @@ >>>>> * >>>>> * @param targetRepositoryPath location of repo to install into (not in >>>>> current server) >>>>> * @param targetServerPath location of server to install into (not >>>>> current server >>>>> + * @param installedPluginsList location of file to track >>>>> installations >>>>> * @param serverInstanceDatas set of server layouts >>>>> * @param pluginRepositoryList >>>>> * @param kernel kernel for current server >>>>> @@ -185,6 +196,7 @@ >>>>> */ >>>>> public PluginInstallerGBean(String targetRepositoryPath, >>>>> String targetServerPath, >>>>> + String installedPluginsList, >>>>> Collection<? extends ServerInstanceData> >>>>> serverInstanceDatas, >>>>> PluginRepositoryList pluginRepositoryList, >>>>> final Kernel kernel, >>>>> @@ -206,6 +218,8 @@ >>>>> this.configManager = buildConfigurationManager(artifactManager, >>>>> writeableRepo, kernel, configStore, classLoader, servers); >>>>> localSourceRepository = new >>>>> GeronimoSourceRepository(configManager.getRepositories(), >>>>> configManager.getArtifactResolver()); >>>>> this.pluginRepositoryList = pluginRepositoryList; >>>>> + this.installedPluginsList = installedPluginsList; >>>>> + loadHistory(); >>>>> } >>>>> >>>>> private static void setUpServerInstances(Collection<? extends >>>>> ServerInstanceData> serverInstanceDatas, >>>>> @@ -290,7 +304,7 @@ >>>>> PluginInstallerGBean(ConfigurationManager configManager, >>>>> WritableListableRepository repository, >>>>> ConfigurationStore configStore, >>>>> - ServerInfo serverInfo, >>>>> + String installedPluginsList, ServerInfo >>>>> serverInfo, >>>>> ThreadPool threadPool, >>>>> Collection<ServerInstance> servers, >>>>> PluginRepositoryList pluginRepositoryList) { >>>>> this.configManager = configManager; >>>>> @@ -321,6 +335,53 @@ >>>>> }); >>>>> } >>>>> this.pluginRepositoryList = pluginRepositoryList; >>>>> + this.installedPluginsList = installedPluginsList; >>>>> + loadHistory(); >>>>> + } >>>>> + >>>>> + private void loadHistory() { >>>>> + if (installedPluginsList != null) { >>>>> + File historyFile = >>>>> serverInfo.resolveServer(installedPluginsList); >>>>> + Properties properties = new Properties(); >>>>> + try { >>>>> + InputStream in = new FileInputStream(historyFile); >>>>> + try { >>>>> + properties.load(in); >>>>> + for (Object key : properties.keySet()) { >>>>> + Artifact artifact = Artifact.create((String) >>>>> key); >>>>> + installedArtifacts.add(artifact); >>>>> + } >>>>> + } finally { >>>>> + in.close(); >>>>> + } >>>>> + } catch (IOException e) { >>>>> + //give up >>>>> + } >>>>> + } >>>>> + } >>>>> + >>>>> + private void saveHistory() { >>>>> + if (installedPluginsList != null) { >>>>> + Properties properties = new Properties(); >>>>> + for (Artifact artifact : installedArtifacts) { >>>>> + properties.put(artifact.toString(), null); >>>>> + } >>>>> + try { >>>>> + File historyFile = >>>>> serverInfo.resolveServer(installedPluginsList); >>>>> + File parentFile = historyFile.getParentFile(); >>>>> + if (!parentFile.exists()) { >>>>> + FileUtils.forceMkdir(parentFile); >>>>> + } >>>>> + OutputStream out = new FileOutputStream(historyFile); >>>>> + try { >>>>> + properties.save(out, "All the plugins that have >>>>> ever been installed on this server"); >>>>> + } finally { >>>>> + out.close(); >>>>> + } >>>>> + } catch (IOException e) { >>>>> + //give up >>>>> + } >>>>> + } >>>>> } >>>>> >>>>> /** >>>>> @@ -346,6 +407,7 @@ >>>>> PluginInstallerGBean installer = new PluginInstallerGBean( >>>>> targetRepositoryPath, >>>>> targetServerPathName, >>>>> + installedPluginsList, >>>>> serverInstanceDatas, >>>>> pluginRepositoryList, kernel, >>>>> classLoader); >>>>> @@ -381,7 +443,7 @@ >>>>> * @return A Map with key type String (plugin name) and value type >>>>> Artifact >>>>> * (config ID of the plugin). >>>>> */ >>>>> - public Map getInstalledPlugins() { >>>>> + public Map<String, Artifact> getInstalledPlugins() { >>>>> SortedSet<Artifact> artifacts = writeableRepo.list(); >>>>> >>>>> Map<String, Artifact> plugins = new HashMap<String, Artifact>(); >>>>> @@ -416,7 +478,7 @@ >>>>> jar.close(); >>>>> } >>>>> } catch (IOException e) { >>>>> - log.error("Unable to read JAR file " + >>>>> dir.getAbsolutePath(), e); >>>>> + log.error("Unable to read JAR file {}", >>>>> dir.getAbsolutePath(), e); >>>>> } >>>>> } >>>>> } >>>>> @@ -622,7 +684,9 @@ >>>>> for (PluginType metadata : pluginsToInstall.getPlugin()) { >>>>> try { >>>>> if (validatePlugins) { >>>>> - validatePlugin(metadata); >>>>> + if (!validatePlugin(metadata)) { >>>>> + throw new >>>>> MissingDependencyException("Already installed", >>>>> toArtifact(metadata.getPluginArtifact().get(0).getModuleId()), >>>>> (Stack<Artifact>)null); >>>>> + } >>>>> verifyPrerequisites(metadata); >>>>> } >>>>> >>>>> @@ -717,6 +781,7 @@ >>>>> } finally { >>>>> poller.setFinished(); >>>>> } >>>>> + saveHistory(); >>>>> } >>>>> >>>>> private List<SourceRepository> getRepos(PluginListType >>>>> pluginsToInstall, SourceRepository defaultRepository, boolean >>>>> restrictToDefaultRepository, PluginArtifactType instance) { >>>>> @@ -865,7 +930,11 @@ >>>>> } >>>>> >>>>> // 2. Validate that we can install this >>>>> - validatePlugin(data); >>>>> + if (!validatePlugin(data)) { >>>>> + //already installed >>>>> + return; >>>>> + } >>>>> + >>>>> verifyPrerequisites(data); >>>>> >>>>> PluginArtifactType instance = data.getPluginArtifact().get(0); >>>>> @@ -899,10 +968,11 @@ >>>>> * Ensures that a plugin is installable. >>>>> * >>>>> * @param plugin plugin to check >>>>> + * @return true if the plugin is not installed >>>>> * @throws >>>>> org.apache.geronimo.kernel.repository.MissingDependencyException >>>>> * if plugin requires a dependency that is not present >>>>> */ >>>>> - public void validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException { >>>>> + public boolean validatePlugin(PluginType plugin) throws >>>>> MissingDependencyException { >>>>> if (plugin.getPluginArtifact().size() != 1) { >>>>> throw new MissingDependencyException("A plugin configuration >>>>> must include one plugin artifact, not " + >>>>> plugin.getPluginArtifact().size(), >>>>> null, (Stack<Artifact>) null); >>>>> } >>>>> @@ -919,11 +989,9 @@ >>>>> break; >>>>> } >>>>> } >>>>> - if (!upgrade) { >>>>> + if (!upgrade && installedArtifacts.contains(artifact)) >>>>> { >>>>> log.debug("Configuration {} is already installed", >>>>> artifact); >>>>> -// throw new MissingDependencyException( >>>>> -// "Configuration " + artifact + " is >>>>> already installed.", toArtifact(metadata.getModuleId()), (Stack<Artifact>) >>>>> null); >>>>> - } >>>>> + return false; } >>>>> } >>>>> } >>>>> >>>>> @@ -938,6 +1006,7 @@ >>>>> throw new MissingDependencyException( >>>>> "Plugin is not installable on JVM " + >>>>> System.getProperty("java.version"), toArtifact(metadata.getModuleId()), >>>>> (Stack<Artifact>) null); >>>>> } >>>>> + return true; >>>>> } >>>>> >>>>> >>>>> @@ -1090,7 +1159,10 @@ >>>>> throw (IOException) new IOException("Unable to read >>>>> plugin metadata: " + e.getMessage()).initCause(e); >>>>> } >>>>> if (pluginData != null) { // it's a plugin, not a plain JAR >>>>> - validatePlugin(pluginData); >>>>> + if (!validatePlugin(pluginData)) { >>>>> + monitor.getResults().addSkippedConfigID(new >>>>> MissingDependencyException("already installed", configID, >>>>> (Stack<Artifact>)null)); >>>>> + return; >>>>> + } >>>>> instance = pluginData.getPluginArtifact().get(0); >>>>> } >>>>> monitor.getResults().setCurrentMessage("Copying " + >>>>> result.getArtifact() + " to the repository"); >>>>> @@ -1170,8 +1242,9 @@ >>>>> throw new IllegalStateException("Installed configuration into >>>>> repository but ConfigStore cannot load it: " + e.getMessage(), e); >>>>> } >>>>> // Copy any files out of the artifact >>>>> - for (ServerInstance serverInstance: servers.values()) { >>>>> + for (ServerInstance serverInstance : servers.values()) { >>>>> if >>>>> (serverInstance.getAttributeStore().isModuleInstalled(configID)) { >>>>> + installedArtifacts.add(configID); >>>>> return; >>>>> } >>>>> } >>>>> @@ -1182,6 +1255,7 @@ >>>>> } >>>>> } >>>>> if (instance != null) { >>>>> + installedArtifacts.add(configID); >>>>> try { >>>>> installConfigXMLData(configID, instance, servers, >>>>> loadOverride); >>>>> } catch (InvalidGBeanException e) { >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/CopyFileTest.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/CopyFileTest.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/CopyFileTest.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/CopyFileTest.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -47,6 +47,7 @@ >>>>> private ConfigurationStore configStore; >>>>> private PluginInstallerGBean installer; >>>>> private Artifact artifact = new Artifact("test", "module", "1.0", >>>>> "car"); >>>>> + private String installedPluginsList = >>>>> "var/config/installedPlugins.properties"; >>>>> >>>>> protected void setUp() throws Exception { >>>>> super.setUp(); >>>>> @@ -72,7 +73,7 @@ >>>>> installer = new PluginInstallerGBean(new >>>>> MockConfigurationManager(), >>>>> repo, >>>>> configStore, >>>>> - serverInfo, >>>>> + installedPluginsList, serverInfo, >>>>> new ThreadPool() { >>>>> public int getPoolSize() { >>>>> return 0; >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/framework/modules/geronimo-plugin/src/test/java/org/apache/geronimo/system/plugin/PluginInstallerTest.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -41,7 +41,8 @@ >>>>> private String fakeRepo; >>>>> private String testRepo; >>>>> private PluginInstaller installer; >>>>> - >>>>> + private String installedPluginsList = >>>>> "var/config/installedPlugins.properties"; >>>>> + >>>>> protected void setUp() throws Exception { >>>>> super.setUp(); >>>>> fakeRepo = "http://nowhere.com/"; >>>>> @@ -50,7 +51,7 @@ >>>>> testRepo = url.substring(0, pos); >>>>> ServerInfo serverInfo = new BasicServerInfo("."); >>>>> installer = new PluginInstallerGBean(new >>>>> MockConfigurationManager(), new MockWritableListableRepository(), new >>>>> MockConfigStore(), >>>>> - serverInfo, new ThreadPool() { >>>>> + installedPluginsList, serverInfo, new ThreadPool() { >>>>> public int getPoolSize() { >>>>> return 0; >>>>> } >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/AbstractListHandler.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/AbstractListHandler.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/AbstractListHandler.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/AbstractListHandler.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -65,7 +65,7 @@ >>>>> // determine if the plugin is installable >>>>> PluginType holder = PluginInstallerGBean.copy(metadata, >>>>> artifact); >>>>> try { >>>>> - pluginInstaller.validatePlugin(holder); >>>>> + >>>>> plugin.setInstallable(pluginInstaller.validatePlugin(holder)); >>>>> } catch (Exception e) { >>>>> plugin.setInstallable(false); >>>>> } >>>>> >>>>> Modified: >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java >>>>> URL: >>>>> http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java?rev=699202&r1=699201&r2=699202&view=diff >>>>> >>>>> ============================================================================== >>>>> --- >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java >>>>> (original) >>>>> +++ >>>>> geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java >>>>> Fri Sep 26 00:26:53 2008 >>>>> @@ -89,7 +89,7 @@ >>>>> StringBuffer validationNotOk = new StringBuffer(); >>>>> PluginType holder = >>>>> PluginInstallerGBean.copy(plugin.getPlugin(), plugin.getPluginArtifact()); >>>>> try { >>>>> - pluginInstaller.validatePlugin(holder); >>>>> + >>>>> plugin.setInstallable(pluginInstaller.validatePlugin(holder)); >>>>> } catch (Exception e) { >>>>> plugin.setInstallable(false); >>>>> validationNotOk.append(e.getMessage()); >>>>> >>>>> >>>>> >>> >> >> >
