You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2008/01/31 22:16:19 UTC
svn commit: r617243 - in
/geronimo/server/trunk/plugins/console/plugin-portlets/src/main:
java/org/apache/geronimo/console/ajax/
java/org/apache/geronimo/console/car/ resources/ webapp/WEB-INF/view/ajax/
webapp/WEB-INF/view/car/
Author: djencks
Date: Thu Jan 31 13:16:05 2008
New Revision: 617243
URL: http://svn.apache.org/viewvc?rev=617243&view=rev
Log:
GERONIMO-3746 apply intermediate patch from JCLeong fixing some of the plugin installer issues
Modified:
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/ajax/ProgressMonitor.java
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/DownloadStatusHandler.java
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ViewPluginDownloadHandler.java
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/resources/pluginportlets.properties
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/ajax/progressbar.jsp
geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/downloadStatus.jsp
Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/ajax/ProgressMonitor.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/ajax/ProgressMonitor.java?rev=617243&r1=617242&r2=617243&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/ajax/ProgressMonitor.java (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/ajax/ProgressMonitor.java Thu Jan 31 13:16:05 2008
@@ -19,6 +19,9 @@
import java.util.Set;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletRequest;
+
import org.apache.geronimo.gbean.AbstractName;
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.kernel.Kernel;
@@ -44,19 +47,24 @@
public void getProgressInfo(Integer downloadKey) throws Exception {
// DWR objects
WebContext wctx = WebContextFactory.get();
+ HttpSession session = wctx.getSession();
ScriptSession scriptSession = wctx.getScriptSession();
-
DownloadResults results = getPluginInstaller().checkOnInstall(downloadKey);
ScriptProxy scriptProxy = new ScriptProxy();
scriptProxy.addScriptSession(scriptSession);
+ //In the event results.isFinished is passed in true during polling
+ scriptProxy.addFunctionCall("setMainMessage", results.getCurrentMessage());
+ scriptProxy.addFunctionCall("setProgressCurrentFile", results.getCurrentFile());
+
while (!results.isFinished()) {
// update the progress bar
+ scriptProxy.addFunctionCall("setProgressCurrentFile", results.getCurrentFile());
scriptProxy.addFunctionCall("setProgressPercent", results.getCurrentFilePercent());
scriptProxy.addFunctionCall("setMainMessage", results.getCurrentMessage());
- // get an update on the download progress
- Thread.sleep(1000);
+ // get an update on the download progress, sleep time reduce to poll faster for smaller files
+ Thread.sleep(100);
results = getPluginInstaller().checkOnInstall(downloadKey);
}
@@ -64,9 +72,14 @@
throw new Exception("Unable to install configuration", results.getFailure());
}
- // store the download results in the http sesssion
- wctx.getSession(true).setAttribute("console.plugins.DownloadResults", results);
-
+ //store the download results in the http sesssion
+ HttpServletRequest request = wctx.getHttpServletRequest();
+ request.setAttribute("console.plugins.DownloadResults", results);
+
+ //wctx.getSession(true).setAttribute("console.plugins.DownloadResults", results);
+
+ //Fills bar at the end in the event the poller didn't catch the 100
+ scriptProxy.addFunctionCall("setProgressFull");
scriptProxy.addFunctionCall("setFinished");
}
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=617243&r1=617242&r2=617243&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 Thu Jan 31 13:16:05 2008
@@ -27,10 +27,15 @@
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.geronimo.system.plugin.PluginInstaller;
+import org.apache.geronimo.console.ajax.ProgressMonitor;
import org.apache.geronimo.console.MultiPageModel;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.system.plugin.DownloadResults;
+import org.directwebremoting.WebContextFactory;
/**
* Handler for the initial download screen.
@@ -38,48 +43,65 @@
* @version $Rev$ $Date$
*/
public class DownloadStatusHandler extends BaseImportExportHandler {
-
public DownloadStatusHandler() {
super(DOWNLOAD_STATUS_MODE, "/WEB-INF/view/car/downloadStatus.jsp");
}
public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
return getMode();
+
}
public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException {
- String configId = request.getParameter("configId");
+ String[] configId = request.getParameterValues("configIds");
String repo = request.getParameter("repository");
String user = request.getParameter("repo-user");
String pass = request.getParameter("repo-pass");
String downloadKey = request.getParameter("downloadKey");
- request.setAttribute("configId", configId);
+
request.setAttribute("repository", repo);
request.setAttribute("repouser", user);
request.setAttribute("repopass", pass);
request.setAttribute("downloadKey", downloadKey);
+ request.setAttribute("configIds", configId);
+
}
public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
+ String[] configId = request.getParameterValues("configId");
String repo = request.getParameter("repository");
String user = request.getParameter("repo-user");
String pass = request.getParameter("repo-pass");
- String configId = request.getParameter("configId");
- PortletSession session = request.getPortletSession(true);
- DownloadResults results = (DownloadResults) session.getAttribute(DOWNLOAD_RESULTS_SESSION_KEY,PortletSession.APPLICATION_SCOPE);
- if(results.isFailed()) {
- throw new PortletException("Unable to install configuration", results.getFailure());
- }
+ //DownloadResults results = (DownloadResults) request.getAttribute("results");
+ //Integer downloadKey = Integer.parseInt(downloadKeys);
+
+ //ProgressMonitor mResults = null;
+ //mResults.getProgressInfo(downloadKey);
+ //DownloadResults results = mResults.dwrSession();
+
+ DownloadResults results = (DownloadResults) request.getAttribute("console.plugins.DownloadResults");
+ //DownloadResults result2 = (DownloadResults) request.getPortletSession(true).getAttribute("console.plugins.DownloadResults");
+
+ //DownloadResults results = (DownloadResults) request.getPortletSession(true).getAttribute("console.plugins.DownloadResults", PortletSession.APPLICATION_SCOPE);
+ //DownloadResults results = (DownloadResults) session.getAttribute("console.plugins.DownloadResults");
+ //DownloadResults results = (DownloadResults) session.getAttribute(DOWNLOAD_RESULTS_SESSION_KEY);
+ //No Work DownloadResults results = (DownloadResults) request.getPortletSession(true).getAttribute("console.plugins.DownloadResults", PortletSession.APPLICATION_SCOPE);
+ //DownloadResults results = (DownloadResults) session.getAttribute(DOWNLOAD_RESULTS_SESSION_KEY,PortletSession.APPLICATION_SCOPE);
List<InstallResults> dependencies = new ArrayList<InstallResults>();
- for (Artifact uri: results.getDependenciesInstalled()) {
- dependencies.add(new InstallResults(uri.toString(), "installed"));
- }
- for (Artifact uri: results.getDependenciesPresent()) {
- dependencies.add(new InstallResults(uri.toString(), "already present"));
+ if (results != null) {
+ if(results.isFailed()) {
+ //TODO is this an appropriate way to explain failure?
+ throw new PortletException("Unable to install configuration", results.getFailure());
+ }
+ for (Artifact uri: results.getDependenciesInstalled()) {
+ dependencies.add(new InstallResults(uri.toString(), "installed"));
+ }
+ for (Artifact uri: results.getDependenciesPresent()) {
+ dependencies.add(new InstallResults(uri.toString(), "already present"));
+ }
}
request.getPortletSession(true).setAttribute("car.install.results", dependencies);
-
response.setRenderParameter("configId", configId);
response.setRenderParameter("repository", repo);
if(!isEmpty(user)) response.setRenderParameter("repo-user", user);
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=617243&r1=617242&r2=617243&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 Thu Jan 31 13:16:05 2008
@@ -132,6 +132,7 @@
Object downloadKey = pluginInstaller.startInstall(installList, repo, false, user, pass);
DownloadResults results = pluginInstaller.checkOnInstall(downloadKey);
request.getPortletSession(true).setAttribute(DOWNLOAD_RESULTS_SESSION_KEY, results);
+
response.setRenderParameter("configIds", configIds);
response.setRenderParameter("repository", repo);
response.setRenderParameter("downloadKey", downloadKey.toString());
Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/resources/pluginportlets.properties
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/resources/pluginportlets.properties?rev=617243&r1=617242&r2=617243&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/resources/pluginportlets.properties (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/resources/pluginportlets.properties Thu Jan 31 13:16:05 2008
@@ -59,7 +59,7 @@
car.confirmExport.useBtnBelow = Use the button below to save the plugin "{0}" to disk.
car.download.foundDependencies = Found the following dependencies for this plugin. Any missing dependencies will be installed for you automatically if you proceed.
car.download.processing = Processing {0}...
-car.downloadStatus.processing = Processing {0}...
+car.downloadStatus.processing = Current file being operated on...
car.index.assembleServerLong = Assemble a server from plugins in this one
car.index.assembleServer = Assemble a server
car.index.createGeronimoPluginExp = Choose a configuration in the current Geronimo server to export as a Geronimo plugin. The configuration will be saved as a CAR file to your local filesystem. <i>Note: at present, you must manually add a <tt>META-INF/geronimo-plugin.xml</tt> file to the CAR after you export it in order for it to be a valid plugin.</i>
Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/ajax/progressbar.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/ajax/progressbar.jsp?rev=617243&r1=617242&r2=617243&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/ajax/progressbar.jsp (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/ajax/progressbar.jsp Thu Jan 31 13:16:05 2008
@@ -16,12 +16,32 @@
--%>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
+<%@ page import="org.apache.geronimo.system.plugin.DownloadResults"%>
+<%@page import="com.sun.mail.iap.Response"%>
<fmt:setBundle basename="pluginportlets"/>
+<fmt:message key="car.downloadStatus.processing"/>
<portlet:defineObjects/>
<script type='text/javascript' src='/plugin/dwr/interface/ProgressMonitor.js'></script>
<script type='text/javascript' src='/plugin/dwr/engine.js'></script>
<script type='text/javascript' src='/plugin/dwr/util.js'></script>
+<div id="<portlet:namespace/>progressMeter" style="display: none; padding-top: 5px;">
+ <div>
+ <div id="<portlet:namespace/>progressMeterCurrentFile"></div>
+ <br/>
+ <br/>
+ <br/>
+ <br/>
+ <div id="<portlet:namespace/>progressMeterMainMessage"></div>
+ <div id="<portlet:namespace/>progressMeterSubMessage"></div>
+ <div id="<portlet:namespace/>progressMeterShell" style="display: none; width: 350px; height: 20px; border: 1px inset; background: #eee;">
+ <div id="<portlet:namespace/>progressMeterBar" style="width: 0; height: 20px; border-right: 1px solid #444; background: #9ACB34;"></div>
+ </div>
+ </div>
+</div>
+
+<div id="<portlet:namespace/>ErrorArea"></div>
+
<script type="text/javascript">
dwr.engine.setErrorHandler(<portlet:namespace/>onError);
@@ -35,6 +55,12 @@
}
}
+function setProgressCurrentFile(mainFile) {
+ if (mainFile != null) {
+ document.getElementById('<portlet:namespace/>progressMeterCurrentFile').innerHTML = mainFile;
+ }
+}
+
function setSubMessage(subMessage) {
if (subMessage != null) {
document.getElementById('<portlet:namespace/>progressMeterSubMessage').innerHTML = subMessage;
@@ -51,8 +77,18 @@
}
}
+//For Aesthetics
+function setProgressFull() {
+ document.getElementById('<portlet:namespace/>progressMeterShell').style.display = 'block';
+ document.getElementById('<portlet:namespace/>progressMeterBar').style.width = parseInt(350) + 'px';
+}
+
function setFinished() {
- document.forms['ContinueForm'].submit();
+ <%
+ DownloadResults results = (DownloadResults) request.getAttribute("console.plugins.DownloadResults");
+ System.out.println("Results are" + results);
+ %>
+ document.forms['<portlet:namespace/>ContinueForm'].submit();
}
function <portlet:namespace/>startProgress()
@@ -63,18 +99,6 @@
metadata.errorHandler=<portlet:namespace/>onError;
ProgressMonitor.getProgressInfo(${downloadKey},metadata);
}
-
</script>
-<div id="<portlet:namespace/>progressMeter" style="display: none; padding-top: 5px;">
- <br/>
- <div>
- <div id="<portlet:namespace/>progressMeterMainMessage"></div>
- <div id="<portlet:namespace/>progressMeterSubMessage"></div>
- <div id="<portlet:namespace/>progressMeterShell" style="display: none; width: 350px; height: 20px; border: 1px inset; background: #eee;">
- <div id="<portlet:namespace/>progressMeterBar" style="width: 0; height: 20px; border-right: 1px solid #444; background: #9ACB34;"></div>
- </div>
- </div>
-</div>
-<div id="<portlet:namespace/>ErrorArea"></div>
Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/downloadStatus.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/downloadStatus.jsp?rev=617243&r1=617242&r2=617243&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/downloadStatus.jsp (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/downloadStatus.jsp Thu Jan 31 13:16:05 2008
@@ -21,19 +21,18 @@
<fmt:setBundle basename="pluginportlets"/>
<portlet:defineObjects/>
-<p>
-<fmt:message key="car.downloadStatus.processing" >
-<fmt:param value="${configIds}"/>
-</fmt:message>
-</p>
-
-
-<form name="<portlet:namespace/>ContinueForm" action="<portlet:actionURL/>">
+<form name="<portlet:namespace/>ContinueForm" action="<portlet:actionURL/>" method="POST">
<input type="hidden" name="mode" value="downloadStatus-after" />
- <%--<input type="hidden" name="configId" value="${configId}" />--%>
<input type="hidden" name="repository" value="${repository}" />
<input type="hidden" name="repo-user" value="${repouser}" />
<input type="hidden" name="repo-pass" value="${repopass}" />
+ <% String[] configIds = request.getParameterValues("configIds");
+ for(int i=0;i<configIds.length;i++){
+ %>
+ <input type="hidden" name="configId" value="<%=configIds[i]%>" />
+ <%
+ }
+ %>
</form>
<jsp:include flush="true" page="../ajax/progressbar.jsp?downloadKey=${downloadKey}"/>
@@ -42,6 +41,7 @@
dwr.engine.setActiveReverseAjax(true);
<portlet:namespace/>startProgress();
</script>
+
<%--
<p><a href="<portlet:actionURL portletMode="view"><portlet:param name="mode" value="index-before" /></portlet:actionURL>">
<fmt:message key="consolebase.common.cancel"/></a></p>