View Javadoc

1   /**
2    *
3    * Copyright 2003-2004 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  
18  package org.apache.geronimo.deployment.cli;
19  
20  import org.apache.geronimo.common.DeploymentException;
21  
22  import javax.enterprise.deploy.spi.DeploymentManager;
23  import javax.enterprise.deploy.spi.Target;
24  import javax.enterprise.deploy.spi.status.ProgressObject;
25  import java.io.File;
26  import java.io.PrintWriter;
27  
28  /**
29   * The CLI deployer logic to deploy (distribute plus start).
30   *
31   * @version $Rev: 398160 $ $Date: 2006-04-29 07:33:58 -0700 (Sat, 29 Apr 2006) $
32   */
33  public class CommandDeploy extends CommandDistribute {
34      public CommandDeploy() {
35          super("deploy", "1. Common Commands", "[--inPlace] [--targets target;target;...] [module] [plan]",
36                  "Normally both a module and plan are passed to the deployer.  " +
37                  "Sometimes the module contains a plan, or requires no plan, in which case " +
38                  "the plan may be omitted.  Sometimes the plan references a module already " +
39                  "deployed in the Geronimo server environment, in which case a module does " +
40                  "not need to be provided.\n" +
41                  "If no targets are provided, the module is deployed to all available " +
42                  "targets.  Geronimo only provides one target (ever), so this is primarily " +
43                  "useful when using a different driver.");
44      }
45  
46      protected String getAction() {
47          return "Deployed";
48      }
49  
50      protected ProgressObject runCommand(DeploymentManager mgr, PrintWriter out, boolean inPlace, Target[] tlist, File module, File plan) throws DeploymentException {
51          ProgressObject po = super.runCommand(mgr, out, inPlace, tlist, module, plan);
52          waitForProgress(out, po);
53          if(po.getDeploymentStatus().isFailed()) {
54              throw new DeploymentException("Unable to distribute "+(module == null ? plan.getName() : module.getName())+": "+po.getDeploymentStatus().getMessage());
55          }
56          return mgr.start(po.getResultTargetModuleIDs());
57      }
58  
59      public void execute(PrintWriter out, ServerConnection connection, String[] args) throws DeploymentException {
60          super.execute(out, connection, args);
61      }
62  }