JonasHotDeploymentTool.java

00001 
00027 package org.objectweb.jonas.ant;
00028 
00029 import org.apache.tools.ant.BuildException;
00030 import org.apache.tools.ant.Project;
00031 import org.apache.tools.ant.taskdefs.Java;
00032 
00037 public class JonasHotDeploymentTool extends BootstrapTask implements HotDeploymentTool {
00038 
00042     private static final String ADMIN_CLASS = "org.objectweb.jonas.adm.JonasAdmin";
00043 
00047     private ServerDeploy task;
00048 
00052     private static final String[] VALID_ACTIONS = {ACTION_DELETE, ACTION_DEPLOY, ACTION_LIST, ACTION_UNDEPLOY,
00053             ACTION_UPDATE};
00054 
00063     public void validateAttributes() throws BuildException {
00064         if (task.getAction() == null) {
00065             throw new BuildException("The \"action\" attribute must be set");
00066         }
00067 
00068         if (!isActionValid()) {
00069             throw new BuildException("Invalid action \"" + task.getAction() + "\" passed");
00070         }
00071 
00072     }
00073 
00079     public void setTask(ServerDeploy task) {
00080         this.task = task;
00081     }
00082 
00087     protected ServerDeploy getTask() {
00088         return task;
00089     }
00090 
00098     protected boolean isActionValid() {
00099 
00100         String action = getTask().getAction();
00101 
00102         for (int i = 0; i < VALID_ACTIONS.length; i++) {
00103             if (action.equals(VALID_ACTIONS[i])) {
00104                 return true;
00105             }
00106         }
00107 
00108         return false;
00109     }
00110 
00117     public void deploy() throws BuildException {
00118 
00119         String action = getTask().getAction();
00120         Java bootstrapTask = getBootstraptask(ADMIN_CLASS);
00121         String fileName = getTask().getSource().getPath();
00122 
00123         if (action.equals(ACTION_DEPLOY) || action.equals(ACTION_UPDATE)) {
00124             bootstrapTask.setTaskName("JOnAS/Deploy");
00125             bootstrapTask.createArg().setValue("-a");
00126             bootstrapTask.createArg().setValue(fileName);
00127             bootstrapTask.log("Deploying '" + fileName + "'...", Project.MSG_INFO);
00128         } else if (action.equals(ACTION_DELETE) || action.equals(ACTION_UNDEPLOY)) {
00129             bootstrapTask.setTaskName("JOnAS/Undeploy");
00130             bootstrapTask.createArg().setValue("-r");
00131             bootstrapTask.createArg().setValue(fileName);
00132             bootstrapTask.log("Undeploying '" + fileName + "'...", Project.MSG_INFO);
00133         } else if (action.equals(ACTION_LIST)) {
00134             bootstrapTask.setTaskName("JOnAS/List");
00135             bootstrapTask.createArg().setValue("-l");
00136             getTask().log("Listing beans ...", Project.MSG_INFO);
00137         } else {
00138             throw new BuildException("Invalid action \"" + action + "\" passed");
00139         }
00140 
00141         bootstrapTask.createArg().setValue("-n");
00142         bootstrapTask.createArg().setValue(getServerName());
00143         bootstrapTask.executeJava();
00144     }
00145 
00146 }

Generated on Tue Feb 15 15:05:14 2005 for JOnAS by  doxygen 1.3.9.1