From: <ju...@us...> - 2004-03-12 18:09:30
|
Update of /cvsroot/smartfrog/core/smartfrog/src/org/smartfrog/sfcore/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7080/smartfrog/src/org/smartfrog/sfcore/common Modified Files: ErrorMessageBundle.java MessageKeys.java OptionSet.java Log Message: Refactoring of SFSystem. New options to deploy description -a and -f: - a counter1:DEPLOY:org/smarfrog/examples/counter/exampe.sf:sfConfig:localhost:rootProcess -f FILE_NAME to load a list of deployment URLs. Some methods and some of the options will disappear from SFSystem. Index: ErrorMessageBundle.java =================================================================== RCS file: /cvsroot/smartfrog/core/smartfrog/src/org/smartfrog/sfcore/common/ErrorMessageBundle.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ErrorMessageBundle.java 11 Mar 2004 14:08:11 -0000 1.2 --- ErrorMessageBundle.java 12 Mar 2004 17:41:55 -0000 1.3 *************** *** 82,87 **** { MSG_ILLEGAL_CLASS_TYPE , "Illegal ClassType"}, // Resolution Exception messages end ! { MSG_DEPLOY_SUCCESS , "Successfully deployed components: {0}"}, ! { MSG_TERMINATE_SUCCESS , "Successfully terminated components: {0}"}, { MSG_UNHANDLED_EXCEPTION , "Unhandled exception: "}, { MSG_URL_TO_PARSE_NOT_FOUND , "Unable to locate URL \"{0}\"\nReason: URL may be incorrect or file is misssing"}, --- 82,89 ---- { MSG_ILLEGAL_CLASS_TYPE , "Illegal ClassType"}, // Resolution Exception messages end ! { MSG_DEPLOY_SUCCESS , "Successfully deployed: {0}"}, ! { MSG_TERMINATE_SUCCESS , "Successfully terminated: {0}"}, ! { MSG_DETACH_SUCCESS , "Successfully detached component: {0}"}, ! { MSG_DETACH_TERMINATE_SUCCESS , "Successfully detatched and terminated: {0}"}, { MSG_UNHANDLED_EXCEPTION , "Unhandled exception: "}, { MSG_URL_TO_PARSE_NOT_FOUND , "Unable to locate URL \"{0}\"\nReason: URL may be incorrect or file is misssing"}, *************** *** 93,97 **** { MISSING_PARAMETER , "Missing Parameter {0}"}, }; ! /** * Gets the message array. --- 95,99 ---- { MISSING_PARAMETER , "Missing Parameter {0}"}, }; ! /** * Gets the message array. Index: MessageKeys.java =================================================================== RCS file: /cvsroot/smartfrog/core/smartfrog/src/org/smartfrog/sfcore/common/MessageKeys.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MessageKeys.java 11 Mar 2004 14:08:11 -0000 1.2 --- MessageKeys.java 12 Mar 2004 17:41:55 -0000 1.3 *************** *** 27,227 **** */ public interface MessageKeys { ! /** * Message key: receiving deploy request after the component is terminated. ! */ public static String MSG_DEPLOY_COMP_TERMINATED = "MSG_DEPLOY_COMP_TERMINATED"; ! /** * Message key: receiving start request after the component is terminated. ! */ public static String MSG_START_COMP_TERMINATED = "MSG_START_COMP_TERMINATED"; ! /** ! * Message key: file cannot be found. */ public static String MSG_FILE_NOT_FOUND = "MSG_FILE_NOT_FOUND"; ! /** * Message key: Compound has a non-replacable attribute. ! */ public static String MSG_NON_REP_ATTRIB = "MSG_NON_REP_ATTRIB"; ! /** ! * Message key: class cannot be found. */ public static String MSG_CLASS_NOT_FOUND = "MSG_CLASS_NOT_FOUND"; ! /** ! * Message key: class cannot be instantiated. */ public static String MSG_INSTANTIATION_ERROR = "MSG_INSTANTIATION_ERROR"; ! /** ! * Message key: class has illegal access on method. */ public static String MSG_ILLEGAL_ACCESS = "MSG_ILLEGAL_ACCESS"; ! /** * Message key: class has invocation target error. ! */ public static String MSG_INVOCATION_TARGET = "MSG_INVOCATION_TARGET"; ! /** * Message key: method not found. ! */ public static String MSG_METHOD_NOT_FOUND = "MSG_METHOD_NOT_FOUND"; ! /** * Message key: input stream is null. ! */ public static String MSG_INPUTSTREAM_NULL = "MSG_INPUTSTREAM_NULL"; ! /** * Message key: failed to find parent location. ! */ public static String MSG_PARENT_LOCATION_FAILED = "MSG_PARENT_LOCATION_FAILED"; ! /** * Message key: failed to contact parent. ! */ public static String MSG_FAILED_TO_CONTACT_PARENT = "MSG_FAILED_TO_CONTACT_PARENT"; ! /** * Message key: failure in deploywith phase. ! */ public static String MSG_DEPLOYWITH_PHASE_FAILED = "MSG_DEPLOYWITH_PHASE_FAILED"; ! /** * Message key: failure in object registration. ! */ public static String MSG_OBJECT_REGISTRATION_FAILED = "MSG_OBJECT_REGISTRATION_FAILED"; ! /** * Message key: failure in starting liveness thread. ! */ public static String MSG_LIVENESS_START_FAILED = "MSG_LIVENESS_START_FAILED"; ! /** * Message key: failure in hook action. ! */ public static String MSG_HOOK_ACTION_FAILED = "MSG_HOOK_ACTION_FAILED"; ! /** * Message key: unable to start a component randomly. ! */ public static String MSG_RANDM_ERR = "MSG_RANDM_ERR"; ! /** * Message key: found invalid object type. ! */ public static String MSG_INVALID_OBJECT_TYPE = "MSG_INVALID_OBJECT_TYPE"; ! /** * Message key: url is null. ! */ public static String MSG_NULL_URL = "MSG_NULL_URL"; ! /** * Message key: unable to locate language in url. ! */ public static String MSG_LANG_NOT_FOUND = "MSG_LANG_NOT_FOUND"; ! /** * Message key: unable to locate file or url. ! */ public static String MSG_URL_NOT_FOUND = "MSG_URL_NOT_FOUND"; ! /** * Message key: error in deployment of url . ! */ public static String MSG_ERR_DEPLOY_FROM_URL = "MSG_ERR_DEPLOY_FROM_URL"; ! /** * Message key: stack trace follows. ! */ public static String MSG_STACKTRACE_FOLLOWS = "MSG_STACKTRACE_FOLLOWS"; ! /** * Message key: continuing with other deployment. ! */ public static String MSG_CONT_OTHER_DEPLOY = "MSG_CONT_OTHER_DEPLOY"; ! /** * Message key: error during termination. ! */ public static String MSG_ERR_TERM = "MSG_ERR_TERM"; ! /** * Message key: parser error. ! */ public static String MSG_ERR_PARSE = "MSG_ERR_PARSE"; ! /** * Message key: parser error while resolving phases. ! */ public static String MSG_ERR_RESOLVE_PHASE = "MSG_ERR_RESOLVE_PHASE"; ! /** * Message key: smartfrog ready. ! */ public static String MSG_SF_READY = "MSG_SF_READY"; ! /** * Message key: smartfrog dead. ! */ public static String MSG_SF_DEAD = "MSG_SF_DEAD"; ! /** * Message key: smartfrog daemon terminated. ! */ public static String MSG_SF_TERMINATED = "MSG_SF_TERMINATED"; ! /** * Message key: error in starting smartfrog daemon. ! */ public static String MSG_ERR_SF_RUNNING = "MSG_ERR_SF_RUNNING"; ! /** * Message key: unable to locate host. ! */ public static String MSG_UNKNOWN_HOST = "MSG_UNKNOWN_HOST"; ! /** * Message key: unable to connect to daemon. ! */ public static String MSG_CONNECT_ERR = "MSG_CONNECT_ERR"; ! /** * Message key: unable to connect to daemon. ! */ public static String MSG_REMOTE_CONNECT_ERR = "MSG_REMOTE_CONNECT_ERR"; ! /** * Message key: unable to connect to daemon on remote host. ! */ public static String MSG_DEPLOY_SUCCESS = "MSG_DEPLOY_SUCCESS"; ! /** * Message key: successful termination of components. ! */ public static String MSG_TERMINATE_SUCCESS = "MSG_TERMINATE_SUCCESS"; ! /** * Message key: stack trace logging enabled. ! */ public static String MSG_WARNING_STACKTRACE_ENABLED = "MSG_WARNING_STACKTRACE_ENABLED"; ! /** * Message key: stack trace logging disabled. ! */ public static String MSG_WARNING_STACKTRACE_DISABLED = "MSG_WARNING_STACKTRACE_DISABLED"; // Resolution Exception Messages starts ! /** * Message key: unresolved reference. ! */ public static String MSG_UNRESOLVED_REFERENCE = "MSG_UNRESOLVED_REFERENCE"; ! /** * Message key: reference not found. ! */ public static String MSG_NOT_FOUND_REFERENCE = "MSG_NOT_FOUND_REFERENCE"; ! /** * Message key: reference with no value. ! */ public static String MSG_NOT_VALUE_REFERENCE = "MSG_NOT_VALUE_REFERENCE"; ! /** * Message key: reference is not a smartfrog component. ! */ public static String MSG_NOT_COMPONENT_REFERENCE = "MSG_NOT_COMPONENT_REFERENCE"; ! /** * Message key: illegal reference. ! */ public static String MSG_ILLEGAL_REFERENCE = "MSG_ILLEGAL_REFERENCE"; ! /** * Message key: illegal classtype. ! */ public static String MSG_ILLEGAL_CLASS_TYPE = "MSG_ILLEGAL_CLASS_TYPE"; // Resolution Exception Messages ends ! /** * Message key: unhandled exception. ! */ public static String MSG_UNHANDLED_EXCEPTION = "MSG_UNHANDLED_EXCEPTION"; ! /** * Message key: url not found for parsing. ! */ ! public static String MSG_URL_TO_PARSE_NOT_FOUND = "MSG_URL_TO_PARSE_NOT_FOUND"; --- 27,235 ---- */ public interface MessageKeys { ! /** * Message key: receiving deploy request after the component is terminated. ! */ public static String MSG_DEPLOY_COMP_TERMINATED = "MSG_DEPLOY_COMP_TERMINATED"; ! /** * Message key: receiving start request after the component is terminated. ! */ public static String MSG_START_COMP_TERMINATED = "MSG_START_COMP_TERMINATED"; ! /** ! * Message key: file cannot be found. */ public static String MSG_FILE_NOT_FOUND = "MSG_FILE_NOT_FOUND"; ! /** * Message key: Compound has a non-replacable attribute. ! */ public static String MSG_NON_REP_ATTRIB = "MSG_NON_REP_ATTRIB"; ! /** ! * Message key: class cannot be found. */ public static String MSG_CLASS_NOT_FOUND = "MSG_CLASS_NOT_FOUND"; ! /** ! * Message key: class cannot be instantiated. */ public static String MSG_INSTANTIATION_ERROR = "MSG_INSTANTIATION_ERROR"; ! /** ! * Message key: class has illegal access on method. */ public static String MSG_ILLEGAL_ACCESS = "MSG_ILLEGAL_ACCESS"; ! /** * Message key: class has invocation target error. ! */ public static String MSG_INVOCATION_TARGET = "MSG_INVOCATION_TARGET"; ! /** * Message key: method not found. ! */ public static String MSG_METHOD_NOT_FOUND = "MSG_METHOD_NOT_FOUND"; ! /** * Message key: input stream is null. ! */ public static String MSG_INPUTSTREAM_NULL = "MSG_INPUTSTREAM_NULL"; ! /** * Message key: failed to find parent location. ! */ public static String MSG_PARENT_LOCATION_FAILED = "MSG_PARENT_LOCATION_FAILED"; ! /** * Message key: failed to contact parent. ! */ public static String MSG_FAILED_TO_CONTACT_PARENT = "MSG_FAILED_TO_CONTACT_PARENT"; ! /** * Message key: failure in deploywith phase. ! */ public static String MSG_DEPLOYWITH_PHASE_FAILED = "MSG_DEPLOYWITH_PHASE_FAILED"; ! /** * Message key: failure in object registration. ! */ public static String MSG_OBJECT_REGISTRATION_FAILED = "MSG_OBJECT_REGISTRATION_FAILED"; ! /** * Message key: failure in starting liveness thread. ! */ public static String MSG_LIVENESS_START_FAILED = "MSG_LIVENESS_START_FAILED"; ! /** * Message key: failure in hook action. ! */ public static String MSG_HOOK_ACTION_FAILED = "MSG_HOOK_ACTION_FAILED"; ! /** * Message key: unable to start a component randomly. ! */ public static String MSG_RANDM_ERR = "MSG_RANDM_ERR"; ! /** * Message key: found invalid object type. ! */ public static String MSG_INVALID_OBJECT_TYPE = "MSG_INVALID_OBJECT_TYPE"; ! /** * Message key: url is null. ! */ public static String MSG_NULL_URL = "MSG_NULL_URL"; ! /** * Message key: unable to locate language in url. ! */ public static String MSG_LANG_NOT_FOUND = "MSG_LANG_NOT_FOUND"; ! /** * Message key: unable to locate file or url. ! */ public static String MSG_URL_NOT_FOUND = "MSG_URL_NOT_FOUND"; ! /** * Message key: error in deployment of url . ! */ public static String MSG_ERR_DEPLOY_FROM_URL = "MSG_ERR_DEPLOY_FROM_URL"; ! /** * Message key: stack trace follows. ! */ public static String MSG_STACKTRACE_FOLLOWS = "MSG_STACKTRACE_FOLLOWS"; ! /** * Message key: continuing with other deployment. ! */ public static String MSG_CONT_OTHER_DEPLOY = "MSG_CONT_OTHER_DEPLOY"; ! /** * Message key: error during termination. ! */ public static String MSG_ERR_TERM = "MSG_ERR_TERM"; ! /** * Message key: parser error. ! */ public static String MSG_ERR_PARSE = "MSG_ERR_PARSE"; ! /** * Message key: parser error while resolving phases. ! */ public static String MSG_ERR_RESOLVE_PHASE = "MSG_ERR_RESOLVE_PHASE"; ! /** * Message key: smartfrog ready. ! */ public static String MSG_SF_READY = "MSG_SF_READY"; ! /** * Message key: smartfrog dead. ! */ public static String MSG_SF_DEAD = "MSG_SF_DEAD"; ! /** * Message key: smartfrog daemon terminated. ! */ public static String MSG_SF_TERMINATED = "MSG_SF_TERMINATED"; ! /** * Message key: error in starting smartfrog daemon. ! */ public static String MSG_ERR_SF_RUNNING = "MSG_ERR_SF_RUNNING"; ! /** * Message key: unable to locate host. ! */ public static String MSG_UNKNOWN_HOST = "MSG_UNKNOWN_HOST"; ! /** * Message key: unable to connect to daemon. ! */ public static String MSG_CONNECT_ERR = "MSG_CONNECT_ERR"; ! /** * Message key: unable to connect to daemon. ! */ public static String MSG_REMOTE_CONNECT_ERR = "MSG_REMOTE_CONNECT_ERR"; ! /** * Message key: unable to connect to daemon on remote host. ! */ public static String MSG_DEPLOY_SUCCESS = "MSG_DEPLOY_SUCCESS"; ! /** * Message key: successful termination of components. ! */ public static String MSG_TERMINATE_SUCCESS = "MSG_TERMINATE_SUCCESS"; ! /** ! * Message key: successful detachment of components. ! */ ! public static String MSG_DETACH_SUCCESS = "MSG_DETACH_SUCCESS"; ! /** ! * Message key: successful detachment and termination of components. ! */ ! public static String MSG_DETACH_TERMINATE_SUCCESS = "MSG_DETACH_TERMINATE_SUCCESS"; ! /** * Message key: stack trace logging enabled. ! */ public static String MSG_WARNING_STACKTRACE_ENABLED = "MSG_WARNING_STACKTRACE_ENABLED"; ! /** * Message key: stack trace logging disabled. ! */ public static String MSG_WARNING_STACKTRACE_DISABLED = "MSG_WARNING_STACKTRACE_DISABLED"; // Resolution Exception Messages starts ! /** * Message key: unresolved reference. ! */ public static String MSG_UNRESOLVED_REFERENCE = "MSG_UNRESOLVED_REFERENCE"; ! /** * Message key: reference not found. ! */ public static String MSG_NOT_FOUND_REFERENCE = "MSG_NOT_FOUND_REFERENCE"; ! /** * Message key: reference with no value. ! */ public static String MSG_NOT_VALUE_REFERENCE = "MSG_NOT_VALUE_REFERENCE"; ! /** * Message key: reference is not a smartfrog component. ! */ public static String MSG_NOT_COMPONENT_REFERENCE = "MSG_NOT_COMPONENT_REFERENCE"; ! /** * Message key: illegal reference. ! */ public static String MSG_ILLEGAL_REFERENCE = "MSG_ILLEGAL_REFERENCE"; ! /** * Message key: illegal classtype. ! */ public static String MSG_ILLEGAL_CLASS_TYPE = "MSG_ILLEGAL_CLASS_TYPE"; // Resolution Exception Messages ends ! /** * Message key: unhandled exception. ! */ public static String MSG_UNHANDLED_EXCEPTION = "MSG_UNHANDLED_EXCEPTION"; ! /** * Message key: url not found for parsing. ! */ ! public static String MSG_URL_TO_PARSE_NOT_FOUND = "MSG_URL_TO_PARSE_NOT_FOUND"; *************** *** 230,257 **** ! /** * Message key: illegal numeric parameter to function. ! */ ! public static String ILLEGAL_NUMERIC_PARAMETER = "ILLEGAL_NUMERIC_PARAMETER"; ! /** * Message key: illegal string parameter to function. ! */ ! public static String ILLEGAL_STRING_PARAMETER = "ILLEGAL_STRING_PARAMETER"; ! /** * Message key: illegal numeric parameter to function. ! */ ! public static String ILLEGAL_VECTOR_PARAMETER = "ILLEGAL_VECTOR_PARAMETER"; ! /** * Message key: illegal boolean parameter to function. ! */ ! public static String ILLEGAL_BOOLEAN_PARAMETER = "ILLEGAL_BOOLEAN_PARAMETER"; ! /** * Message key: too many parameters to function. ! */ ! public static String MISSING_PARAMETER = "MISSING_PARAMETER"; } --- 238,265 ---- ! /** * Message key: illegal numeric parameter to function. ! */ ! public static String ILLEGAL_NUMERIC_PARAMETER = "ILLEGAL_NUMERIC_PARAMETER"; ! /** * Message key: illegal string parameter to function. ! */ ! public static String ILLEGAL_STRING_PARAMETER = "ILLEGAL_STRING_PARAMETER"; ! /** * Message key: illegal numeric parameter to function. ! */ ! public static String ILLEGAL_VECTOR_PARAMETER = "ILLEGAL_VECTOR_PARAMETER"; ! /** * Message key: illegal boolean parameter to function. ! */ ! public static String ILLEGAL_BOOLEAN_PARAMETER = "ILLEGAL_BOOLEAN_PARAMETER"; ! /** * Message key: too many parameters to function. ! */ ! public static String MISSING_PARAMETER = "MISSING_PARAMETER"; } Index: OptionSet.java =================================================================== RCS file: /cvsroot/smartfrog/core/smartfrog/src/org/smartfrog/sfcore/common/OptionSet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OptionSet.java 25 Feb 2004 17:17:18 -0000 1.3 --- OptionSet.java 12 Mar 2004 17:41:55 -0000 1.4 *************** *** 24,27 **** --- 24,34 ---- import org.smartfrog.Version; + import org.smartfrog.sfcore.common.Logger; + import org.smartfrog.sfcore.common.ConfigurationDescriptor; + import org.smartfrog.sfcore.common.SmartFrogInitException; + import java.io.LineNumberInputStream; + import java.io.LineNumberReader; + import java.io.BufferedReader; + import java.io.InputStreamReader; *************** *** 41,45 **** /** Usage string for SFSystem. */ public String usage = "\n" + ! " Usage: java -D... org.smartfrog.SFSystem [-h HOST_NAME [-p PROCESS_NAME]] (-t NAME)* (-d NAME)* (-T NAME)* (-c URL | -n NAME URL)* [-e]\n" + " or: java -D... org.smartfrog.SFSystem -?"; --- 48,52 ---- /** Usage string for SFSystem. */ public String usage = "\n" + ! " Usage: java -D... org.smartfrog.SFSystem [-h HOST_NAME [-p PROCESS_NAME]] [-a URL_DESCRIPTOR] [-f FILE_URL] (-t NAME)* (-d NAME)* (-T NAME)* (-c URL | -n NAME URL)* [-e]\n" + " or: java -D... org.smartfrog.SFSystem -?"; *************** *** 51,55 **** " -p PROCESS_NAME: name by which the application should be known\n" + " in the sfDaemon where it is deployed" + "\n" + ! " (-p must be accompanied by -h)" + "\n" + " -t NAME: terminates the application named by 'NAME'" + "\n" + --- 58,63 ---- " -p PROCESS_NAME: name by which the application should be known\n" + " in the sfDaemon where it is deployed" + "\n" + ! " (-p must be accompanied by -h)" + ! "\n" + " -t NAME: terminates the application named by 'NAME'" + "\n" + *************** *** 61,65 **** "\n" + " -n NAME URL: to deploy up the SF text at 'URL' using 'NAME' for the name" + ! "\n" + " -e: exit after deployment is finished" + "\n" + " To stop sfDaemon use: -h HOST_NAME -t rootProcess"; --- 69,80 ---- "\n" + " -n NAME URL: to deploy up the SF text at 'URL' using 'NAME' for the name" + ! "\n" + ! " -a URL_DESCRIPTOR: descriptor of the application template to deploy.\n" + ! " ex. counterEx:DEPLOY:org/.../example.sf:sfConfig:localhost:process" + ! "\n" + ! " -f FILE_URL: file url with the ConfigurationDescriptors to deploy" + ! "\n" + ! ! " -e: exit after deployment is finished" + "\n" + " To stop sfDaemon use: -h HOST_NAME -t rootProcess"; *************** *** 81,85 **** /** Vector for named applications given as -t options on the commandline. */ public Vector terminations = new Vector(); ! /** Vector for named components given as -d options on the commandline. */ public Vector detaching = new Vector(); --- 96,100 ---- /** Vector for named applications given as -t options on the commandline. */ public Vector terminations = new Vector(); ! /** Vector for named components given as -d options on the commandline. */ public Vector detaching = new Vector(); *************** *** 87,91 **** /** Vector for named components given as -T options on the commandline. */ public Vector terminating = new Vector(); ! /** Vector for applications to be deployed. */ public Vector configs = new Vector(); --- 102,106 ---- /** Vector for named components given as -T options on the commandline. */ public Vector terminating = new Vector(); ! /** Vector for applications to be deployed. */ public Vector configs = new Vector(); *************** *** 94,97 **** --- 109,116 ---- public Vector names = new Vector(); + + /** Vector for configurationDescriptors to be deployed. */ + public Vector cfgDescriptors = new Vector(); + /** Flag indicating the exit status of the application. */ public boolean exit = false; *************** *** 104,107 **** --- 123,129 ---- public OptionSet(String[] args) { int i = 0; + String name; + String url; + String deployRef; while ((i < args.length) & (errorString == null)) { *************** *** 111,115 **** case '?': errorString = "SFSystem help" + help; - break; --- 133,136 ---- *************** *** 143,183 **** case 't': ! terminations.add(args[++i]); ! break; case 'd': ! detaching.add(args[++i]); ! break; ! case 'T': terminating.add(args[++i]); ! break; case 'c': ! configs.add(args[++i]); names.add(null); ! break; ! case 'n': if (args[i+1].charAt(0)==optionFlagIndicator) { errorString = "SFSystem help" + help; } else { ! String name = args[++i]; if (args[i+1].charAt(0)==optionFlagIndicator) errorString = "SFSystem help" + help; ! configs.add(args[++i]); names.add(name); } - break; case 'e': exit = true; - break; --- 164,244 ---- case 't': ! name = args[++i]; ! cfgDescriptors.add( ! new ConfigurationDescriptor(name, ! null, ! ConfigurationDescriptor.Action.TERMINATE, ! host, ! subprocess)); ! terminations.add(name); break; case 'd': ! name = args[++i]; ! cfgDescriptors.add( ! new ConfigurationDescriptor(name, ! null, ! ConfigurationDescriptor.Action.DETACH, ! host, ! subprocess)); ! detaching.add(name); break; ! case 'T': + name = args[++i]; terminating.add(args[++i]); ! cfgDescriptors.add( ! new ConfigurationDescriptor(name, ! null, ! ConfigurationDescriptor.Action.TERMINATE, ! host, ! subprocess)); break; case 'c': ! url = args[++i]; ! configs.add(url); names.add(null); ! cfgDescriptors.add( ! new ConfigurationDescriptor(null, ! url, ! ConfigurationDescriptor.Action.DEPLOY, ! host, ! subprocess)); break; ! case 'a': ! try { ! this.cfgDescriptors.add(new ConfigurationDescriptor(args[++i])); ! } catch (SmartFrogInitException ex){Logger.log(ex);} ! break; ! ! case 'f': ! try { ! this.readCfgDescriptorsFile(args[++i]); ! } catch (SmartFrogInitException ex){Logger.log(ex);} ! break; + case 'n': if (args[i+1].charAt(0)==optionFlagIndicator) { errorString = "SFSystem help" + help; } else { ! name = args[++i]; if (args[i+1].charAt(0)==optionFlagIndicator) errorString = "SFSystem help" + help; ! url = args[++i]; ! configs.add(url); names.add(name); + cfgDescriptors.add( + new ConfigurationDescriptor(name, + url, + ConfigurationDescriptor.Action.DEPLOY, + host, + subprocess)); } break; case 'e': exit = true; break; *************** *** 192,196 **** i++; } catch (Exception e) { ! errorString = "illegal format for options "; } } --- 253,261 ---- i++; } catch (Exception e) { ! //protects from dodgy shell scripts ! if (!(e instanceof java.lang.ArrayIndexOutOfBoundsException)){ ! errorString = "illegal format for options "; ! } ! Logger.logQuietly(e); } } *************** *** 205,208 **** --- 270,303 ---- } + private void readCfgDescriptorsFile(String fileURL) throws SmartFrogException{ + String line; + LineNumberReader file=null; + try { + file = + new LineNumberReader ( + new BufferedReader(new InputStreamReader( + (org.smartfrog.SFSystem.getInputStreamForResource(fileURL))))); + //Loop through each line and add non-blank + //lines to the Vector + while ( (line = file.readLine()) != null) { + try { + if (line.trim().length()>0){ + //Logger.log(" Reading and Creating: "+line); + this.cfgDescriptors.add(new ConfigurationDescriptor(line)); + //Logger.log(" result: " + this.cfgDescriptors.lastElement().toString()); + } + } catch (SmartFrogInitException ex){Logger.log(ex);} + } + } catch (Exception e) { + Logger.log(e); + throw SmartFrogException.forward(e); + } finally { + try { + file.close(); + } catch (Exception ex){Logger.logQuietly(ex);} + } + + } + /* public void print () { |