Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 30154 invoked from network); 9 Feb 2011 15:48:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Feb 2011 15:48:30 -0000 Received: (qmail 46302 invoked by uid 500); 9 Feb 2011 15:48:30 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 46160 invoked by uid 500); 9 Feb 2011 15:48:27 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 46149 invoked by uid 99); 9 Feb 2011 15:48:26 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Feb 2011 15:48:26 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Feb 2011 15:48:24 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B54AD23888FE; Wed, 9 Feb 2011 15:48:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1068943 - in /geronimo/devtools/eclipse-plugin/trunk/plugins: org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/ org.apache.geronimo.st... Date: Wed, 09 Feb 2011 15:48:04 -0000 To: scm@geronimo.apache.org From: tkirby@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110209154804.B54AD23888FE@eris.apache.org> Author: tkirby Date: Wed Feb 9 15:48:03 2011 New Revision: 1068943 URL: http://svn.apache.org/viewvc?rev=1068943&view=rev Log: GERONIMODEVTOOLS-704 Provide a check box to clean server cache when start server from GEP. Add --clean parameter when checked to clean the OSGi bundle cache. Added: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/commands/SetCleanOSGiBundleCacheCommand.java (with props) geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/sections/ServerEditorCleanOSGiBundleCacheSection.java (with props) Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorLogLevelSection.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorPublishAdvancedSection.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorTestEnvSection.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerBehaviourDelegate.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerDelegate.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/plugin.xml geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/Messages.java geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/Messages.properties geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/internal/Trace.java Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorLogLevelSection.java URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorLogLevelSection.java?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorLogLevelSection.java (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorLogLevelSection.java Wed Feb 9 15:48:03 2011 @@ -29,7 +29,6 @@ import org.eclipse.swt.widgets.Composite import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.wst.server.ui.editor.ServerEditorSection; /** * @version $Rev$ $Date$ Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorPublishAdvancedSection.java URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorPublishAdvancedSection.java?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorPublishAdvancedSection.java (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorPublishAdvancedSection.java Wed Feb 9 15:48:03 2011 @@ -16,7 +16,6 @@ */ package org.apache.geronimo.st.ui.sections; -import org.apache.geronimo.st.core.GeronimoServerDelegate; import org.apache.geronimo.st.ui.commands.SetPublishTimeoutCommand; import org.apache.geronimo.st.ui.internal.Messages; import org.eclipse.swt.SWT; Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorTestEnvSection.java URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorTestEnvSection.java?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorTestEnvSection.java (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.ui/src/main/java/org/apache/geronimo/st/ui/sections/ServerEditorTestEnvSection.java Wed Feb 9 15:48:03 2011 @@ -19,7 +19,6 @@ package org.apache.geronimo.st.ui.sectio import java.util.List; import org.apache.geronimo.st.core.ClasspathContainersHelper; -import org.apache.geronimo.st.core.GeronimoServerBehaviourDelegate; import org.apache.geronimo.st.ui.commands.SetClasspathContainersCommand; import org.apache.geronimo.st.ui.commands.SetInPlaceSharedLibCommand; import org.apache.geronimo.st.ui.commands.SetNotRedeployJSPFilesCommand; Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerBehaviourDelegate.java URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerBehaviourDelegate.java?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerBehaviourDelegate.java (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerBehaviourDelegate.java Wed Feb 9 15:48:03 2011 @@ -28,9 +28,12 @@ import java.nio.channels.FileChannel; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.ListIterator; import java.util.Map; +import java.util.Set; import java.util.Timer; import javax.enterprise.deploy.spi.Target; @@ -140,12 +143,55 @@ abstract public class GeronimoServerBeha // exactly what we want the GEP user to see. wc.setAttribute(ERROR_SETUP_LAUNCH_CONFIGURATION, e.getMessage()); } - String serverProgArgs = getServerDelegate().getConsoleLogLevel(); - if (existingProgArgs == null || existingProgArgs.indexOf(serverProgArgs) < 0) { - wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, serverProgArgs); + String serverProgramArgs = getServerProgramArgs(existingProgArgs, getServerDelegate()); + Trace.tracePoint("GeronimoServerBehaviourDelegate.v30", "setupLaunchConfiguration serverProgramArgs", + serverProgramArgs); + wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, serverProgramArgs); + + String vmArgs = getServerDelegate().getVMArgs(); + Trace.tracePoint("GeronimoServerBehaviourDelegate.v30", "setupLaunchConfiguration serverVMArgs", vmArgs); + wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, vmArgs); + } + + /** + * remove args no longer specified, add newly specified args, and only specify them once. + * @param existingProgArgs + * @param serverDelegate + * @return + */ + private String getServerProgramArgs(String existingProgArgs, GeronimoServerDelegate serverDelegate) { + List parms = new ArrayList(Arrays.asList(existingProgArgs.split("\\s+"))); + Set parmsSet = serverDelegate.getProgramArgs(); + Set parmsNotSet = serverDelegate.getProgramArgsNotSet(); + Set parmsSeen = new HashSet(parmsSet.size()); + // remove notSet and duplicate set paramaters from the list + for(ListIterator iterator = parms.listIterator(); iterator.hasNext();) { + String parm = iterator.next(); + if (parmsNotSet.contains(parm) || parmsSeen.contains(parm)) { + iterator.remove(); + continue; + } + if (parmsSet.contains(parm)) { + parmsSet.remove(parm); + parmsSeen.add(parm); + } + } + StringBuffer sb = new StringBuffer(); + // add new parms to front + for (String parm : parmsSet) { + if (sb.length() > 0) { + sb.append(" "); + } + sb.append(parm); + } + // valid existing parms + for (String parm : parms) { + if (sb.length() > 0) { + sb.append(" "); + } + sb.append(parm); } - - wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, getServerDelegate().getVMArgs()); + return sb.toString(); } Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerDelegate.java URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerDelegate.java?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerDelegate.java (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.core/src/main/java/org/apache/geronimo/st/v30/core/GeronimoServerDelegate.java Wed Feb 9 15:48:03 2011 @@ -20,8 +20,10 @@ import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.jar.Manifest; @@ -68,6 +70,8 @@ abstract public class GeronimoServerDele public static final String PROPERTY_HTTP_PORT = "WebConnector"; + public static final String PROPERTY_CLEAN_OSGI_BUNDLE_CACHE = "cleanOSGiBundleCache"; + public static final String PROPERTY_LOG_LEVEL = "logLevel"; public static final String PROPERTY_VM_ARGS = "VMArgs"; @@ -93,6 +97,8 @@ abstract public class GeronimoServerDele public static final String CONSOLE_INFO = "--long"; public static final String CONSOLE_DEBUG = "-vv"; + + public static final String CLEAN_OSGI_BUNDLE_CACHE = "--clean"; public abstract String getContextRoot(IModule module) throws Exception ; @@ -298,6 +304,7 @@ abstract public class GeronimoServerDele setHTTPPort("8080"); setRMINamingPort("1099"); setConsoleLogLevel(CONSOLE_INFO); + setCleanOSGiBundleCache(""); setPingDelay(new Integer(10000)); setMaxPings(new Integer(40)); setPingInterval(new Integer(5000)); @@ -363,6 +370,39 @@ abstract public class GeronimoServerDele } + public String getCleanOSGiBundleCache() { + return getInstanceProperty(PROPERTY_CLEAN_OSGI_BUNDLE_CACHE); + } + + public void setCleanOSGiBundleCache(String value) { + setInstanceProperty(PROPERTY_CLEAN_OSGI_BUNDLE_CACHE, value); + } + + public Set getProgramArgs() { + Set parms = new HashSet(2); + parms.add(getConsoleLogLevel()); + String clean = getCleanOSGiBundleCache(); + if (clean.length() > 0) { + parms.add(clean); + } + return parms; + } + + public Set getProgramArgsNotSet() { + Set notParms = new HashSet(2); + String logLevel = getConsoleLogLevel(); + if (logLevel.equals(CONSOLE_INFO)) { + notParms.add(CONSOLE_DEBUG); + } else { + notParms.add(CONSOLE_INFO); + } + String clean = getCleanOSGiBundleCache(); + if (clean.equals("")) { + notParms.add(CLEAN_OSGI_BUNDLE_CACHE); + } + return notParms; + } + // // PROPERTY_VM_ARGS // Modified: geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/plugin.xml URL: http://svn.apache.org/viewvc/geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/plugin.xml?rev=1068943&r1=1068942&r2=1068943&view=diff ============================================================================== --- geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/plugin.xml (original) +++ geronimo/devtools/eclipse-plugin/trunk/plugins/org.apache.geronimo.st.v30.ui/plugin.xml Wed Feb 9 15:48:03 2011 @@ -142,6 +142,14 @@ +
+
+
+ +