You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by pm...@apache.org on 2007/09/23 00:09:28 UTC
svn commit: r578514 - in /geronimo/plugins/console/trunk:
console-base-portlets/src/main/java/org/apache/geronimo/console/car/
console-base-portlets/src/main/webapp/WEB-INF/view/car/
console-portal-driver/src/main/webapp/images/
Author: pmcmahan
Date: Sat Sep 22 15:09:27 2007
New Revision: 578514
URL: http://svn.apache.org/viewvc?rev=578514&view=rev
Log:
GERONIMO-3330 improve the admin console's plugin management portlet. alignment with new plugin schema.
Added:
geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java (with props)
geronimo/plugins/console/trunk/console-portal-driver/src/main/webapp/images/checkmark._16_green.png (with props)
Modified:
geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/IndexHandler.java
geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ListHandler.java
geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java
geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/download.jsp
geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/list.jsp
geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/viewForDownload.jsp
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/IndexHandler.java
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/IndexHandler.java?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/IndexHandler.java (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/IndexHandler.java Sat Sep 22 15:09:27 2007
@@ -29,6 +29,7 @@
import org.apache.geronimo.console.util.ConfigurationData;
import org.apache.geronimo.console.util.PortletManager;
import org.apache.geronimo.system.plugin.PluginRepositoryList;
+import org.apache.geronimo.system.plugin.model.PluginListType;
/**
* Handler for the import export main screen.
@@ -48,6 +49,10 @@
public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException {
PluginRepositoryList[] lists = PortletManager.getCurrentServer(request).getPluginRepositoryLists();
+
+ // clear out the catalog if it was previously loaded
+ request.getPortletSession(true).removeAttribute(CONFIG_LIST_SESSION_KEY);
+
List list = new ArrayList();
for (int i = 0; i < lists.length; i++) {
PluginRepositoryList repo = lists[i];
@@ -61,6 +66,7 @@
}
public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
+ request.setAttribute("column", request.getParameter("column"));
request.setAttribute("repository", request.getParameter("repository"));
request.setAttribute("repo-user", request.getParameter("username"));
request.setAttribute("repo-pass", request.getParameter("password"));
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ListHandler.java
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ListHandler.java?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ListHandler.java (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ListHandler.java Sat Sep 22 15:09:27 2007
@@ -19,12 +19,9 @@
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -35,6 +32,9 @@
import org.apache.geronimo.console.MultiPageModel;
import org.apache.geronimo.console.util.PortletManager;
+import org.apache.geronimo.system.plugin.PluginInstaller;
+import org.apache.geronimo.system.plugin.PluginInstallerGBean;
+import org.apache.geronimo.system.plugin.model.PluginArtifactType;
import org.apache.geronimo.system.plugin.model.PluginListType;
import org.apache.geronimo.system.plugin.model.PluginType;
@@ -44,7 +44,7 @@
* @version $Rev$ $Date$
*/
public class ListHandler extends BaseImportExportHandler {
-
+
public ListHandler() {
super(LIST_MODE, "/WEB-INF/view/car/list.jsp");
}
@@ -57,8 +57,11 @@
response.setRenderParameter("repository", repository);
String user = (String) request.getAttribute("repo-user");
String pass = (String) request.getAttribute("repo-pass");
+ String column = (String) request.getAttribute("column");
+
if(!isEmpty(user)) response.setRenderParameter("repo-user", user);
if(!isEmpty(pass)) response.setRenderParameter("repo-pass", pass);
+ if(!isEmpty(column)) response.setRenderParameter("column", column);
return getMode();
}
@@ -66,12 +69,14 @@
String repository = request.getParameter("repository");
String user = request.getParameter("repo-user");
String pass = request.getParameter("repo-pass");
+ String column = request.getParameter("column");
if(!loadFromRepository(request, repository, user, pass)) {
//todo: loading failed -- do something!
}
request.setAttribute("repository", repository);
request.setAttribute("repouser", user);
request.setAttribute("repopass", pass);
+ request.setAttribute("column", column);
}
public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
@@ -79,41 +84,85 @@
}
private boolean loadFromRepository(RenderRequest request, String repository, String username, String password) throws IOException, PortletException {
- PluginListType data;
- try {
- data = PortletManager.getCurrentServer(request).getPluginInstaller().listPlugins(new URL(repository), username, password);
- } catch (FailedLoginException e) {
- throw new PortletException("Invalid login for Maven repository '"+repository+"'", e);
+
+ // try to reuse the catalog data if it was already downloaded
+ PluginListType data = (PluginListType) request.getPortletSession(true).getAttribute(CONFIG_LIST_SESSION_KEY);
+ if (data==null) {
+ try {
+ data = PortletManager.getCurrentServer(request).getPluginInstaller().listPlugins(new URL(repository), username, password);
+ } catch (FailedLoginException e) {
+ throw new PortletException("Invalid login for Maven repository '"+repository+"'", e);
+ }
}
- Map<String, List<PluginType>> results = new TreeMap<String, List<PluginType>>();
+
if(data == null || data.getPlugin() == null) {
return false;
}
+
+ List<PluginInfoBean> plugins = new ArrayList<PluginInfoBean>();
+ PluginInstaller pluginInstaller = PortletManager.getCurrentServer(request).getPluginInstaller();
+
for (PluginType metadata: data.getPlugin()) {
- String category = metadata.getCategory();
- if (category==null || category.trim().length()<1) {
- category = "No Category";
+
+ // ignore plugins which have no artifacts defined
+ if (metadata.getPluginArtifact().isEmpty()) {
+ continue;
}
- List<PluginType> values;
- if (!results.containsKey(category)) {
- values = new ArrayList<PluginType>();
- values.add(metadata);
- results.put(category, values);
- } else {
- values = results.get(category);
- values.add(metadata);
+
+ if (metadata.getCategory() == null) {
+ metadata.setCategory("Unspecified");
+ }
+
+ for (PluginArtifactType artifact : metadata.getPluginArtifact()) {
+ PluginInfoBean plugin = new PluginInfoBean();
+ plugin.setPlugin(metadata);
+ plugin.setPluginArtifact(artifact);
+
+ // determine if the plugin is installable
+ try {
+ PluginType holder = PluginInstallerGBean.copy(metadata, artifact);
+ pluginInstaller.validatePlugin(holder);
+ } catch (Exception e) {
+ plugin.setInstallable(false);
+ }
+ plugins.add(plugin);
}
}
- Collection<List<PluginType>> values = results.values();
- for (List<PluginType> value : values) {
- Collections.sort(value, new Comparator<PluginType>() {
- public int compare(PluginType o1, PluginType o2) {
+ // sort the plugin list based on the selected table column
+ final String column = request.getParameter("column");
+ Collections.sort(plugins, new Comparator<PluginInfoBean>() {
+ public int compare(PluginInfoBean o1, PluginInfoBean o2) {
+ if ("Category".equals(column)) {
+ String category1 = o1.getCategory();
+ String category2 = o2.getCategory();
+ if (category1.equals(category2)) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ return category1.compareTo(category2);
+ }
+ else if ("Version".equals(column)) {
+ String version1 = o1.getPluginArtifact().getModuleId().getVersion();
+ String version2 = o2.getPluginArtifact().getModuleId().getVersion();
+ if (version1.equals(version2)) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ return version1.compareTo(version2);
+ }
+ else if ("Installable".equals(column)) {
+ if (o1.isInstallable() == o2.isInstallable()) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ return o1.isInstallable() ? -1 : 1 ;
+ }
+ else { // default sort column is Name
return o1.getName().compareTo(o2.getName());
}
- });
- }
- request.setAttribute("categories", results);
+ }
+ });
+
+ // save everything in the request
+ request.setAttribute("plugins", plugins);
request.getPortletSession(true).setAttribute(CONFIG_LIST_SESSION_KEY, data);
return true;
}
Added: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java?rev=578514&view=auto
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java (added)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java Sat Sep 22 15:09:27 2007
@@ -0,0 +1,246 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.console.car;
+
+import java.util.List;
+
+import org.apache.geronimo.system.plugin.model.ArtifactType;
+import org.apache.geronimo.system.plugin.model.CopyFileType;
+import org.apache.geronimo.system.plugin.model.DependencyType;
+import org.apache.geronimo.system.plugin.model.HashType;
+import org.apache.geronimo.system.plugin.model.LicenseType;
+import org.apache.geronimo.system.plugin.model.PluginArtifactType;
+import org.apache.geronimo.system.plugin.model.PluginType;
+import org.apache.geronimo.system.plugin.model.PrerequisiteType;
+import org.apache.geronimo.system.plugin.model.PropertyType;
+
+/**
+ * Bean class that holds information about a plugin
+ *
+ * @version $Rev$ $Date$
+ */
+public class PluginInfoBean {
+ protected ArtifactType moduleId;
+ protected HashType hash;
+ protected List<String> geronimoVersion;
+ protected List<String> jvmVersion;
+ protected List<PrerequisiteType> prerequisite;
+ protected List<DependencyType> dependency;
+ protected List<ArtifactType> obsoletes;
+ protected List<String> sourceRepository;
+ protected List<CopyFileType> copyFile;
+ protected PluginArtifactType.ConfigXmlContent configXmlContent;
+ protected List<PropertyType> artifactAlias;
+ protected List<PropertyType> configSubstitution;
+ protected String name;
+ protected String category;
+ protected String description;
+ protected String url;
+ protected String author;
+ protected List<LicenseType> license;
+ protected PluginType plugin;
+ protected PluginArtifactType pluginArtifact;
+ protected boolean installable = true;
+
+ public List<PropertyType> getArtifactAlias() {
+ return artifactAlias;
+ }
+
+ public void setArtifactAlias(List<PropertyType> artifactAlias) {
+ this.artifactAlias = artifactAlias;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(String author) {
+ this.author = author;
+ }
+
+ public String getCategory() {
+ return category;
+ }
+
+ public void setCategory(String category) {
+ this.category = category;
+ }
+
+ public List<PropertyType> getConfigSubstitution() {
+ return configSubstitution;
+ }
+
+ public void setConfigSubstitution(List<PropertyType> configSubstitution) {
+ this.configSubstitution = configSubstitution;
+ }
+
+ public PluginArtifactType.ConfigXmlContent getConfigXmlContent() {
+ return configXmlContent;
+ }
+
+ public void setConfigXmlContent(PluginArtifactType.ConfigXmlContent configXmlContent) {
+ this.configXmlContent = configXmlContent;
+ }
+
+ public List<CopyFileType> getCopyFile() {
+ return copyFile;
+ }
+
+ public void setCopyFile(List<CopyFileType> copyFile) {
+ this.copyFile = copyFile;
+ }
+
+ public List<DependencyType> getDependency() {
+ return dependency;
+ }
+
+ public void setDependency(List<DependencyType> dependency) {
+ this.dependency = dependency;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<String> getGeronimoVersion() {
+ return geronimoVersion;
+ }
+
+ public void setGeronimoVersion(List<String> geronimoVersion) {
+ this.geronimoVersion = geronimoVersion;
+ }
+
+ public HashType getHash() {
+ return hash;
+ }
+
+ public void setHash(HashType hash) {
+ this.hash = hash;
+ }
+
+ public List<String> getJvmVersion() {
+ return jvmVersion;
+ }
+
+ public void setJvmVersion(List<String> jvmVersion) {
+ this.jvmVersion = jvmVersion;
+ }
+
+ public List<LicenseType> getLicense() {
+ return license;
+ }
+
+ public void setLicense(List<LicenseType> license) {
+ this.license = license;
+ }
+
+ public ArtifactType getModuleId() {
+ return moduleId;
+ }
+
+ public void setModuleId(ArtifactType moduleId) {
+ this.moduleId = moduleId;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public List<ArtifactType> getObsoletes() {
+ return obsoletes;
+ }
+
+ public void setObsoletes(List<ArtifactType> obsoletes) {
+ this.obsoletes = obsoletes;
+ }
+
+ public List<PrerequisiteType> getPrerequisite() {
+ return prerequisite;
+ }
+
+ public void setPrerequisite(List<PrerequisiteType> prerequisite) {
+ this.prerequisite = prerequisite;
+ }
+
+ public List<String> getSourceRepository() {
+ return sourceRepository;
+ }
+
+ public void setSourceRepository(List<String> sourceRepository) {
+ this.sourceRepository = sourceRepository;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public PluginType getPlugin() {
+ return plugin;
+ }
+
+ public void setPlugin(PluginType plugin) {
+ this.plugin = plugin;
+ // copy the fields
+ author = plugin.getAuthor();
+ category = plugin.getCategory();
+ description = plugin.getDescription();
+ license = plugin.getLicense();
+ name = plugin.getName();
+ url = plugin.getUrl();
+ }
+
+ public PluginArtifactType getPluginArtifact() {
+ return pluginArtifact;
+ }
+
+ public void setPluginArtifact(PluginArtifactType pluginArtifact) {
+ this.pluginArtifact = pluginArtifact;
+ // copy the fields
+ artifactAlias = pluginArtifact.getArtifactAlias();
+ configSubstitution = pluginArtifact.getConfigSubstitution();
+ configXmlContent = pluginArtifact.getConfigXmlContent();
+ copyFile = pluginArtifact.getCopyFile();
+ dependency = pluginArtifact.getDependency();
+ geronimoVersion = pluginArtifact.getGeronimoVersion();
+ hash = pluginArtifact.getHash();
+ jvmVersion = pluginArtifact.getJvmVersion();
+ moduleId = pluginArtifact.getModuleId();
+ obsoletes = pluginArtifact.getObsoletes();
+ prerequisite = pluginArtifact.getPrerequisite();
+ sourceRepository = pluginArtifact.getSourceRepository();
+ }
+
+ public boolean isInstallable() {
+ return installable;
+ }
+
+ public void setInstallable(boolean installable) {
+ this.installable = installable;
+ }
+}
\ No newline at end of file
Propchange: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/PluginInfoBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java Sat Sep 22 15:09:27 2007
@@ -30,6 +30,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.console.MultiPageModel;
import org.apache.geronimo.console.util.PortletManager;
+import org.apache.geronimo.system.plugin.PluginInstaller;
import org.apache.geronimo.system.plugin.PluginInstallerGBean;
import org.apache.geronimo.system.plugin.model.PluginArtifactType;
import org.apache.geronimo.system.plugin.model.PluginListType;
@@ -66,8 +67,8 @@
String repo = request.getParameter("repository");
String user = request.getParameter("repo-user");
String pass = request.getParameter("repo-pass");
- PluginType config = null;
- PluginArtifactType instance = null;
+ PluginInfoBean plugin = new PluginInfoBean();
+
try {
PluginListType list = (PluginListType) request.getPortletSession(true).getAttribute(CONFIG_LIST_SESSION_KEY);
if(list == null) {
@@ -77,8 +78,8 @@
for (PluginType metadata: list.getPlugin()) {
for (PluginArtifactType testInstance: metadata.getPluginArtifact()) {
if(PluginInstallerGBean.toArtifact(testInstance.getModuleId()).toString().equals(configId)) {
- config = metadata;
- instance = testInstance;
+ plugin.setPlugin(metadata);
+ plugin.setPluginArtifact(testInstance);
break;
}
}
@@ -86,14 +87,24 @@
} catch (FailedLoginException e) {
throw new PortletException("Invalid login for Maven repository '"+repo+"'", e);
}
- if(config == null) {
+ if(plugin.getPluginArtifact() == null) {
throw new PortletException("No configuration found for '"+configId+"'");
}
+
+ // see if the plugin is installable. if not then provide the details
+ String validation = "All requirements for this plugin have been met.";
+ PluginInstaller pluginInstaller = PortletManager.getCurrentServer(request).getPluginInstaller();
+ PluginType holder = PluginInstallerGBean.copy(plugin.getPlugin(), plugin.getPluginArtifact());
+ try {
+ pluginInstaller.validatePlugin(holder);
+ } catch (Exception e) {
+ plugin.setInstallable(false);
+ validation = e.getMessage();
+ }
+
+ request.setAttribute("validation", validation);
request.setAttribute("configId", configId);
- request.setAttribute("plugin", config);
- request.setAttribute("pluginArtifact", instance);
-// request.setAttribute("gerVersions", instance.getGeronimoVersion());
-// request.setAttribute("jvmVersions", instance.getJvmVersion());
+ request.setAttribute("plugin", plugin);
request.setAttribute("repository", repo);
request.setAttribute("repouser", user);
request.setAttribute("repopass", pass);
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/download.jsp
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/download.jsp?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/download.jsp (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/download.jsp Sat Sep 22 15:09:27 2007
@@ -21,8 +21,8 @@
<p>Processing ${configId}...</p>
-<p>Found the following dependencies for this plugin. Any missing dependencies
- will be installed for you automatically if you proceed.</p>
+<p>This plugin has the following dependencies. Any missing dependencies
+ will be downloaded and installed automatically if you proceed.</p>
<ul>
<c:forEach var="dependency" items="${dependencies}">
<li>${dependency.groupId}/${dependency.artifactId}/${dependency.type}/${dependency.version}</li>
@@ -30,6 +30,9 @@
</ul>
<form name="<portlet:namespace/>PluginForm" action="<portlet:actionURL/>">
+<table><tr>
+<td valign="top">
+ <input type="submit" value="Install Plugin" />
<input type="hidden" name="file" value="${file}" />
<input type="hidden" name="configId" value="${configId}" />
<input type="hidden" name="mode" value="download-after" />
@@ -37,7 +40,8 @@
<input type="hidden" name="repo-user" value="${repouser}" />
<input type="hidden" name="repo-pass" value="${repopass}" />
<input type="hidden" name="proceed" value="true" />
- <input type="submit" value="Install Plugin" />
+</td>
+<td valign="top">
+<input type="submit" value="Cancel" onclick="history.go(-1); return false;" />
+</td></tr></table>
</form>
-
-<p><a href="<portlet:actionURL portletMode="view"><portlet:param name="mode" value="index-before" /></portlet:actionURL>">Cancel</a></p>
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/list.jsp
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/list.jsp?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/list.jsp (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/list.jsp Sat Sep 22 15:09:27 2007
@@ -18,65 +18,65 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>
-<p>These are the Geronimo plugins available in the selected repository. They may or may not already be installed in the geronimo server.</p>
-<c:forEach var="category" items="${categories}">
- <h3>${category.key}</h3>
- <ul>
- <c:forEach var="entry" items="${category.value}">
- <c:choose>
- <c:when test="${fn:length(entry.pluginArtifact) == 1}">
- <c:set var="instance" value="${entry.pluginArtifact[0]}"/>
- <li><a href="<portlet:actionURL>
- <portlet:param name="configId" value="${instance.moduleId.groupId}/${instance.moduleId.artifactId}/${instance.moduleId.version}/${instance.moduleId.type}"/>
- <portlet:param name="repository" value="${repository}"/>
- <portlet:param name="repo-user" value="${repouser}"/>
- <portlet:param name="repo-pass" value="${repopass}"/>
- <portlet:param name="mode" value="viewForDownload-before"/>
- </portlet:actionURL>">${entry.name}</a></li>
- </c:when>
- <c:when test="${fn:length(entry.pluginArtifact) > 1}">
- <p>${entry.name}</p>
- <c:forEach var="instance" items="${entry.pluginArtifact}">
- <%-- <c:choose>
- <c:when test="${entry.installed || !entry.eligible}">
- <li>${entry.name}
- <c:choose>
- <c:when test="${entry.installed}">
- (already installed)
- </c:when>
- <c:otherwise>
- <c:if test="${!entry.eligible}">
- <c:forEach var="prereq" items="${entry.prerequisites}">
- <c:if test="${!prereq.present}">
- (${prereq.moduleIdWithStars} is not installed)
- </c:if>
- </c:forEach>
- </c:if>
- (Not available; <a href="<portlet:actionURL><portlet:param name="configId" value="${entry.moduleId}"/><portlet:param name="repository" value="${repository}"/><portlet:param name="repo-user" value="${repouser}"/><portlet:param name="repo-pass" value="${repopass}"/><portlet:param name="mode" value="viewForDownload-before"/></portlet:actionURL>">View Details</a>)
- </c:otherwise>
- </c:choose>
- </li>
- </c:when>
- <c:otherwise>
- --%>
- <%--${instance} ${instance.class}<br/>--%>
- <li><a href="<portlet:actionURL>
- <portlet:param name="configId" value="${instance.moduleId.groupId}/${instance.moduleId.artifactId}/${instance.moduleId.version}/${instance.moduleId.type}"/>
- <portlet:param name="repository" value="${repository}"/>
- <portlet:param name="repo-user" value="${repouser}"/>
- <portlet:param name="repo-pass" value="${repopass}"/>
- <portlet:param name="mode" value="viewForDownload-before"/>
- </portlet:actionURL>">${instance.moduleId.groupId}/${instance.moduleId.artifactId}/${instance.moduleId.version}/${instance.moduleId.type}</a></li>
- </c:forEach>
- <%--
- </c:otherwise>
- </c:choose>
- --%>
- </c:when>
- </c:choose>
- </c:forEach>
- </ul>
+<h3>Plugins listed at ${repository}</h3>
+
+<c:choose>
+<c:when test="${fn:length(plugins) < 1}">
+ No plugins are ilsted at this repository.
+</c:when>
+<c:otherwise>
+<form action="<portlet:actionURL/>">
+<input type="hidden" name="repository" value="${repository}"/>
+<input type="hidden" name="repo-user" value="${repouser}"/>
+<input type="hidden" name="repo-pass" value="${repopass}"/>
+<input id="mode" type="hidden" name="mode" value="viewForDownload-before"/>
+<input id="viewButton" type="submit" value="View" disabled
+onclick="document.getElementById('mode').value='viewForDownload-before'">
+<input id="installButton" type="submit" value="Install" disabled
+onclick="document.getElementById('mode').value='viewForDownload-after'">
+<table border="0" cellpadding="3">
+<tr>
+ <th class="DarkBackground"> </th>
+ <c:forEach var="column" items="Name,Version,Category,Installable">
+ <th class="DarkBackground"><a href='<portlet:actionURL>
+ <portlet:param name="repository" value="${repository}"/>
+ <portlet:param name="repo-user" value="${repouser}"/>
+ <portlet:param name="repo-pass" value="${repopass}"/>
+ <portlet:param name="column" value="${column}"/>
+ <portlet:param name="mode" value="index-after"/>
+ </portlet:actionURL>'>${column}</a></th>
+ </c:forEach>
+</tr>
+<c:forEach var="plugin" items="${plugins}" varStatus="status">
+<c:set var="style" value="${status.index % 2 == 0 ? 'MediumBackground' : 'LightBackground'}"/>
+<c:set var="artifact" value="${plugin.pluginArtifact.moduleId}"/>
+<tr>
+ <td class="${style}">
+ <input type="radio" name="configId"
+ <c:choose>
+ <c:when test="${plugin.installable}">
+ onclick="document.getElementById('viewButton').disabled=false; document.getElementById('installButton').disabled=false;"
+ </c:when>
+ <c:otherwise>
+ onclick="document.getElementById('viewButton').disabled=false; document.getElementById('installButton').disabled=true;"
+ </c:otherwise>
+ </c:choose>
+ value='<c:out escapeXml="true" value="${artifact.groupId}/${artifact.artifactId}/${artifact.version}/${artifact.type}"/>' />
+ </td>
+ <td class="${style}">${plugin.name}</td>
+ <td class="${style}">${artifact.version}</td>
+ <td class="${style}">${plugin.category}</td>
+ <td align="center" class="${style}">
+ ${plugin.installable ? "<img alt='check' src='/console/images/checkmark._16_green.png' />" : "<strong><font color='red'>X</font></strong>"}
+ </td>
+</tr>
</c:forEach>
+</table>
+</form>
+</c:otherwise>
+</c:choose>
-<p><a href="<portlet:actionURL portletMode="view"><portlet:param name="mode" value="index-before" /></portlet:actionURL>">Cancel</a></p>
+<p><form>
+<input type="submit" value="Cancel" onclick="history.go(-1); return false;" />
+</form>
Modified: geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/viewForDownload.jsp
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/viewForDownload.jsp?rev=578514&r1=578513&r2=578514&view=diff
==============================================================================
--- geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/viewForDownload.jsp (original)
+++ geronimo/plugins/console/trunk/console-base-portlets/src/main/webapp/WEB-INF/view/car/viewForDownload.jsp Sat Sep 22 15:09:27 2007
@@ -19,18 +19,14 @@
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<portlet:defineObjects/>
-<h1>${plugin.name}</h1>
+<c:set var="artifact" value="${plugin.pluginArtifact.moduleId}"/>
-<p>Here is the available information on this plugin:</p>
+<h1>${plugin.name}</h1>
<table border="0">
<tr>
- <th align="right" valign="top">Name:</th>
- <td>${plugin.name}</td>
- </tr>
- <tr>
<th align="right" valign="top">Module ID:</th>
- <td>${pluginArtifact.moduleId.groupId}/${pluginArtifact.moduleId.artifactId}/${pluginArtifact.moduleId.version}/${pluginArtifact.moduleId.type}</td>
+ <td>${artifact.groupId}/${artifact.artifactId}/${artifact.version}/${artifact.type}</td>
</tr>
<tr>
<th align="right" valign="top">Group:</th>
@@ -63,11 +59,11 @@
<th align="right" valign="top">Geronimo-Versions:</th>
<td>
<c:choose>
- <c:when test="${empty pluginArtifact.geronimoVersion}">
+ <c:when test="${empty plugin.geronimoVersion}">
<i>None</i>
</c:when>
<c:otherwise>
- <c:forEach var="geronimoVersion" items="${pluginArtifact.geronimoVersion}">
+ <c:forEach var="geronimoVersion" items="${plugin.geronimoVersion}">
<b>${geronimoVersion}</b>
</c:forEach>
</c:otherwise>
@@ -79,11 +75,11 @@
<th align="right" valign="top">JVM Versions:</th>
<td>
<c:choose>
- <c:when test="${empty pluginArtifact.jvmVersion}">
+ <c:when test="${empty plugin.jvmVersion}">
<i>Any</i>
</c:when>
<c:otherwise>
- <c:forEach var="jvmVersion" items="${pluginArtifact.jvmVersion}">
+ <c:forEach var="jvmVersion" items="${plugin.jvmVersion}">
${jvmVersion}
</c:forEach>
</c:otherwise>
@@ -93,7 +89,7 @@
<tr>
<th align="right" valign="top">Dependencies:</th>
<td>
- <c:forEach var="dependency" items="${pluginArtifact.dependency}">
+ <c:forEach var="dependency" items="${plugin.dependency}">
${dependency.groupId}/${dependency.artifactId}/${dependency.version}/${dependency.type}<br />
</c:forEach>
</td>
@@ -102,79 +98,57 @@
<th align="right" valign="top">Prerequisites:</th>
<td>
<c:choose>
- <c:when test="${empty pluginArtifact.prerequisite}">
+ <c:when test="${empty plugin.prerequisite}">
<i>None</i>
</c:when>
<c:otherwise>
- <c:forEach var="prereq" items="${pluginArtifact.prerequisite}">
+ <c:forEach var="prereq" items="${plugin.prerequisite}">
<b>${prereq.id.groupId}/${prereq.id.artifactId}/${prereq.id.version}/${prereq.id.type}</b> (${prereq.resourceType})<br/>
${prereq.description}
-<%--
- <c:if test="${!prereq.present}">
- <br /><b><font color="red">NOT AVAILABLE</font></b>
- </c:if>
---%>
</c:forEach>
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
- <th align="right" valign="top">Version Specific Prerequisites:</th>
- <td>
- <c:choose>
- <c:when test="${empty gerVersions}">
- <i>None</i>
- </c:when>
- <c:otherwise>
- <c:forEach var="version" items="${gerVersions}">
- Version: ${version.version}:<br/>
- <c:choose>
- <c:when test="${empty version.preReqs}">
- <i>None</i><br/>
- </c:when>
- <c:otherwise>
- <c:forEach var="preReq" items="${version.preReqs}">
- <b>${preReq.moduleIdWithStars}</b> (${preReq.resourceType})<br/>
- ${preReq.description}
- <c:if test="${!preReq.present}">
- <br /><b><font color="red">NOT AVAILABLE</font></b>
- </c:if>
- </c:forEach>
- </c:otherwise>
- </c:choose>
- </c:forEach>
- </c:otherwise>
- </c:choose>
- </td>
- </tr>
- <tr>
<th align="right" valign="top">Obsoletes:</th>
<td>
<c:choose>
- <c:when test="${empty pluginArtifact.obsoletes}">
+ <c:when test="${empty plugin.obsoletes}">
<i>None</i>
</c:when>
<c:otherwise>
- <c:forEach var="module" items="${pluginArtifact.obsoletes}">
+ <c:forEach var="module" items="${plugin.obsoletes}">
${module.groupId}/${module.artifactId}/${module.version}/${module.type}<br />
</c:forEach>
</c:otherwise>
</c:choose>
</td>
</tr>
+ <tr>
+ <th align="right" valign="top">Installable:</th>
+ <td>
+ ${plugin.installable ? "<img alt='check' src='/console/images/checkmark._16_green.png' />" : "<strong><font color='red'>X</font></strong>"}
+ ${validation}
+ </td>
+ </tr>
</table>
+<P>
-<%--<c:if test="${plugin.eligible}">--%>
<form name="<portlet:namespace/>PluginForm" action="<portlet:actionURL/>">
+<table><tr>
+<c:if test="${plugin.installable}">
+<td valign="top">
+ <input type="submit" value="Install" />
<input type="hidden" name="configId" value="${configId}" />
<input type="hidden" name="mode" value="viewForDownload-after" />
<input type="hidden" name="repository" value="${repository}" />
<input type="hidden" name="repo-user" value="${repouser}" />
<input type="hidden" name="repo-pass" value="${repopass}" />
- <input type="submit" value="Continue" />
+<td>
+</c:if>
+<td valign="top">
+<input type="submit" value="Return" onclick="history.go(-1); return false;" />
+</td></tr></table>
</form>
-<%--</c:if>--%>
-
-<p><a href="<portlet:actionURL portletMode="view"><portlet:param name="mode" value="index-before" /></portlet:actionURL>">Cancel</a></p>
Added: geronimo/plugins/console/trunk/console-portal-driver/src/main/webapp/images/checkmark._16_green.png
URL: http://svn.apache.org/viewvc/geronimo/plugins/console/trunk/console-portal-driver/src/main/webapp/images/checkmark._16_green.png?rev=578514&view=auto
==============================================================================
Binary file - no diff available.
Propchange: geronimo/plugins/console/trunk/console-portal-driver/src/main/webapp/images/checkmark._16_green.png
------------------------------------------------------------------------------
svn:mime-type = image/png