1 /** 2 * 3 * Copyright 2006 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.system.main; 19 20 import java.io.BufferedReader; 21 import java.io.File; 22 import java.io.FileReader; 23 import java.io.IOException; 24 import java.util.ArrayList; 25 import java.util.List; 26 27 import org.apache.geronimo.kernel.GBeanNotFoundException; 28 import org.apache.geronimo.kernel.Kernel; 29 import org.apache.geronimo.kernel.repository.Artifact; 30 import org.apache.geronimo.system.serverinfo.ServerInfo; 31 32 /** 33 * @version $Rev: 430508 $ $Date: 2006-08-10 12:56:47 -0700 (Thu, 10 Aug 2006) $ 34 */ 35 public class LocalServer extends CommandLine { 36 37 public LocalServer(String bootModule, String configListLocation) throws Exception { 38 startKernel(Artifact.create(bootModule)); 39 Runtime.getRuntime().addShutdownHook(new Thread("Geronimo shutdown thread") { 40 public void run() { 41 getKernel().shutdown(); 42 } 43 }); 44 List configs = getConfigurationList(configListLocation); 45 loadConfigurations(configs); 46 } 47 48 public Kernel getKernel() { 49 return super.getKernel(); 50 } 51 52 protected List getConfigurationList(String path) throws GBeanNotFoundException, IOException { 53 ServerInfo serverInfo = (ServerInfo) getKernel().getGBean(ServerInfo.class); 54 File configFile = serverInfo.resolve(path); 55 List modules = new ArrayList(); 56 BufferedReader in = new BufferedReader(new FileReader(configFile)); 57 try { 58 String artifactString; 59 while ((artifactString = in.readLine()) != null) { 60 artifactString = artifactString.trim(); 61 if (!artifactString.startsWith("#") && artifactString.length() > 0) { 62 Artifact artifact = Artifact.create(artifactString); 63 modules.add(artifact); 64 } 65 } 66 } finally { 67 in.close(); 68 } 69 return modules; 70 } 71 72 }