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.plugin.local;
19  
20  import org.apache.geronimo.deployment.util.DeploymentUtil;
21  import org.apache.geronimo.kernel.Kernel;
22  
23  import javax.enterprise.deploy.shared.CommandType;
24  import javax.enterprise.deploy.spi.Target;
25  import java.io.File;
26  import java.io.InputStream;
27  
28  /**
29   * @version $Rev: 399026 $ $Date: 2006-05-02 13:03:28 -0700 (Tue, 02 May 2006) $
30   */
31  public class DistributeCommand extends AbstractDeployCommand {
32      protected final Target[] targetList;
33  
34      public DistributeCommand(Kernel kernel, Target[] targetList, File moduleArchive, File deploymentPlan) {
35          super(CommandType.DISTRIBUTE, kernel, moduleArchive, deploymentPlan, null, null, false);
36          this.targetList = targetList;
37      }
38  
39      public DistributeCommand(Kernel kernel, Target[] targetList, InputStream moduleStream, InputStream deploymentStream) {
40          super(CommandType.DISTRIBUTE, kernel, null, null, moduleStream, deploymentStream, true);
41          this.targetList = targetList;
42      }
43  
44      public void run() {
45          try {
46              if (spool) {
47                  if (moduleStream != null) {
48                      moduleArchive = DeploymentUtil.createTempFile();
49                      copyTo(moduleArchive, moduleStream);
50                  }
51                  if (deploymentStream != null) {
52                      deploymentPlan = DeploymentUtil.createTempFile();
53                      copyTo(deploymentPlan, deploymentStream);
54                  }
55              }
56              if (deployer == null) {
57                  return;
58              }
59              for(int i = 0; i < targetList.length; i++) {
60              	doDeploy(targetList[i], true);
61              }
62          } catch (Exception e) {
63              doFail(e);
64          } finally {
65              if (spool) {
66                  if (moduleArchive != null) {
67                      moduleArchive.delete();
68                  }
69                  if (deploymentPlan != null) {
70                      deploymentPlan.delete();
71                  }
72              }
73          }
74      }
75  
76  }