Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/DeployToolConfig.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/DeployToolConfig.java,v diff -u -r1.13 -r1.14 --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/DeployToolConfig.java 15 Feb 2007 01:14:31 -0000 1.13 +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/DeployToolConfig.java 1 Mar 2007 05:17:35 -0000 1.14 @@ -175,6 +175,8 @@ copyProperties(config); //printObjectProperties(); //for testing purposes } + + /** Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveModuleFromApplicationXmlTask.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveModuleFromApplicationXmlTask.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveModuleFromApplicationXmlTask.java 1 Mar 2007 05:17:35 -0000 1.1 @@ -0,0 +1,66 @@ +package org.lamsfoundation.lams.tool.deploy; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +/** + * Removes a module entry from the LAMS Application XML. Throws an exception + * if the element is not found. + * + * @author Luke Foxton + */ +public class RemoveModuleFromApplicationXmlTask extends UpdateApplicationXmlTask{ + + + /** + * @param args the command line arguments + */ + public static void main(String[] args) throws Exception + { + + if ((args.length < 1) || (args[0] == null)) + { + throw new IllegalArgumentException("Usage: RemoveModuleFromApplicationXmlTask "); + } + try + { + System.out.println("Attempting to update " + args[0] + "\\META-INF\\application.xml"); + RemoveModuleFromApplicationXmlTask remModAppTask = new RemoveModuleFromApplicationXmlTask(); + remModAppTask.setLamsEarPath(args[0]); + remModAppTask.setModule("ehcache-1.1.jar"); + remModAppTask.execute(); + System.out.println("application.xml update completed"); + } + catch (Exception ex) + { + System.out.println("Application.xml update failed: " + ex.getMessage()); + ex.printStackTrace(); + } + } + /** Creates a new instance of RemoveWebAppFromApplicationXmlTask */ + public RemoveModuleFromApplicationXmlTask() + { + } + + + /** + * Removes the module and context root from the application xml + */ + protected void updateApplicationXml(Document doc) throws DeployException + { + Element moduleElement = findElementWithModule(doc); + if (moduleElement == null) + { + System.out.println("No element found with text matching: " + module); + System.out.println("application.xml update completed"); + System.exit(0); + //throw new DeployException("No element found with text matching \""+doc.getElementsByTagName("java")+"\""); + } else { + System.out.println("Doc: " + moduleElement.compareDocumentPosition(doc)); + System.out.println("Doc: " + doc.getDocumentElement().toString()); + System.out.println("Module: " + moduleElement.getNodeName()); + doc.getDocumentElement().removeChild(moduleElement); + } + } +} Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveWebAppFromApplicationXmlTask.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveWebAppFromApplicationXmlTask.java,v diff -u -r1.7 -r1.8 --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveWebAppFromApplicationXmlTask.java 17 Sep 2006 06:21:29 -0000 1.7 +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/RemoveWebAppFromApplicationXmlTask.java 1 Mar 2007 05:17:35 -0000 1.8 @@ -30,12 +30,11 @@ * Removes a web app entry from the LAMS Application XML. Throws an exception * if the element is not found. * - * @author Chris Perfect, with modifications by Fiona Malikoff + * @author Chris Perfect, with modifications by Fiona Malikoff, Luke Foxton */ public class RemoveWebAppFromApplicationXmlTask extends UpdateApplicationXmlTask { - - + /** Creates a new instance of RemoveWebAppFromApplicationXmlTask */ public RemoveWebAppFromApplicationXmlTask() { Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateApplicationXmlTask.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateApplicationXmlTask.java,v diff -u -r1.11 -r1.12 --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateApplicationXmlTask.java 17 Sep 2006 06:21:29 -0000 1.11 +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateApplicationXmlTask.java 1 Mar 2007 05:17:35 -0000 1.12 @@ -62,6 +62,11 @@ protected String webUri; /** + * The value of the module element + */ + protected String module; + + /** * The value of the context root element. */ protected String contextRoot; @@ -95,6 +100,15 @@ } /** + * Sets the value of the module to be added + * @param module New value of the property module + */ + public void setModule(final java.lang.String module) + { + this.module = module; + } + + /** * Sets the context root of the web app to be added. * @param contextroot New value of property contextroot. */ @@ -247,6 +261,17 @@ return null; } } + + /** Find a matching web element - useful for updating or deleting an existing element */ + protected Element findElementWithModule(Document doc) { + NodeList moduleNodeList = doc.getElementsByTagName("java"); + Element matchingModuleElement = findElementWithMatchingText(module, moduleNodeList); + if ( matchingModuleElement != null ) { + return (Element) matchingModuleElement.getParentNode(); + } else { + return null; + } + } /** * Modifies the application Xml in the required manner. Index: lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateWarTask.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateWarTask.java,v diff -u -r1.3 -r1.4 --- lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateWarTask.java 17 Sep 2006 06:21:29 -0000 1.3 +++ lams_tool_deploy/src/java/org/lamsfoundation/lams/tool/deploy/UpdateWarTask.java 1 Mar 2007 05:17:35 -0000 1.4 @@ -61,7 +61,7 @@ /** * Base class of ant tasks that changes a jar file or a war file - * @author Fiona Malikoff + * @author Fiona Malikoff modified by Luke Foxton */ public abstract class UpdateWarTask implements Task {