summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2017-03-28 17:09:13 -0400
committerBernard Normier <bernard@zeroc.com>2017-03-28 17:09:13 -0400
commit1aecc966db0271576d8fe0584cd4566fb6a5c910 (patch)
tree07d83497f28b21bc2d7ad4584f00fca53be60648
parentExpect.py script fixes (diff)
downloadice-1aecc966db0271576d8fe0584cd4566fb6a5c910.tar.bz2
ice-1aecc966db0271576d8fe0584cd4566fb6a5c910.tar.xz
ice-1aecc966db0271576d8fe0584cd4566fb6a5c910.zip
New initialize overloads that take a configFile instead of initData
-rw-r--r--cpp/src/Ice/Application.cpp12
-rw-r--r--java-compat/src/Ice/src/main/java/Ice/Util.java70
-rw-r--r--java/src/Ice/src/main/java/com/zeroc/Ice/Util.java59
-rw-r--r--objective-c/include/objc/Ice/Initialize.h5
-rw-r--r--objective-c/src/Ice/Initialize.mm9
5 files changed, 134 insertions, 21 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp
index 0d817c55ada..c689b453fbb 100644
--- a/cpp/src/Ice/Application.cpp
+++ b/cpp/src/Ice/Application.cpp
@@ -416,17 +416,7 @@ Ice::Application::doMain(int argc, char* argv[], const InitializationData& initD
setProcessLogger(ICE_MAKE_SHARED(LoggerI, initData.properties->getProperty("Ice.ProgramName"), "", convert));
}
- if(argc >= 0)
- {
- _communicator = initialize(argc, argv, initData, version);
- }
- else
- {
- //
- // argc < 0 means use arg-less version of initialize
- //
- _communicator = initialize(initData, version);
- }
+ _communicator = initialize(argc, argv, initData, version);
_destroyed = false;
//
diff --git a/java-compat/src/Ice/src/main/java/Ice/Util.java b/java-compat/src/Ice/src/main/java/Ice/Util.java
index 891f2fce97d..1ec8e1af1cb 100644
--- a/java-compat/src/Ice/src/main/java/Ice/Util.java
+++ b/java-compat/src/Ice/src/main/java/Ice/Util.java
@@ -117,7 +117,7 @@ public final class Util
public static Communicator
initialize(StringSeqHolder args)
{
- return initialize(args, null);
+ return initialize(args, (InitializationData)null);
}
/**
@@ -167,6 +167,32 @@ public final class Util
return result;
}
+ /**
+ * Creates a communicator.
+ *
+ * @param args A command-line argument vector. Any Ice-related options
+ * in this vector are used to intialize the communicator.
+ * This method modifies the argument vector by removing any Ice-related options.
+ *
+ * @param configFile Path to a config file that sets the new Communicator's default
+ * properties.
+ *
+ * @return The initialized communicator.
+ **/
+ public static Communicator
+ initialize(StringSeqHolder args, String configFile)
+ {
+ InitializationData initData = null;
+ if(configFile != null)
+ {
+ initData = new InitializationData();
+ initData.properties = Util.createProperties();
+ initData.properties.load(configFile);
+ }
+
+ return initialize(args, initData);
+ }
+
/**
* Creates a communicator.
*
@@ -190,6 +216,26 @@ public final class Util
/**
* Creates a communicator.
*
+ * @param args A command-line argument vector. Any Ice-related options
+ * in this vector are used to intialize the communicator.
+ *
+ * @param configFile Path to a config file that sets the new Communicator's default
+ * properties.
+ *
+ * @return The initialized communicator.
+ *
+ * @see InitializationData
+ **/
+ public static Communicator
+ initialize(String[] args, String configFile)
+ {
+ StringSeqHolder argsH = new StringSeqHolder(args);
+ return initialize(argsH, configFile);
+ }
+
+ /**
+ * Creates a communicator.
+ *
* @param initData Additional intialization data.
*
* @return The initialized communicator.
@@ -213,6 +259,28 @@ public final class Util
return result;
}
+ /**
+ * Creates a communicator.
+ *
+ * @param configFile Path to a config file that sets the new Communicator's default
+ * properties.
+ *
+ * @return The initialized communicator.
+ **/
+ public static Communicator
+ initialize(String configFile)
+ {
+ InitializationData initData = null;
+ if(configFile != null)
+ {
+ initData = new InitializationData();
+ initData.properties = Util.createProperties();
+ initData.properties.load(configFile);
+ }
+
+ return initialize(initData);
+ }
+
/**
* Creates a communicator using a default configuration.
*
diff --git a/java/src/Ice/src/main/java/com/zeroc/Ice/Util.java b/java/src/Ice/src/main/java/com/zeroc/Ice/Util.java
index 5b66f212ffb..73c087c7faf 100644
--- a/java/src/Ice/src/main/java/com/zeroc/Ice/Util.java
+++ b/java/src/Ice/src/main/java/com/zeroc/Ice/Util.java
@@ -128,11 +128,11 @@ public final class Util
* @param args A command-line argument vector. Any Ice-related options
* in this vector are used to initialize the communicator.
*
- * @return The new communicator and a filtered argument vector.
+ * @return The new communicator.
**/
public static Communicator initialize(String[] args)
{
- return initialize(args, null, null);
+ return initialize(args, (InitializationData)null, null);
}
/**
@@ -144,11 +144,11 @@ public final class Util
* @param remainingArgs If non null, the given list will contain on
* return the command-line arguments that were not used to set properties.
*
- * @return The new communicator and a filtered argument vector.
+ * @return The new communicator.
**/
public static Communicator initialize(String[] args, java.util.List<String> remainingArgs)
{
- return initialize(args, null, remainingArgs);
+ return initialize(args, (InitializationData)null, remainingArgs);
}
/**
@@ -156,7 +156,7 @@ public final class Util
*
* @param initData Additional initialization data.
*
- * @return The new communicator and a filtered argument vector.
+ * @return The new communicator.
**/
public static Communicator initialize(InitializationData initData)
{
@@ -171,7 +171,7 @@ public final class Util
*
* @param initData Additional initialization data.
*
- * @return The new communicator and a filtered argument vector.
+ * @return The new communicator.
**/
public static Communicator initialize(String[] args, InitializationData initData)
{
@@ -184,13 +184,29 @@ public final class Util
* @param args A command-line argument vector. Any Ice-related options
* in this vector are used to initialize the communicator.
*
+ * @param configFile Path to a config file that sets the new Communicator's default
+ * properties.
+ *
+ * @return The new communicator.
+ **/
+ public static Communicator initialize(String[] args, String configFile)
+ {
+ return initialize(args, configFile, null);
+ }
+
+ /**
+ * Creates a communicator.
+ *
+ * @param args A command-line argument vector. Any Ice-related options
+ * in this vector are used to initialize the communicator.
+ *
* @param initData Additional initialization data. Property settings in <code>args</code>
* override property settings in <code>initData</code>.
*
* @param remainingArgs If non null, the given list will contain on
* return the command-line arguments that were not used to set properties.
*
- * @return The new communicator and a filtered argument vector.
+ * @return The new communicator.
*
* @see InitializationData
**/
@@ -220,6 +236,35 @@ public final class Util
}
/**
+ * Creates a communicator.
+ *
+ * @param args A command-line argument vector. Any Ice-related options
+ * in this vector are used to initialize the communicator.
+ *
+ * @param configFile Path to a config file that sets the new Communicator's default
+ * properties.
+ *
+ * @param remainingArgs If non null, the given list will contain on
+ * return the command-line arguments that were not used to set properties.
+ *
+ * @return The new communicator.
+ **/
+ public static Communicator initialize(String[] args,
+ String configFile,
+ java.util.List<String> remainingArgs)
+ {
+ InitializationData initData = null;
+ if(configFile != null)
+ {
+ initData = new InitializationData();
+ initData.properties = Util.createProperties();
+ initData.properties.load(configFile);
+ }
+
+ return initialize(args, initData, remainingArgs);
+ }
+
+ /**
* Converts a string to an object identity.
*
* @param s The string to convert.
diff --git a/objective-c/include/objc/Ice/Initialize.h b/objective-c/include/objc/Ice/Initialize.h
index 53cc7006e2c..fb34c1f2ddb 100644
--- a/objective-c/include/objc/Ice/Initialize.h
+++ b/objective-c/include/objc/Ice/Initialize.h
@@ -66,9 +66,10 @@ ICE_API @interface ICEUtil : NSObject
+(id<ICEProperties>) createProperties;
+(id<ICEProperties>) createProperties:(int*)argc argv:(char*[])argv;
+(id<ICECommunicator>) createCommunicator;
-+(id<ICECommunicator>) createCommunicator:(ICEInitializationData *)initData;
++(id<ICECommunicator>) createCommunicator:(ICEInitializationData*)initData;
+(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv;
-+(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv initData:(ICEInitializationData *)initData;
++(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv initData:(ICEInitializationData*)initData;
++(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv configFile:(NSString*)configFile;
+(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)communicator data:(NSData*)data;
+(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)c data:(NSData*)data encoding:(ICEEncodingVersion*)e;
+(id<ICEOutputStream>) createOutputStream:(id<ICECommunicator>)communicator;
diff --git a/objective-c/src/Ice/Initialize.mm b/objective-c/src/Ice/Initialize.mm
index a7ce4ab2b60..3813a2b8b9d 100644
--- a/objective-c/src/Ice/Initialize.mm
+++ b/objective-c/src/Ice/Initialize.mm
@@ -417,6 +417,15 @@ private:
return nil; // Keep the compiler happy.
}
++(id<ICECommunicator>) createCommunicator:(int*)argc argv:(char*[])argv configFile:(NSString*)configFile
+{
+ ICEInitializationData* initData = [ICEInitializationData initializationData];
+ initData.properties = [ICEUtil createProperties];
+ [initData.properties load:configFile];
+
+ return [self createCommunicator:argc argv:argv initData:initData];
+}
+
+(id<ICEInputStream>) createInputStream:(id<ICECommunicator>)c data:(NSData*)data
{
NSException* nsex = nil;