You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ke...@apache.org on 2008/02/05 05:04:57 UTC

svn commit: r618530 - 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: kevan
Date: Mon Feb  4 20:04:56 2008
New Revision: 618530

URL: http://svn.apache.org/viewvc?rev=618530&view=rev
Log:
GERONIMO-3746 Merge from branches/2.1. Patch from Joe Leong. Thanks Joe! Fixes plugin progress bar on plugin installation. Also, fixes occasional prompts for user name and password while moving from one page to the next

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/ResultsHandler.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
    geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/results.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=618530&r1=618529&r2=618530&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 Mon Feb  4 20:04:56 2008
@@ -22,12 +22,14 @@
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpServletRequest;
 
+import org.apache.geronimo.console.car.ManagementHelper;
 import org.apache.geronimo.gbean.AbstractName;
 import org.apache.geronimo.gbean.AbstractNameQuery;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.KernelRegistry;
 import org.apache.geronimo.system.plugin.DownloadResults;
 import org.apache.geronimo.system.plugin.PluginInstaller;
+import org.apache.geronimo.system.plugin.PluginInstallerGBean;
 import org.directwebremoting.ScriptSession;
 import org.directwebremoting.WebContext;
 import org.directwebremoting.WebContextFactory;
@@ -47,12 +49,14 @@
     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);
+        //DownloadResults results = getPluginInstaller().checkOnInstall(downloadKey);
         ScriptProxy scriptProxy = new ScriptProxy();
         scriptProxy.addScriptSession(scriptSession);
         
+        PluginInstallerGBean pluginInstallerInternal = (PluginInstallerGBean) getPluginInstaller();
+        DownloadResults results = pluginInstallerInternal.checkOnInstall(downloadKey, false);
+        
         //In the event results.isFinished is passed in true during polling
         scriptProxy.addFunctionCall("setMainMessage", results.getCurrentMessage());
         scriptProxy.addFunctionCall("setProgressCurrentFile", results.getCurrentFile());
@@ -65,22 +69,19 @@
             
             // get an update on the download progress, sleep time reduce to poll faster for smaller files
             Thread.sleep(100);
-            results = getPluginInstaller().checkOnInstall(downloadKey);
+            //results = getPluginInstaller().checkOnInstall(downloadKey);
+            results = pluginInstallerInternal.checkOnInstall(downloadKey, false);
         }
         
         if(results.isFailed()) {
+            scriptProxy.addFunctionCall("setErrorMessage", results.getFailure().toString());
             throw new Exception("Unable to install configuration", results.getFailure());
         }
         
