? build ? mypatch.txt Index: src/docroot/applications/deployTable.inc =================================================================== RCS file: /cvs/glassfish/admin-gui/src/docroot/applications/deployTable.inc,v retrieving revision 1.1 diff -c -r1.1 deployTable.inc *** src/docroot/applications/deployTable.inc 19 Jan 2007 03:25:34 -0000 1.1 --- src/docroot/applications/deployTable.inc 17 Mar 2007 16:36:36 -0000 *************** *** 145,150 **** --- 145,156 ---- + + + + Index: src/java/com/sun/enterprise/tools/admingui/handlers/DeploymentHandler.java =================================================================== RCS file: /cvs/glassfish/admin-gui/src/java/com/sun/enterprise/tools/admingui/handlers/DeploymentHandler.java,v retrieving revision 1.5 diff -c -r1.5 DeploymentHandler.java *** src/java/com/sun/enterprise/tools/admingui/handlers/DeploymentHandler.java 14 Mar 2007 17:07:33 -0000 1.5 --- src/java/com/sun/enterprise/tools/admingui/handlers/DeploymentHandler.java 17 Mar 2007 17:26:14 -0000 *************** *** 32,42 **** import java.util.List; import java.util.ArrayList; import java.util.Arrays; - import java.util.Iterator; import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.Properties; import com.sun.enterprise.connectors.ConnectorRuntime; --- 32,42 ---- import java.util.List; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.Properties; + import java.util.Collection; import com.sun.enterprise.connectors.ConnectorRuntime; *************** *** 54,67 **** import com.sun.appserv.management.config.RARModuleConfig; import com.sun.appserv.management.config.AppClientModuleConfig; import com.sun.appserv.management.config.ResourceAdapterConfig; import com.sun.jsftemplating.annotation.Handler; import com.sun.jsftemplating.annotation.HandlerInput; import com.sun.jsftemplating.annotation.HandlerOutput; import com.sun.jsftemplating.layout.descriptors.handler.HandlerContext; - - import javax.management.Attribute; - import javax.management.AttributeList; import javax.management.ObjectName; --- 54,67 ---- import com.sun.appserv.management.config.RARModuleConfig; import com.sun.appserv.management.config.AppClientModuleConfig; import com.sun.appserv.management.config.ResourceAdapterConfig; + import com.sun.appserv.management.j2ee.J2EEDeployedObject; + import com.sun.appserv.management.j2ee.J2EEServer; + import com.sun.appserv.management.j2ee.WebModule; import com.sun.jsftemplating.annotation.Handler; import com.sun.jsftemplating.annotation.HandlerInput; import com.sun.jsftemplating.annotation.HandlerOutput; import com.sun.jsftemplating.layout.descriptors.handler.HandlerContext; import javax.management.ObjectName; *************** *** 502,505 **** --- 502,569 ---- map.put(key, ""); } } + + /** + *

This method reloads a given web application. Uses .reload file touching + * to reload a given web application

+ * + *

Output value: "reloaded" -- Type: Boolean.class/

+ * @param context The HandlerContext. + */ + @Handler(id="reloadWebApp", + input={ + @HandlerInput(name="appName", type=String.class) + }, + output={ + @HandlerOutput(name="reloaded", type=Boolean.class)}) + public static void reloadWebApp(HandlerContext handlerCtx) { + + final String appName = (String)handlerCtx.getInputValue("appName"); + System.out.println("reloadWebApp('" + appName + "'" ); + + //reloaded is by default false + boolean reloaded = false; + final Map map = + AMXUtil.getJ2EEDomain().getJ2EEServerMap(); + final Collection j2eeServers = map.values(); + //find WebModule object with name '//serverName/appName' + for(final J2EEServer server : j2eeServers) { + final Set objs = server.getDeployedObjectsSet(); + for(final J2EEDeployedObject obj : objs) { + if(obj != null && obj instanceof WebModule) { + final WebModule webModule = (WebModule)obj; + final String webAppName = "//" + server.getName() + + '/' + appName; + if(webAppName.equals(webModule.getName())) { + //found web application WebModule interface + try { + //touch .reload in j2eemodules context + final String reloadFilePath = + webModule.getDocBase() + + File.separatorChar + ".reload"; + final File reloadFile = new File(reloadFilePath); + System.out.println("Touching " + reloadFilePath); + reloaded = (reloadFile.exists()) ? + reloadFile.setLastModified(System.currentTimeMillis()) : + reloadFile.createNewFile(); + } catch(Exception ex) { + ex.printStackTrace(); + } + //no need to loop more + break; + } + } + } + } + //sucess or error alert box depending on reloaded flag + GuiUtil.prepareAlert(handlerCtx, + (reloaded) ? "success" : "error", + (reloaded) ? + GuiUtil.getMessage("common.Success") : + GuiUtil.getMessage("common.Failed"), + null); + //return reloaded flag for future usage + handlerCtx.setOutputValue("reloaded", reloaded); + } + }