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 ----
!if>
+
+
+
+
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);
+ }
+
}