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.kernel.Kernel;
21  import org.apache.geronimo.kernel.config.ConfigurationManager;
22  import org.apache.geronimo.kernel.config.ConfigurationUtil;
23  import org.apache.geronimo.kernel.repository.Artifact;
24  
25  import javax.enterprise.deploy.shared.CommandType;
26  import javax.enterprise.deploy.spi.TargetModuleID;
27  
28  /**
29   * @version $Rev: 405229 $ $Date: 2006-05-08 16:44:03 -0700 (Mon, 08 May 2006) $
30   */
31  public class StopCommand extends CommandSupport {
32      private final Kernel kernel;
33      private final TargetModuleID[] modules;
34  
35      public StopCommand(Kernel kernel, TargetModuleID modules[]) {
36          super(CommandType.STOP);
37          this.kernel = kernel;
38          this.modules = modules;
39      }
40  
41      public void run() {
42          try {
43              ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
44              try {
45                  for (int i = 0; i < modules.length; i++) {
46                      TargetModuleID module = modules[i];
47                      Artifact moduleID = Artifact.create(module.getModuleID());
48                      if(configurationManager.isRunning(moduleID)) {
49                          configurationManager.stopConfiguration(moduleID);
50                      }
51                      if(configurationManager.isLoaded(moduleID)) {
52                          configurationManager.unloadConfiguration(moduleID);
53                          addModule(module);
54                      }
55                  }
56              } finally {
57                  ConfigurationUtil.releaseConfigurationManager(kernel, configurationManager);
58              }
59              if(getModuleCount() < modules.length) {
60                  fail("Some modules could not be stopped");
61              } else {
62                  complete("Completed");
63              }
64          } catch (Exception e) {
65              doFail(e);
66          }
67      }
68  }