-        //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");
+        
     }
     
     private synchronized PluginInstaller getPluginInstaller() throws Exception {

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=618530&r1=618529&r2=618530&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 Mon Feb  4 20:04:56 2008
@@ -21,21 +21,21 @@
 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 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.car.ManagementHelper;
+import org.apache.geronimo.system.plugin.PluginInstallerGBean;
 import org.apache.geronimo.console.MultiPageModel;
 import org.apache.geronimo.kernel.repository.Artifact;
 import org.apache.geronimo.system.plugin.DownloadResults;
-import org.directwebremoting.WebContextFactory;
+import org.apache.geronimo.system.plugin.PluginInstaller;
 
 /**
  * Handler for the initial download screen.
@@ -68,26 +68,14 @@
     }
 
     public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
+        PluginInstallerGBean pluginInstaller = (PluginInstallerGBean) ManagementHelper.getManagementHelper(request).getPluginInstaller();
         String[] configId = request.getParameterValues("configId");
         String repo = request.getParameter("repository");
         String user = request.getParameter("repo-user");
         String pass = request.getParameter("repo-pass");
+        int downloadKey = Integer.parseInt(request.getParameter("download-key"));
+        DownloadResults results = pluginInstaller.checkOnInstall(downloadKey, true);
 
-        //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>();
         if (results != null) {
             if(results.isFailed()) {

Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ResultsHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ResultsHandler.java?rev=618530&r1=618529&r2=618530&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ResultsHandler.java (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/java/org/apache/geronimo/console/car/ResultsHandler.java Mon Feb  4 20:04:56 2008
@@ -51,7 +51,7 @@
         String repo = request.getParameter("repository");
         String user = request.getParameter("repo-user");
         String pass = request.getParameter("repo-pass");
-        String configId = request.getParameter("configId");
+        String[] configId = request.getParameterValues("configId");
         request.setAttribute("configId", configId);
         List deps = (List) request.getPortletSession(true).getAttribute("car.install.results");
         request.setAttribute("dependencies", deps);
@@ -61,7 +61,7 @@
     }
 
     public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException {
-        String configId = request.getParameter("configId");
+        String[] configId = request.getParameterValues("configId");
         String repo = request.getParameter("repository");
         String user = request.getParameter("repo-user");
         String pass = request.getParameter("repo-pass");
@@ -70,11 +70,14 @@
         if(!isEmpty(pass)) response.setRenderParameter("repo-pass", pass);
         try {
             //todo: hide this in PortletManager/ManagementHelper
-            ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(KernelRegistry.getSingleKernel());
-            Artifact artifact = Artifact.create(configId);
-            mgr.loadConfiguration(artifact);
-            mgr.startConfiguration(artifact);
-            return LIST_MODE;
+            for(int i=0; i<configId.length; i++) {
+                ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(KernelRegistry.getSingleKernel());
+                Artifact artifact = Artifact.create(configId[i]); 
+                mgr.loadConfiguration(artifact);
+                mgr.startConfiguration(artifact);
+            }
+            return INDEX_MODE;
+            //return LIST_MODE;
         } catch (Exception e) {
             log.error("Unable to start configuration "+configId, e);
             response.setRenderParameter("configId", configId);

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=618530&r1=618529&r2=618530&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 Mon Feb  4 20:04:56 2008
@@ -95,6 +95,7 @@
 car.pluginParams.uniqueIDExp                  = The globally unique ID for this plugin.  This is determined from the installation in the server you're exporting.  This defines the version number for the plugin, so make sure it's correct.
 car.results.filesProcessed                    = Files Processed
 car.results.title                             = The plugin {0} has been installed.
+car.results.titles                            = The following plugin(s) have been installed:
 car.viewForDownload.author                    = Author
 car.viewForDownload.dependencies              = Dependencies
 car.viewForDownload.description               = Description
@@ -148,6 +149,7 @@
 consolebase.common.usage           = usage
 consolebase.common.user            = User
 consolebase.common.userName        = Username
+consolebase.common.done            = Done
 
 realmwizard._sql.JDBCDriverClassExp              = The fully-qualified JDBC driver class name.  This driver must be located in the JAR specified in the next field.
 realmwizard._sql.JDBCPasswordExp                 = The password used to connect to the database

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=618530&r1=618529&r2=618530&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 Mon Feb  4 20:04:56 2008
@@ -39,14 +39,23 @@
         </div>
     </div>
 </div>
-
+<br>
 <div id="<portlet:namespace/>ErrorArea"></div>
+<div id="<portlet:namespace/>ErrorMessage"></div>
+<div id="<portlet:namespace/>BackBtn"></div>
 
 <script type="text/javascript">
 dwr.engine.setErrorHandler(<portlet:namespace/>onError);
 
+function setErrorMessage(errorMsg) {
+    if (errorMsg != null) {
+        document.getElementById('<portlet:namespace/>ErrorMessage').innerHTML = errorMsg;
+        document.getElementById('<portlet:namespace/>BackBtn').innerHTML = "<br><form><input type='submit' value='Go Back' onclick='history.go(-3); return false;' /></form>";
+    }
+}
+
 function <portlet:namespace/>onError() {
-    dwr.util.setValue("<portlet:namespace/>ErrorArea", 'I had a problem!');
+    dwr.util.setValue("<portlet:namespace/>ErrorArea", 'A problem has occured: ');
 }
 
 function setMainMessage(mainMessage) {
@@ -84,10 +93,6 @@
 }
 
 function setFinished() {
-    <%
-        DownloadResults results = (DownloadResults) request.getAttribute("console.plugins.DownloadResults");
-        System.out.println("Results are" + results);
-    %>
     document.forms['<portlet:namespace/>ContinueForm'].submit();
 }
 

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=618530&r1=618529&r2=618530&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 Mon Feb  4 20:04:56 2008
@@ -26,6 +26,8 @@
     <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="hidden" name="download-key" value="${downloadKey}" /> 
+    
     <%  String[] configIds = request.getParameterValues("configIds");
         for(int i=0;i<configIds.length;i++){
     %>
@@ -35,7 +37,7 @@
     %>
 </form>
 
-<jsp:include flush="true" page="../ajax/progressbar.jsp?downloadKey=${downloadKey}"/>
+<jsp:include flush="false" page="../ajax/progressbar.jsp?downloadKey=${downloadKey}"/>
 
 <script type="text/javascript">
     dwr.engine.setActiveReverseAjax(true);

Modified: geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/results.jsp
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/results.jsp?rev=618530&r1=618529&r2=618530&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/results.jsp (original)
+++ geronimo/server/trunk/plugins/console/plugin-portlets/src/main/webapp/WEB-INF/view/car/results.jsp Mon Feb  4 20:04:56 2008
@@ -22,10 +22,15 @@
 <fmt:setBundle basename="pluginportlets"/>
 <portlet:defineObjects/>
 <p>
-<fmt:message key="car.results.title" >
-<fmt:param  value="${configId}"/>
-</fmt:message>
+<fmt:message key="car.results.titles" />
 </p>
+<% 
+    String[] configIds = request.getParameterValues("configId");
+    for(int j=0;j<configIds.length;j++){
+%>
+        <%= configIds[j] %><br>
+<%  }%>
+    
 
 <c:if test="${! empty dependencies}">
   <p><b><fmt:message key="car.results.filesProcessed" />:</b></p>
@@ -37,11 +42,17 @@
 </c:if>
 
 <form name="<portlet:namespace/>PluginForm" action="<portlet:actionURL/>">
-    <input type="hidden" name="mode" value="results-after" />
-    <input type="hidden" name="configId" value="${configId}" />
+    <input type="hidden" name="mode" value="index-before" />
     <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='<fmt:message key="consolebase.common.start"/> ${configId}' />
+    <%  
+        for(int i=0;i<configIds.length;i++){
+    %>
+    <input type="hidden" name="configId" value="<%=configIds[i]%>" />
+    <%
+        }
+    %>
+    <input type="submit" value='<fmt:message key="consolebase.common.done"/>' />
 </form>