diff options
author | Jose <jose@zeroc.com> | 2012-04-09 17:34:19 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-04-09 17:34:19 +0200 |
commit | 1b8abbe57cdb4033d9a17cf421e219b956c1c385 (patch) | |
tree | 459712bf043f1b4b5e254beb65938235c8486775 /java/src/IceBox/Server.java | |
parent | ICE-4806 - name hiding warnings (diff) | |
download | ice-1b8abbe57cdb4033d9a17cf421e219b956c1c385.tar.bz2 ice-1b8abbe57cdb4033d9a17cf421e219b956c1c385.tar.xz ice-1b8abbe57cdb4033d9a17cf421e219b956c1c385.zip |
ICE-4803 - iceboxnet and unknown properties
Diffstat (limited to 'java/src/IceBox/Server.java')
-rw-r--r-- | java/src/IceBox/Server.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/java/src/IceBox/Server.java b/java/src/IceBox/Server.java index c40f62054d6..4671e866705 100644 --- a/java/src/IceBox/Server.java +++ b/java/src/IceBox/Server.java @@ -35,14 +35,36 @@ public final class Server extends Ice.Application public int run(String[] args) { - for(String arg : args) + final String prefix = "IceBox.Service."; + Ice.Properties properties = communicator().getProperties(); + java.util.Map<String, String> services = properties.getPropertiesForPrefix(prefix); + java.util.List<String> argSeq = new java.util.ArrayList<String>(args.length); + for(String s : args) + { + argSeq.add(s); + } + + for(java.util.Map.Entry<String, String> entry : services.entrySet()) + { + String name = entry.getKey().substring(prefix.length()); + for(int i = 0; i < argSeq.size(); ++i) + { + if(argSeq.get(i).startsWith("--" + name)) + { + argSeq.remove(i); + i--; + } + } + } + + for(String arg : argSeq) { if(arg.equals("-h") || arg.equals("--help")) { usage(); return 0; } - else if(!arg.startsWith("--")) + else { System.err.println("Server: unknown option `" + arg + "'"); usage(); |