1 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 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 } 73 | Popular Tags |