1 45 package org.openejb.server; 46 47 import java.io.File ; 48 import java.io.IOException ; 49 import java.io.InputStream ; 50 import java.net.URL ; 51 import java.util.Properties ; 52 53 import org.openejb.cli.CommandFinder; 54 import org.openejb.loader.SystemInstance; 55 import org.openejb.util.JarUtils; 56 57 66 public class Main { 67 68 private static final String helpBase = "META-INF/org.openejb.cli/"; 69 70 public static void main (String args[]) { 71 72 try{ 73 Properties props = parseArguments(args); 74 SystemInstance.init(props); 75 SystemInstance system = SystemInstance.get(); 76 File libs = system.getHome().getDirectory("lib"); 77 system.getClassPath().addJarsToPath(libs); 78 initServer(props); 79 } catch (DontStartServerException e){ 80 } catch (Exception e){ 82 e.printStackTrace(); 83 } 84 } 85 86 87 private static Properties parseArguments(String args[]) throws DontStartServerException { 88 Properties props = new Properties (); 89 props.putAll(System.getProperties()); 90 91 props.put("openejb.server.ip", "127.0.0.1"); 93 props.put("openejb.server.port", "4201"); 94 props.put("openejb.server.threads", "20"); 95 96 JarUtils.setHandlerSystemProperty(); 99 100 for (int i=0; i < args.length; i++) { 101 if (args[i].equals("-h")) { 102 if (args.length > i+1 ) { 103 props.setProperty("openejb.server.ip", args[++i]); 104 } 105 } else if (args[i].equals("-p")) { 106 if (args.length > i+1 ) { 107 props.setProperty("openejb.server.port", args[++i]); 108 } 109 } else if (args[i].equals("-t")) { 110 if (args.length > i+1 ) { 111 props.setProperty("openejb.server.threads", args[++i]); 112 } 113 } else if (args[i].equals("-conf")) { 114 if (args.length > i+1 ) { 115 props.setProperty("openejb.configuration", args[++i]); 116 } 117 } else if (args[i].equals("-l")) { 118 if (args.length > i+1 ) { 119 props.setProperty("log4j.configuration", args[++i]); 120 } 121 } else if (args[i].equals("-d")) { 122 if (args.length > i+1 ) { 123 props.setProperty("openejb.home", args[++i]); 124 } 125 } else if (args[i].equals("--admin-ip")) { 126 if (args.length > i+1 ) { 127 props.setProperty("openejb.server.admin-ip", args[++i]); 128 } 129 } else if (args[i].startsWith("--local-copy")) { 130 if (args[i].endsWith("false") || 131 args[i].endsWith("FALSE") || 132 args[i].endsWith("no") || 133 args[i].endsWith("NO") ) { 134 props.setProperty("openejb.localcopy", "false"); 135 } else { 136 props.setProperty("openejb.localcopy", "true"); 137 } 138 } else if (args[i].equals("--help")) { 139 printHelp(); 140 throw new DontStartServerException(); 141 } else if (args[i].equals("-version")) { 142 printVersion(); 143 throw new DontStartServerException(); 144 } else if (args[i].equals("-examples")) { 145 printExamples(); 146 throw new DontStartServerException(); 147 } 148 } 149 150 props.setProperty("org/openejb/configuration_factory", "org.openejb.alt.config.ConfigurationFactory"); 151 152 return props; 153 } 154 155 private static void printVersion() { 156 159 Properties versionInfo = new Properties (); 160 161 try { 162 JarUtils.setHandlerSystemProperty(); 163 versionInfo.load( new URL ( "resource:/openejb-version.properties" ).openConnection().getInputStream() ); 164 } catch (java.io.IOException e) { 165 } 166 System.out.println( "OpenEJB Remote Server " + versionInfo.get( "version" ) +" build: "+versionInfo.get( "date" )+"-"+versionInfo.get( "time" )); 167 System.out.println( "" + versionInfo.get( "url" ) ); 168 } 169 170 private static void printHelp() { 171 String header = "OpenEJB Remote Server "; 172 try { 173 JarUtils.setHandlerSystemProperty(); 174 Properties versionInfo = new Properties (); 175 versionInfo.load( new URL ( "resource:/openejb-version.properties" ).openConnection().getInputStream() ); 176 header += versionInfo.get( "version" ); 177 } catch (java.io.IOException e) { 178 } 179 180 System.out.println( header ); 181 182 183 184 try { 186 InputStream in = Thread.currentThread().getContextClassLoader().getResource(helpBase + "start.help").openConnection().getInputStream(); 187 188 int b = in.read(); 189 while (b != -1) { 190 System.out.write( b ); 191 b = in.read(); 192 } 193 } catch (java.io.IOException e) { 194 } 195 } 196 197 private static void printExamples() { 198 String header = "OpenEJB Remote Server "; 199 try { 200 JarUtils.setHandlerSystemProperty(); 201 Properties versionInfo = new Properties (); 202 versionInfo.load( new URL ( "resource:/openejb-version.properties" ).openConnection().getInputStream() ); 203 header += versionInfo.get( "version" ); 204 } catch (java.io.IOException e) { 205 } 206 207 System.out.println( header ); 208 209 try { 211 InputStream in = Thread.currentThread().getContextClassLoader().getResource(helpBase + "start.examples").openConnection().getInputStream(); 212 213 int b = in.read(); 214 while (b != -1) { 215 System.out.write( b ); 216 b = in.read(); 217 } 218 } catch (java.io.IOException e) { 219 } 220 } 221 222 223 224 private static void initServer(Properties props) throws Exception { 225 Server server = new Server(); 226 227 server.init(props); 228 } 229 } 230 231 class DontStartServerException extends Exception { 232 } 233 234 | Popular Tags |