summaryrefslogtreecommitdiff
path: root/java/src/Ice/PropertiesI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/Ice/PropertiesI.java')
-rw-r--r--java/src/Ice/PropertiesI.java154
1 files changed, 46 insertions, 108 deletions
diff --git a/java/src/Ice/PropertiesI.java b/java/src/Ice/PropertiesI.java
index b192803a815..83a004be14b 100644
--- a/java/src/Ice/PropertiesI.java
+++ b/java/src/Ice/PropertiesI.java
@@ -116,7 +116,27 @@ class PropertiesI implements Properties
public synchronized String[]
parseCommandLineOptions(String prefix, String[] options)
{
- return null;
+ java.util.ArrayList result = new java.util.ArrayList();
+ for (int i = 0; i < options.length; i++)
+ {
+ String opt = options[i];
+ if (opt.startsWith("--" + prefix + "."))
+ {
+ if (opt.indexOf('=') == -1)
+ {
+ opt += "=1";
+ }
+
+ parseLine(opt.substring(2));
+ }
+ else
+ {
+ result.add(opt);
+ }
+ }
+ String[] arr = new String[result.size()];
+ result.toArray(arr);
+ return arr;
}
public synchronized void
@@ -144,61 +164,28 @@ class PropertiesI implements Properties
return p;
}
- static void
- addArgumentPrefix(String prefix)
+ PropertiesI()
{
- _argumentPrefixes.add(prefix);
}
PropertiesI(String[] args)
{
- String file = getConfigFile(args);
-
- if (file.length() > 0)
- {
- load(file);
- }
-
- StringSeqHolder argsH = new StringSeqHolder();
- argsH.value = args;
- parseArgs(argsH);
- setProperty("Ice.Config", file);
- }
-
- PropertiesI(StringSeqHolder args)
- {
- String file = getConfigFile(args.value);
-
- if (file.length() > 0)
- {
- load(file);
- }
-
- parseArgs(args);
- setProperty("Ice.Config", file);
- }
-
- PropertiesI(String[] args, String file)
- {
- if (file == null)
- {
- file = "";
- }
-
- if (file.length() > 0)
+ for (int i = 0; i < args.length; i++)
{
- load(file);
+ if (args[i].startsWith("--Ice.Config"))
+ {
+ String line = args[i];
+ if (line.indexOf('=') == -1)
+ {
+ line += "=1";
+ }
+ parseLine(line.substring(2));
+ }
}
- StringSeqHolder argsH = new StringSeqHolder();
- argsH.value = args;
- parseArgs(argsH);
- setProperty("Ice.Config", file);
- }
+ String file = getProperty("Ice.Config");
- PropertiesI(StringSeqHolder args, String file)
- {
- if (file == null)
+ if (file.equals("1"))
{
file = "";
}
@@ -208,23 +195,25 @@ class PropertiesI implements Properties
load(file);
}
- parseArgs(args);
setProperty("Ice.Config", file);
}
- private String
- getConfigFile(String[] args)
+ PropertiesI(StringSeqHolder args)
{
- for (int i = 0; i < args.length; i++)
+ for (int i = 0; i < args.value.length; i++)
{
- if (args[i].startsWith("--Ice.Config"))
+ if (args.value[i].startsWith("--Ice.Config"))
{
- String line = args[i];
+ String line = args.value[i];
if (line.indexOf('=') == -1)
{
line += "=1";
}
parseLine(line.substring(2));
+ String[] arr = new String[args.value.length - 1];
+ System.arraycopy(args.value, 0, arr, 0, i);
+ System.arraycopy(args.value, i + 1, arr, i, args.value.length - i);
+ args.value = arr;
}
}
@@ -235,63 +224,12 @@ class PropertiesI implements Properties
file = "";
}
- return file;
- }
-
- private void
- parseArgs(StringSeqHolder args)
- {
- int idx = 0;
- while (idx < args.value.length)
+ if (file.length() > 0)
{
- boolean match = false;
- String arg = args.value[idx];
- int beg = arg.indexOf("--");
- if (beg == 0)
- {
- String rest = arg.substring(2);
- if (rest.startsWith("Ice."))
- {
- match = true;
- }
- else
- {
- java.util.Iterator p = _argumentPrefixes.iterator();
- while (p.hasNext())
- {
- String prefix = (String)p.next();
- if (rest.startsWith(prefix + '.'))
- {
- match = true;
- break;
- }
- }
- }
-
- if (match)
- {
- String[] arr = new String[args.value.length - 1];
- System.arraycopy(args.value, 0, arr, 0, idx);
- if (idx < args.value.length - 1)
- {
- System.arraycopy(args.value, idx + 1, arr, idx, args.value.length - idx - 1);
- }
- args.value = arr;
-
- if (arg.indexOf('=') == -1)
- {
- arg += "=1";
- }
-
- parseLine(arg.substring(2));
- }
- }
-
- if (!match)
- {
- idx++;
- }
+ load(file);
}
+
+ setProperty("Ice.Config", file);
}
private void