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 }