summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2014-07-10 14:16:59 +0200
committerBenoit Foucher <benoit@zeroc.com>2014-07-10 14:16:59 +0200
commit9962c1c90ddb9a0986bb98f84f2d97685203fce0 (patch)
treefef7973a98850f43f7118f65b8e8b8586286d987
parentFix background test. (diff)
downloadice-9962c1c90ddb9a0986bb98f84f2d97685203fce0.tar.bz2
ice-9962c1c90ddb9a0986bb98f84f2d97685203fce0.tar.xz
ice-9962c1c90ddb9a0986bb98f84f2d97685203fce0.zip
ICE-4612: first cut of the IceGrid discovery plugin and APIs
-rw-r--r--config/PropertyNames.xml24
-rw-r--r--cpp/demo/IceGrid/allocate/config.client8
-rw-r--r--cpp/demo/IceGrid/customLoadBalancing/config.client8
-rw-r--r--cpp/demo/IceGrid/icebox/config.client8
-rw-r--r--cpp/demo/IceGrid/replication/config.client10
-rw-r--r--cpp/demo/IceGrid/replication/config.master6
-rw-r--r--cpp/demo/IceGrid/replication/config.node12
-rw-r--r--cpp/demo/IceGrid/replication/config.node22
-rw-r--r--cpp/demo/IceGrid/replication/config.replica16
-rw-r--r--cpp/demo/IceGrid/replication/config.replica26
-rw-r--r--cpp/demo/IceGrid/secure/config.client8
-rw-r--r--cpp/demo/IceGrid/sessionActivation/config.client8
-rw-r--r--cpp/demo/IceGrid/simple/.depend2
-rw-r--r--cpp/demo/IceGrid/simple/config.client8
-rw-r--r--cpp/include/Ice/Initialize.h1
-rw-r--r--cpp/include/IceGrid/.gitignore1
-rw-r--r--cpp/include/IceGrid/IceGrid.h1
-rw-r--r--cpp/src/Ice/CommunicatorI.h1
-rw-r--r--cpp/src/Ice/Initialize.cpp8
-rw-r--r--cpp/src/Ice/ObjectAdapterI.cpp2
-rw-r--r--cpp/src/Ice/PropertyNames.cpp173
-rw-r--r--cpp/src/Ice/PropertyNames.h3
-rw-r--r--cpp/src/IceDiscovery/LookupI.cpp3
-rw-r--r--cpp/src/IceDiscovery/PluginI.cpp2
-rw-r--r--cpp/src/IceDiscovery/PluginI.h1
-rw-r--r--cpp/src/IceGrid/Client.cpp247
-rw-r--r--cpp/src/IceGrid/RegistryI.cpp101
-rw-r--r--cpp/src/IceGrid/WellKnownObjectsManager.cpp11
-rw-r--r--cpp/src/IceGrid/WellKnownObjectsManager.h3
-rw-r--r--cpp/src/IceGridLib/.depend5
-rw-r--r--cpp/src/IceGridLib/.depend.mak5
-rw-r--r--cpp/src/IceGridLib/.gitignore1
-rw-r--r--cpp/src/IceGridLib/DiscoveryPluginI.cpp472
-rw-r--r--cpp/src/IceGridLib/DiscoveryPluginI.h36
-rw-r--r--cpp/src/IceGridLib/Makefile5
-rw-r--r--cpp/src/IceGridLib/Makefile.mak3
-rwxr-xr-xcpp/test/IceDiscovery/simple/run.py9
-rw-r--r--cpp/test/IceGrid/activation/AllTests.cpp6
-rwxr-xr-xcpp/test/IceGrid/admin/run.py12
-rw-r--r--cpp/test/IceGrid/allocation/AllTests.cpp7
-rw-r--r--cpp/test/IceGrid/allocation/application.xml4
-rw-r--r--cpp/test/IceGrid/deployer/AllTests.cpp17
-rw-r--r--cpp/test/IceGrid/distribution/AllTests.cpp7
-rw-r--r--cpp/test/IceGrid/noRestartUpdate/AllTests.cpp7
-rw-r--r--cpp/test/IceGrid/replicaGroup/AllTests.cpp17
-rw-r--r--cpp/test/IceGrid/replication/AllTests.cpp88
-rw-r--r--cpp/test/IceGrid/replication/application.xml14
-rw-r--r--cpp/test/IceGrid/session/AllTests.cpp24
-rw-r--r--cpp/test/IceGrid/session/application.xml8
-rw-r--r--cpp/test/IceGrid/simple/AllTests.cpp23
-rw-r--r--cpp/test/IceGrid/update/AllTests.cpp8
-rw-r--r--cs/src/Ice/ObjectAdapterI.cs2
-rw-r--r--cs/src/Ice/PropertyNames.cs170
-rw-r--r--cs/src/IceDiscovery/PluginI.cs3
-rwxr-xr-xcs/test/IceDiscovery/simple/run.py9
-rw-r--r--cs/test/IceGrid/simple/AllTests.cs2
-rw-r--r--java/src/Ice/ObjectAdapterI.java2
-rw-r--r--java/src/IceDiscovery/PluginI.java3
-rw-r--r--java/src/IceInternal/PropertyNames.java170
-rwxr-xr-xjava/test/IceDiscovery/simple/run.py9
-rw-r--r--java/test/IceGrid/simple/AllTests.java2
-rw-r--r--js/src/Ice/PropertyNames.js2
-rw-r--r--scripts/IceGridAdmin.py16
-rw-r--r--slice/IceGrid/Discovery.ice29
64 files changed, 1661 insertions, 200 deletions
diff --git a/config/PropertyNames.xml b/config/PropertyNames.xml
index f50ff305d7b..e8caff226da 100644
--- a/config/PropertyNames.xml
+++ b/config/PropertyNames.xml
@@ -415,6 +415,18 @@ generated from the section label.
<property name="DomainId"/>
</section>
+ <section name="IceGridDiscovery">
+ <property name="Reply" class="objectadapter" />
+ <property name="Locator" class="objectadapter" />
+ <property name="Lookup"/>
+ <property name="Timeout"/>
+ <property name="RetryCount"/>
+ <property name="Address"/>
+ <property name="Port"/>
+ <property name="Interface"/>
+ <property name="InstanceName"/>
+ </section>
+
<section name="IceBox">
<property name="InheritProperties" />
<property name="InstanceName" />
@@ -436,6 +448,13 @@ generated from the section label.
<property name="Username" />
<property name="Password" />
<property name="Replica" />
+ <property name="Host" />
+ <property name="Port" />
+ <property name="InstanceName" />
+ <property name="Discovery.Address" />
+ <property name="Discovery.Interface" />
+ <property name="Discovery.Lookup" />
+ <property name="Discovery.Reply" class="objectadapter" />
<property name="Trace.Observers" />
<property name="Trace.SaveToRegistry" />
</section>
@@ -472,6 +491,11 @@ generated from the section label.
<property name="Registry.CryptPasswords" />
<property name="Registry.Data" />
<property name="Registry.DefaultTemplates" />
+ <property name="Registry.Discovery" class="objectadapter" />
+ <property name="Registry.Discovery.Enabled" />
+ <property name="Registry.Discovery.Address" />
+ <property name="Registry.Discovery.Port" />
+ <property name="Registry.Discovery.Interface" />
<property name="Registry.DynamicRegistration" />
<property name="Registry.Internal" class="objectadapter" />
<property name="Registry.NodeSessionTimeout" />
diff --git a/cpp/demo/IceGrid/allocate/config.client b/cpp/demo/IceGrid/allocate/config.client
index 144526d6035..b79723c77b9 100644
--- a/cpp/demo/IceGrid/allocate/config.client
+++ b/cpp/demo/IceGrid/allocate/config.client
@@ -2,3 +2,11 @@
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -t 30000 -h localhost -p 4061
+
+#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
diff --git a/cpp/demo/IceGrid/customLoadBalancing/config.client b/cpp/demo/IceGrid/customLoadBalancing/config.client
index d2916d806c6..c3052ac6814 100644
--- a/cpp/demo/IceGrid/customLoadBalancing/config.client
+++ b/cpp/demo/IceGrid/customLoadBalancing/config.client
@@ -4,6 +4,14 @@
Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 4061 -t 30000
#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
+
+#
# The `currency' context sent to the IceGrid locator. This context is
# used by the replica group filter from the plugin to filter out
# replicas. You can set the currency to one of the configured currency
diff --git a/cpp/demo/IceGrid/icebox/config.client b/cpp/demo/IceGrid/icebox/config.client
index 035e568c18a..9587857c00f 100644
--- a/cpp/demo/IceGrid/icebox/config.client
+++ b/cpp/demo/IceGrid/icebox/config.client
@@ -8,3 +8,11 @@ Hello.Proxy=hello
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -t 30000 -h localhost -p 4061
+
+#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
diff --git a/cpp/demo/IceGrid/replication/config.client b/cpp/demo/IceGrid/replication/config.client
index 71570ba9951..19e3de030b4 100644
--- a/cpp/demo/IceGrid/replication/config.client
+++ b/cpp/demo/IceGrid/replication/config.client
@@ -1,7 +1,15 @@
#
# The IceGrid locator proxy.
#
-Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 12000:default -h localhost -p 12001:default -h localhost -p 12002
+Ice.Default.Locator=ReplicationDemoIceGrid/Locator:default -h localhost -p 12000:default -h localhost -p 12001:default -h localhost -p 12002
+
+#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=ReplicationDemoIceGrid
Ice.Override.Timeout=10000
diff --git a/cpp/demo/IceGrid/replication/config.master b/cpp/demo/IceGrid/replication/config.master
index c6e30104b1f..c5c33a9c153 100644
--- a/cpp/demo/IceGrid/replication/config.master
+++ b/cpp/demo/IceGrid/replication/config.master
@@ -1,7 +1,7 @@
#
# The IceGrid instance name.
#
-IceGrid.InstanceName=DemoIceGrid
+IceGrid.InstanceName=ReplicationDemoIceGrid
#
# IceGrid registry configuration.
@@ -10,8 +10,8 @@ IceGrid.Registry.Client.Endpoints=default -h localhost -p 12000 -t 10000
IceGrid.Registry.Server.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Internal.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Data=db/master
-IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
-IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.PermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.AdminPermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
Ice.StdErr=db/master/stderr.txt
Ice.StdOut=db/master/stdout.txt
diff --git a/cpp/demo/IceGrid/replication/config.node1 b/cpp/demo/IceGrid/replication/config.node1
index 3fe185fda80..42c70b30bca 100644
--- a/cpp/demo/IceGrid/replication/config.node1
+++ b/cpp/demo/IceGrid/replication/config.node1
@@ -1,7 +1,7 @@
#
# The IceGrid locator proxy.
#
-Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000:default -h localhost -p 12002 -t 10000
+Ice.Default.Locator=ReplicationDemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000:default -h localhost -p 12002 -t 10000
#
# IceGrid node configuration.
diff --git a/cpp/demo/IceGrid/replication/config.node2 b/cpp/demo/IceGrid/replication/config.node2
index a9b9fa5df4d..a8def29fc15 100644
--- a/cpp/demo/IceGrid/replication/config.node2
+++ b/cpp/demo/IceGrid/replication/config.node2
@@ -1,7 +1,7 @@
#
# The IceGrid locator proxy.
#
-Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000:default -h localhost -p 12002 -t 10000
+Ice.Default.Locator=ReplicationDemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000:default -h localhost -p 12002 -t 10000
#
# IceGrid node configuration.
diff --git a/cpp/demo/IceGrid/replication/config.replica1 b/cpp/demo/IceGrid/replication/config.replica1
index 3ef93a387a0..7d3d886061f 100644
--- a/cpp/demo/IceGrid/replication/config.replica1
+++ b/cpp/demo/IceGrid/replication/config.replica1
@@ -1,7 +1,7 @@
#
# The IceGrid locator proxy.
#
-Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12002 -t 10000
+Ice.Default.Locator=ReplicationDemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12002 -t 10000
#
# IceGrid registry configuration.
@@ -11,8 +11,8 @@ IceGrid.Registry.Server.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Internal.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Data=db/replica1
IceGrid.Registry.ReplicaName=Replica1
-IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
-IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.PermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.AdminPermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
Ice.StdErr=db/replica1/stderr.txt
Ice.StdOut=db/replica1/stdout.txt
diff --git a/cpp/demo/IceGrid/replication/config.replica2 b/cpp/demo/IceGrid/replication/config.replica2
index 763e55f0797..11c1f03dd48 100644
--- a/cpp/demo/IceGrid/replication/config.replica2
+++ b/cpp/demo/IceGrid/replication/config.replica2
@@ -1,7 +1,7 @@
#
# The IceGrid locator proxy.
#
-Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000
+Ice.Default.Locator=ReplicationDemoIceGrid/Locator:default -h localhost -p 12000 -t 10000:default -h localhost -p 12001 -t 10000
#
# IceGrid registry configuration.
@@ -11,8 +11,8 @@ IceGrid.Registry.Server.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Internal.Endpoints=default -h localhost -t 10000
IceGrid.Registry.Data=db/replica2
IceGrid.Registry.ReplicaName=Replica2
-IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
-IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.PermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
+IceGrid.Registry.AdminPermissionsVerifier=ReplicationDemoIceGrid/NullPermissionsVerifier
Ice.StdErr=db/replica2/stderr.txt
Ice.StdOut=db/replica2/stdout.txt
diff --git a/cpp/demo/IceGrid/secure/config.client b/cpp/demo/IceGrid/secure/config.client
index c753bc613f6..03cfd282823 100644
--- a/cpp/demo/IceGrid/secure/config.client
+++ b/cpp/demo/IceGrid/secure/config.client
@@ -4,6 +4,14 @@
Ice.Default.Locator=DemoIceGrid/Locator:tcp -t 10000 -h localhost -p 4061:tcp -t 10000 -h localhost -p 14061
#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
+
+#
# Trace properties.
#
#Ice.Trace.Network=1
diff --git a/cpp/demo/IceGrid/sessionActivation/config.client b/cpp/demo/IceGrid/sessionActivation/config.client
index 144526d6035..b79723c77b9 100644
--- a/cpp/demo/IceGrid/sessionActivation/config.client
+++ b/cpp/demo/IceGrid/sessionActivation/config.client
@@ -2,3 +2,11 @@
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -t 30000 -h localhost -p 4061
+
+#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
diff --git a/cpp/demo/IceGrid/simple/.depend b/cpp/demo/IceGrid/simple/.depend
index 40038b2aaee..72dc17bac33 100644
--- a/cpp/demo/IceGrid/simple/.depend
+++ b/cpp/demo/IceGrid/simple/.depend
@@ -1,4 +1,4 @@
-Hello$(OBJEXT): Hello.cpp Hello.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h
+nfHello$(OBJEXT): Hello.cpp Hello.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h
Client$(OBJEXT): Client.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/IceGrid/IceGrid.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/FileParser.h $(includedir)/IceGrid/Locator.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/IceGrid/PluginFacade.h Hello.h
HelloI$(OBJEXT): HelloI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h HelloI.h Hello.h
Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h HelloI.h Hello.h
diff --git a/cpp/demo/IceGrid/simple/config.client b/cpp/demo/IceGrid/simple/config.client
index cfa8c577189..0af701e0ab7 100644
--- a/cpp/demo/IceGrid/simple/config.client
+++ b/cpp/demo/IceGrid/simple/config.client
@@ -2,3 +2,11 @@
# The IceGrid locator proxy.
#
Ice.Default.Locator=DemoIceGrid/Locator:default -h localhost -p 4061 -t 30000
+
+#
+# To use the IceGrid discovery plugin comment out the default locator
+# property above and un-comment the two properties below. The discovery
+# plugin uses multicast to discover IceGrid.
+#
+#Ice.Plugin.IceGridDiscovery=IceGrid:createIceGridDiscovery
+#IceGridDiscovery.InstanceName=DemoIceGrid
diff --git a/cpp/include/Ice/Initialize.h b/cpp/include/Ice/Initialize.h
index d0a49de66b1..04271017221 100644
--- a/cpp/include/Ice/Initialize.h
+++ b/cpp/include/Ice/Initialize.h
@@ -130,6 +130,7 @@ namespace IceInternal
// to be used by modules such as Freeze.
//
ICE_API InstancePtr getInstance(const ::Ice::CommunicatorPtr&);
+ICE_API IceUtil::TimerPtr getInstanceTimer(const ::Ice::CommunicatorPtr&);
}
diff --git a/cpp/include/IceGrid/.gitignore b/cpp/include/IceGrid/.gitignore
index f0d1242a431..195635b503d 100644
--- a/cpp/include/IceGrid/.gitignore
+++ b/cpp/include/IceGrid/.gitignore
@@ -2,6 +2,7 @@
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
Admin.h
+Discovery.h
Exception.h
FileParser.h
Locator.h
diff --git a/cpp/include/IceGrid/IceGrid.h b/cpp/include/IceGrid/IceGrid.h
index 2db135ddab5..b02f9f2b74b 100644
--- a/cpp/include/IceGrid/IceGrid.h
+++ b/cpp/include/IceGrid/IceGrid.h
@@ -21,6 +21,7 @@
#include <IceGrid/Session.h>
#include <IceGrid/UserAccountMapper.h>
#include <IceGrid/PluginFacade.h>
+#include <IceGrid/Discovery.h>
namespace IceGrid
{
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index df7b8ecc158..8aef1ed13fa 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -96,6 +96,7 @@ private:
friend ICE_API CommunicatorPtr initialize(StringSeq&, const InitializationData&, Int);
friend ICE_API CommunicatorPtr initialize(const InitializationData&, Int);
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
+ friend ICE_API ::IceUtil::TimerPtr IceInternal::getInstanceTimer(const ::Ice::CommunicatorPtr&);
AsyncResultPtr __begin_flushBatchRequests(const IceInternal::CallbackBasePtr&, const LocalObjectPtr&);
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp
index 5702d76c51d..f4279f7812d 100644
--- a/cpp/src/Ice/Initialize.cpp
+++ b/cpp/src/Ice/Initialize.cpp
@@ -359,6 +359,14 @@ IceInternal::getInstance(const CommunicatorPtr& communicator)
return p->_instance;
}
+IceUtil::TimerPtr
+IceInternal::getInstanceTimer(const CommunicatorPtr& communicator)
+{
+ CommunicatorI* p = dynamic_cast<CommunicatorI*>(communicator.get());
+ assert(p);
+ return p->_instance->timer();
+}
+
#ifdef ICE_CPP11
void
IceInternal::Cpp11Dispatcher::dispatch(const ::Ice::DispatcherCallPtr& call, const ::Ice::ConnectionPtr& conn)
diff --git a/cpp/src/Ice/ObjectAdapterI.cpp b/cpp/src/Ice/ObjectAdapterI.cpp
index ed798943b30..dbf3d5183e4 100644
--- a/cpp/src/Ice/ObjectAdapterI.cpp
+++ b/cpp/src/Ice/ObjectAdapterI.cpp
@@ -1256,7 +1256,7 @@ ObjectAdapterI::parsePublishedEndpoints()
}
}
- if(_instance->traceLevels()->network >= 1)
+ if(_instance->traceLevels()->network >= 1 && !endpoints.empty())
{
Trace out(_instance->initializationData().logger, _instance->traceLevels()->networkCat);
out << "published endpoints for object adapter `" << getName() << "':\n";
diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp
index c173ecfaa82..acadc7fb151 100644
--- a/cpp/src/Ice/PropertyNames.cpp
+++ b/cpp/src/Ice/PropertyNames.cpp
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Jun 5 21:19:31 2014
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Jul 9 18:08:33 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -319,6 +319,93 @@ const IceInternal::PropertyArray
IceInternal::PropertyNames::IceDiscoveryProps(IceDiscoveryPropsData,
sizeof(IceDiscoveryPropsData)/sizeof(IceDiscoveryPropsData[0]));
+const IceInternal::Property IceGridDiscoveryPropsData[] =
+{
+ IceInternal::Property("IceGridDiscovery.Reply.ACM.Timeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ACM.Heartbeat", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ACM.Close", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ACM", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.AdapterId", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Endpoints", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.PreferSecure", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator.Context.*", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.PublishedEndpoints", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ReplicaGroupId", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.PreferSecure", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router.Context.*", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ProxyOptions", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.Size", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.SizeMax", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.SizeWarn", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.StackSize", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.Serialize", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.ThreadIdleTime", false, 0),
+ IceInternal::Property("IceGridDiscovery.Reply.ThreadPool.ThreadPriority", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ACM.Timeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ACM.Heartbeat", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ACM.Close", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ACM", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.AdapterId", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Endpoints", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.PreferSecure", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator.Context.*", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.PublishedEndpoints", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ReplicaGroupId", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.PreferSecure", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.Locator", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router.Context.*", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.Router", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ProxyOptions", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.Size", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.SizeMax", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.SizeWarn", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.StackSize", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.Serialize", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.ThreadIdleTime", false, 0),
+ IceInternal::Property("IceGridDiscovery.Locator.ThreadPool.ThreadPriority", false, 0),
+ IceInternal::Property("IceGridDiscovery.Lookup", false, 0),
+ IceInternal::Property("IceGridDiscovery.Timeout", false, 0),
+ IceInternal::Property("IceGridDiscovery.RetryCount", false, 0),
+ IceInternal::Property("IceGridDiscovery.Address", false, 0),
+ IceInternal::Property("IceGridDiscovery.Port", false, 0),
+ IceInternal::Property("IceGridDiscovery.Interface", false, 0),
+ IceInternal::Property("IceGridDiscovery.InstanceName", false, 0),
+};
+
+const IceInternal::PropertyArray
+ IceInternal::PropertyNames::IceGridDiscoveryProps(IceGridDiscoveryPropsData,
+ sizeof(IceGridDiscoveryPropsData)/sizeof(IceGridDiscoveryPropsData[0]));
+
const IceInternal::Property IceBoxPropsData[] =
{
IceInternal::Property("IceBox.InheritProperties", false, 0),
@@ -395,6 +482,48 @@ const IceInternal::Property IceGridAdminPropsData[] =
IceInternal::Property("IceGridAdmin.Username", false, 0),
IceInternal::Property("IceGridAdmin.Password", false, 0),
IceInternal::Property("IceGridAdmin.Replica", false, 0),
+ IceInternal::Property("IceGridAdmin.Host", false, 0),
+ IceInternal::Property("IceGridAdmin.Port", false, 0),
+ IceInternal::Property("IceGridAdmin.InstanceName", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Address", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Interface", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Lookup", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ACM.Timeout", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ACM.Heartbeat", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ACM.Close", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ACM", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.AdapterId", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Endpoints", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.PreferSecure", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.Locator", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.Router", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator.Context.*", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Locator", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.PublishedEndpoints", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ReplicaGroupId", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.EndpointSelection", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.ConnectionCached", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.PreferSecure", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.Locator", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.Router", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router.Context.*", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.Router", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ProxyOptions", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.Size", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.SizeMax", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.SizeWarn", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.StackSize", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.Serialize", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.ThreadIdleTime", false, 0),
+ IceInternal::Property("IceGridAdmin.Discovery.Reply.ThreadPool.ThreadPriority", false, 0),
IceInternal::Property("IceGridAdmin.Trace.Observers", false, 0),
IceInternal::Property("IceGridAdmin.Trace.SaveToRegistry", false, 0),
};
@@ -603,6 +732,46 @@ const IceInternal::Property IceGridPropsData[] =
IceInternal::Property("IceGrid.Registry.CryptPasswords", false, 0),
IceInternal::Property("IceGrid.Registry.Data", false, 0),
IceInternal::Property("IceGrid.Registry.DefaultTemplates", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ACM.Timeout", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ACM.Heartbeat", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ACM.Close", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ACM", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.AdapterId", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Endpoints", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.EndpointSelection", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.ConnectionCached", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.PreferSecure", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.Locator", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.Router", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator.Context.*", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Locator", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.PublishedEndpoints", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ReplicaGroupId", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.EndpointSelection", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.ConnectionCached", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.PreferSecure", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.LocatorCacheTimeout", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.InvocationTimeout", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.Locator", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.Router", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.CollocationOptimized", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router.Context.*", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Router", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ProxyOptions", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.Size", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.SizeMax", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.SizeWarn", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.StackSize", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.Serialize", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.ThreadIdleTime", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.ThreadPool.ThreadPriority", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Enabled", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Address", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Port", false, 0),
+ IceInternal::Property("IceGrid.Registry.Discovery.Interface", false, 0),
IceInternal::Property("IceGrid.Registry.DynamicRegistration", false, 0),
IceInternal::Property("IceGrid.Registry.Internal.ACM.Timeout", false, 0),
IceInternal::Property("IceGrid.Registry.Internal.ACM.Heartbeat", false, 0),
@@ -1073,6 +1242,7 @@ const IceInternal::PropertyArray IceInternal::PropertyNames::validProps[] =
IceProps,
IceMXProps,
IceDiscoveryProps,
+ IceGridDiscoveryProps,
IceBoxProps,
IceBoxAdminProps,
IceGridAdminProps,
@@ -1092,6 +1262,7 @@ const char* IceInternal::PropertyNames::clPropNames[] =
"Ice",
"IceMX",
"IceDiscovery",
+ "IceGridDiscovery",
"IceBox",
"IceBoxAdmin",
"IceGridAdmin",
diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h
index 8637fb4f1cd..7f413070df8 100644
--- a/cpp/src/Ice/PropertyNames.h
+++ b/cpp/src/Ice/PropertyNames.h
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Jun 5 21:19:31 2014
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Jul 9 18:08:33 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -59,6 +59,7 @@ public:
static const PropertyArray IceProps;
static const PropertyArray IceMXProps;
static const PropertyArray IceDiscoveryProps;
+ static const PropertyArray IceGridDiscoveryProps;
static const PropertyArray IceBoxProps;
static const PropertyArray IceBoxAdminProps;
static const PropertyArray IceGridAdminProps;
diff --git a/cpp/src/IceDiscovery/LookupI.cpp b/cpp/src/IceDiscovery/LookupI.cpp
index 9dd9aa4ce2f..f8ea6d8c486 100644
--- a/cpp/src/IceDiscovery/LookupI.cpp
+++ b/cpp/src/IceDiscovery/LookupI.cpp
@@ -11,6 +11,7 @@
#include <Ice/ObjectAdapter.h>
#include <Ice/Communicator.h>
#include <Ice/LocalException.h>
+#include <Ice/Initialize.h>
#include <IceDiscovery/LookupI.h>
@@ -105,7 +106,7 @@ LookupI::LookupI(const LocatorRegistryIPtr& registry, const LookupPrx& lookup, c
_retryCount(properties->getPropertyAsIntWithDefault("IceDiscovery.RetryCount", 3)),
_latencyMultiplier(properties->getPropertyAsIntWithDefault("IceDiscovery.LatencyMultiplier", 1)),
_domainId(properties->getProperty("IceDiscovery.DomainId")),
- _timer(new IceUtil::Timer())
+ _timer(IceInternal::getInstanceTimer(lookup->ice_getCommunicator()))
{
}
diff --git a/cpp/src/IceDiscovery/PluginI.cpp b/cpp/src/IceDiscovery/PluginI.cpp
index 01846fb7eab..88c2bb91ba5 100644
--- a/cpp/src/IceDiscovery/PluginI.cpp
+++ b/cpp/src/IceDiscovery/PluginI.cpp
@@ -130,7 +130,7 @@ PluginI::initialize()
// Setup locator on the communicator.
//
Ice::ObjectPrx loc = _locatorAdapter->addWithUUID(new LocatorI(lookup, locatorRegistryPrx));
- _communicator->setDefaultLocator(Ice::LocatorPrx::uncheckedCast(_communicator->stringToProxy(loc->ice_toString())));
+ _communicator->setDefaultLocator(Ice::LocatorPrx::uncheckedCast(loc));
_multicastAdapter->activate();
_replyAdapter->activate();
diff --git a/cpp/src/IceDiscovery/PluginI.h b/cpp/src/IceDiscovery/PluginI.h
index 1517b982b37..a61659c3753 100644
--- a/cpp/src/IceDiscovery/PluginI.h
+++ b/cpp/src/IceDiscovery/PluginI.h
@@ -11,6 +11,7 @@
#define PLUGIN_I_H
#include <Ice/Plugin.h>
+#include <IceDiscovery/LookupI.h>
namespace IceDiscovery
{
diff --git a/cpp/src/IceGrid/Client.cpp b/cpp/src/IceGrid/Client.cpp
index ed91c31f728..191d5749a88 100644
--- a/cpp/src/IceGrid/Client.cpp
+++ b/cpp/src/IceGrid/Client.cpp
@@ -21,6 +21,7 @@
#include <IceGrid/FileParserI.h>
#include <IceGrid/Registry.h>
#include <IceGrid/Locator.h>
+#include <IceGrid/Discovery.h>
#include <Glacier2/Router.h>
#include <fstream>
@@ -63,6 +64,74 @@ public:
Init init;
+class LookupReplyI : public LookupReply, private IceUtil::Monitor<IceUtil::Mutex>
+{
+public:
+
+ virtual void
+ foundLocator(const IceGrid::LocatorPrx& locator, const Ice::Current&)
+ {
+ Lock sync(*this);
+ for(vector<IceGrid::LocatorPrx>::iterator p = _locators.begin(); p != _locators.end(); ++p)
+ {
+ if((*p)->ice_getIdentity() == locator->ice_getIdentity())
+ {
+ Ice::EndpointSeq newEndpoints = (*p)->ice_getEndpoints();
+ Ice::EndpointSeq endpts = locator->ice_getEndpoints();
+ for(Ice::EndpointSeq::const_iterator r = endpts.begin(); r != endpts.end(); ++r)
+ {
+ //
+ // Only add unknown endpoints
+ //
+ bool found = false;
+ for(Ice::EndpointSeq::const_iterator q = newEndpoints.begin(); q != newEndpoints.end(); ++q)
+ {
+ if(*r == *q)
+ {
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ {
+ newEndpoints.push_back(*r);
+ }
+ }
+ *p = (*p)->ice_endpoints(newEndpoints);
+ return;
+ }
+ }
+ _locators.push_back(locator);
+ notify();
+ }
+
+ vector<IceGrid::LocatorPrx>
+ getLocators()
+ {
+ Lock sync(*this);
+ return _locators;
+ }
+
+ bool
+ waitForLocator()
+ {
+ Lock sync(*this);
+ while(_locators.empty())
+ {
+ if(!timedWait(IceUtil::Time::milliSeconds(300)))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+private:
+
+ vector<IceGrid::LocatorPrx> _locators;
+};
+typedef IceUtil::Handle<LookupReplyI> LookupReplyIPtr;
+
}
class SessionKeepAliveThread : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex>
@@ -211,6 +280,9 @@ Client::usage()
"-e COMMANDS Execute COMMANDS.\n"
"-d, --debug Print debug messages.\n"
"-s, --server Start icegridadmin as a server (to parse XML files).\n"
+ "-i, --instanceName Connect to the registry with the given instance name.\n"
+ "-H, --host Connect to the registry at the given host.\n"
+ "-P, --port Connect to the registry running on the given port.\n"
"-u, --username Login with the given username.\n"
"-p, --password Login with the given password.\n"
"-S, --ssl Authenticate through SSL.\n"
@@ -229,6 +301,7 @@ Client::main(StringSeq& args)
_appName = args[0];
InitializationData id;
id.properties = createProperties(args);
+ id.properties->setProperty("Ice.Warn.Endpoints", "0");
_communicator = initialize(id);
{
@@ -332,6 +405,9 @@ Client::run(StringSeq& originalArgs)
opts.addOpt("h", "help");
opts.addOpt("v", "version");
opts.addOpt("e", "", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat);
+ opts.addOpt("i", "instanceName", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::NoRepeat);
+ opts.addOpt("H", "host", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::NoRepeat);
+ opts.addOpt("P", "port", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::NoRepeat);
opts.addOpt("u", "username", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::NoRepeat);
opts.addOpt("p", "password", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::NoRepeat);
opts.addOpt("S", "ssl");
@@ -407,6 +483,29 @@ Client::run(StringSeq& originalArgs)
password = opts.optArg("password");
}
+ string host = communicator()->getProperties()->getProperty("IceGridAdmin.Host");
+ if(!opts.optArg("host").empty())
+ {
+ host = opts.optArg("host");
+ }
+
+ string instanceName = communicator()->getProperties()->getProperty("IceGridAdmin.InstaceName");
+ if(!opts.optArg("instanceName").empty())
+ {
+ instanceName = opts.optArg("instanceName");
+ }
+
+ int port = communicator()->getProperties()->getPropertyAsInt("IceGridAdmin.Port");
+ if(!opts.optArg("port").empty())
+ {
+ istringstream is(opts.optArg("port"));
+ if(!(is >> port))
+ {
+ cerr << _appName << ": given port number is not a numeric value" << endl;
+ return EXIT_FAILURE;
+ }
+ }
+
PropertiesPtr properties = communicator()->getProperties();
string replica = properties->getProperty("IceGridAdmin.Replica");
if(!opts.optArg("replica").empty())
@@ -422,6 +521,141 @@ Client::run(StringSeq& originalArgs)
{
int sessionTimeout;
int acmTimeout = 0;
+ if(!communicator()->getDefaultLocator() && !communicator()->getDefaultRouter())
+ {
+ if(!host.empty())
+ {
+ const int timeout = 3000; // 3s connection timeout.
+ ostringstream os;
+ os << "IceGridDiscovery/Lookup" << (ssl ? " -s" : "");
+ os << ":tcp -h \"" << host << "\" -p " << (port == 0 ? 4061 : port) << " -t " << timeout;
+ os << ":ssl -h \"" << host << "\" -p " << (port == 0 ? 4063 : port) << " -t " << timeout;
+ LookupPrx lookup = LookupPrx::uncheckedCast(communicator()->stringToProxy(os.str()));
+ try
+ {
+ communicator()->setDefaultLocator(lookup->getLocator());
+ }
+ catch(const Ice::LocalException&)
+ {
+ // Ignore.
+ }
+ if(!instanceName.empty() &&
+ communicator()->getDefaultLocator()->ice_getIdentity().category != instanceName)
+ {
+ cerr << _appName << ": registry running on `" << host << "' uses a different instance name:\n";
+ cerr << communicator()->getDefaultLocator()->ice_getIdentity().category << endl;
+ return EXIT_FAILURE;
+ }
+ }
+ else
+ {
+ bool ipv4 = properties->getPropertyAsIntWithDefault("Ice.IPv4", 1) > 0;
+ string address;
+ if(ipv4)
+ {
+ address = properties->getPropertyWithDefault("IceGridAdmin.Discovery.Address", "239.255.0.1");
+ }
+ else
+ {
+ address = properties->getPropertyWithDefault("IceGridAdmin.Discovery.Address", "ff15::1");
+ }
+
+ string interface = properties->getProperty("IceGridAdmin.Discovery.Interface");
+
+ string lookupEndpoints = properties->getProperty("IceGridAdmin.Discovery.Lookup");
+ if(lookupEndpoints.empty())
+ {
+ ostringstream os;
+ os << "udp -h \"" << address << "\" -p " << (port == 0 ? 4061 : port);
+ if(!interface.empty())
+ {
+ os << " --interface \"" << interface << "\"";
+ }
+ lookupEndpoints = os.str();
+ }
+
+ ObjectPrx prx = communicator()->stringToProxy("IceGridDiscovery/Lookup -d:" + lookupEndpoints);
+ LookupPrx lookupPrx = LookupPrx::uncheckedCast(prx->ice_collocationOptimized(false));
+
+ if(properties->getProperty("IceGridAdmin.Discovery.Reply.Endpoints").empty())
+ {
+ ostringstream os;
+ os << "udp";
+ if(!interface.empty())
+ {
+ os << " -h \"" << interface << "\"";
+ }
+ properties->setProperty("IceGridAdmin.Discovery.Reply.Endpoints", os.str());
+ }
+
+ Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("IceGridAdmin.Discovery.Reply");
+ adapter->activate();
+ LookupReplyIPtr reply = new LookupReplyI();
+ LookupReplyPrx replyPrx = LookupReplyPrx::uncheckedCast(adapter->addWithUUID(reply)->ice_datagram());
+ int retryCount = 3; // Send several findLocator queries.
+ try
+ {
+ while(--retryCount >= 0)
+ {
+ lookupPrx->findLocator(instanceName, replyPrx);
+ if(instanceName.empty())
+ {
+ IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(300));
+ }
+ else if(reply->waitForLocator())
+ {
+ break;
+ }
+ }
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ cerr << _appName << ": registry discovery failed:\n" << ex << endl;
+ return EXIT_FAILURE;
+ }
+ adapter->destroy();
+
+ vector<IceGrid::LocatorPrx> locators = reply->getLocators();
+ if(locators.size() > 1)
+ {
+ cout << "found " << locators.size() << " IceGrid locators:" << endl;
+ unsigned int num = 0;
+ for(vector<IceGrid::LocatorPrx>::const_iterator p = locators.begin(); p != locators.end(); ++p)
+ {
+ cout << ++num << ": proxy = `" << *p << "'" <<endl;
+ }
+
+ num = 0;
+ while(num == 0 && cin.good())
+ {
+ cout << "please enter the locator number to use: " << flush;
+ string line;
+ getline(cin, line);
+ if(!cin.good() || line.empty())
+ {
+ return EXIT_FAILURE;
+ }
+ line = IceUtilInternal::trim(line);
+
+ istringstream is(line);
+ is >> num;
+ if(num > locators.size())
+ {
+ num = 0;
+ }
+ }
+
+ assert(num <= locators.size());
+ communicator()->setDefaultLocator(locators[num - 1]);
+ }
+ else if(locators.size() == 1)
+ {
+ cout << "using discovered locator:\nproxy = `" << locators[0] << "'" << endl;
+ communicator()->setDefaultLocator(locators[0]);
+ }
+ }
+ }
+
if(communicator()->getDefaultRouter())
{
try
@@ -476,11 +710,8 @@ Client::run(StringSeq& originalArgs)
}
session = AdminSessionPrx::uncheckedCast(router->createSession(id, password));
- // Zero the password string.
- for(string::iterator p = password.begin(); p != password.end(); ++p)
- {
- *p = '\0';
- }
+ fill(password.begin(), password.end(), '\0'); // Zero the password string.
+
if(!session)
{
cerr << _appName
@@ -631,11 +862,7 @@ Client::run(StringSeq& originalArgs)
}
session = registry->createAdminSession(id, password);
- // Zero the password string.
- for(string::iterator p = password.begin(); p != password.end(); ++p)
- {
- *p = '\0';
- }
+ fill(password.begin(), password.end(), '\0'); // Zero the password string.
}
sessionTimeout = registry->getSessionTimeout();
diff --git a/cpp/src/IceGrid/RegistryI.cpp b/cpp/src/IceGrid/RegistryI.cpp
index f8ed91cee64..0892fd5a1f8 100644
--- a/cpp/src/IceGrid/RegistryI.cpp
+++ b/cpp/src/IceGrid/RegistryI.cpp
@@ -21,7 +21,7 @@
#include <IceGrid/TraceLevels.h>
#include <IceGrid/Database.h>
#include <IceGrid/ReapThread.h>
-
+#include <IceGrid/Discovery.h>
#include <IceGrid/RegistryI.h>
#include <IceGrid/LocatorI.h>
#include <IceGrid/LocatorRegistryI.h>
@@ -139,11 +139,46 @@ private:
ObjectPtr _servant;
};
+class LookupI : public IceGrid::Lookup
+{
+public:
+
+ LookupI(const std::string& instanceName, const WellKnownObjectsManagerPtr& wellKnownObjects) :
+ _instanceName(instanceName), _wellKnownObjects(wellKnownObjects)
+ {
+ }
+
+ virtual void
+ findLocator(const string& instanceName, const LookupReplyPrx& reply, const Ice::Current&)
+ {
+ if(!instanceName.empty() && instanceName != _instanceName)
+ {
+ return; // Ignore.
+ }
+
+ if(reply)
+ {
+ reply->begin_foundLocator(_wellKnownObjects->getLocator());
+ }
+ }
+
+ virtual IceGrid::LocatorPrx
+ getLocator(const Ice::Current&)
+ {
+ return _wellKnownObjects->getLocator();
+ }
+
+private:
+
+ const string _instanceName;
+ const WellKnownObjectsManagerPtr _wellKnownObjects;
+};
+
}
-RegistryI::RegistryI(const CommunicatorPtr& communicator,
- const TraceLevelsPtr& traceLevels,
- bool nowarn,
+RegistryI::RegistryI(const CommunicatorPtr& communicator,
+ const TraceLevelsPtr& traceLevels,
+ bool nowarn,
bool readonly,
const string& initFromReplica) :
_communicator(communicator),
@@ -550,10 +585,68 @@ RegistryI::startImpl()
}
//
+ // Setup the lookup servant and add it to the client adapter.
+ //
+ Ice::Identity id = _communicator->stringToIdentity("IceGridDiscovery/Lookup");
+ Ice::ObjectPtr lookup = new LookupI(_instanceName, _wellKnownObjects);
+ _clientAdapter->add(lookup, id);
+
+ //
+ // Setup the discovery object adapter and also add it the lookup
+ // servant to receive multicast lookup queries.
+ //
+ Ice::ObjectAdapterPtr discoveryAdapter;
+ if(properties->getPropertyAsIntWithDefault("IceGrid.Registry.Discovery.Enabled", 1) > 0)
+ {
+ bool ipv4 = properties->getPropertyAsIntWithDefault("Ice.IPv4", 1) > 0;
+ string address;
+ if(ipv4)
+ {
+ address = properties->getPropertyWithDefault("IceGrid.Registry.Discovery.Address", "239.255.0.1");
+ }
+ else
+ {
+ address = properties->getPropertyWithDefault("IceGrid.Registry.Discovery.Address", "ff15::1");
+ }
+ int port = properties->getPropertyAsIntWithDefault("IceGrid.Registry.Discovery.Port", 4061);
+ string interface = properties->getProperty("IceGrid.Registry.Discovery.Interface");
+ if(properties->getProperty("IceGrid.Registry.Discovery.Endpoints").empty())
+ {
+ ostringstream os;
+ os << "udp -h \"" << address << "\" -p " << port;
+ if(!interface.empty())
+ {
+ os << " --interface \"" << interface << "\"";
+ }
+ properties->setProperty("IceGrid.Registry.Discovery.Endpoints", os.str());
+ }
+
+ try
+ {
+ discoveryAdapter = _communicator->createObjectAdapter("IceGrid.Registry.Discovery");
+ discoveryAdapter->add(lookup, id);
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ if(!_nowarn)
+ {
+ Warning out(_communicator->getLogger());
+ out << "failed to join the multicast group for IceGrid discovery:\n";
+ out << "endpoints = " << properties->getProperty("IceGrid.Registry.Discovery.Endpoints") << "\n";
+ out << ex;
+ }
+ }
+ }
+
+ //
// We are ready to go!
//
_serverAdapter->activate();
_clientAdapter->activate();
+ if(discoveryAdapter)
+ {
+ discoveryAdapter->activate();
+ }
if(sessionAdpt)
{
diff --git a/cpp/src/IceGrid/WellKnownObjectsManager.cpp b/cpp/src/IceGrid/WellKnownObjectsManager.cpp
index 44b57c5e0be..596f43644bb 100644
--- a/cpp/src/IceGrid/WellKnownObjectsManager.cpp
+++ b/cpp/src/IceGrid/WellKnownObjectsManager.cpp
@@ -120,3 +120,14 @@ WellKnownObjectsManager::getEndpoints(const string& name)
Lock sync(*this);
return _endpoints[name];
}
+
+LocatorPrx
+WellKnownObjectsManager::getLocator()
+{
+ Lock sync(*this);
+ Ice::Identity id;
+ id.name = "Locator";
+ id.category = _database->getInstanceName();
+ Ice::ObjectPrx prx = _database->getReplicaCache().getEndpoints("Client", _endpoints["Client"]);
+ return LocatorPrx::uncheckedCast(prx->ice_identity(id));
+}
diff --git a/cpp/src/IceGrid/WellKnownObjectsManager.h b/cpp/src/IceGrid/WellKnownObjectsManager.h
index a879b824bf0..f6ee5a35112 100644
--- a/cpp/src/IceGrid/WellKnownObjectsManager.h
+++ b/cpp/src/IceGrid/WellKnownObjectsManager.h
@@ -11,6 +11,7 @@
#define ICE_GRID_WELL_KNOWN_OBJECTS_MANAGER_H
#include <IceGrid/Internal.h>
+#include <IceGrid/Locator.h>
namespace IceGrid
{
@@ -34,6 +35,8 @@ public:
Ice::ObjectPrx getEndpoints(const std::string&);
+ LocatorPrx getLocator();
+
private:
bool initialized() const;
diff --git a/cpp/src/IceGridLib/.depend b/cpp/src/IceGridLib/.depend
index c3d18ed4c90..aa301a75467 100644
--- a/cpp/src/IceGridLib/.depend
+++ b/cpp/src/IceGridLib/.depend
@@ -1,16 +1,19 @@
Admin$(OBJEXT): Admin.cpp $(includedir)/IceGrid/Admin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/DisableWarnings.h
Locator$(OBJEXT): Locator.cpp $(includedir)/IceGrid/Locator.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
+Discovery$(OBJEXT): Discovery.cpp $(includedir)/IceGrid/Discovery.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceGrid/Locator.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
Query$(OBJEXT): Query.cpp $(includedir)/IceGrid/Query.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
Exception$(OBJEXT): Exception.cpp $(includedir)/IceGrid/Exception.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/Identity.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Version.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
Descriptor$(OBJEXT): Descriptor.cpp $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
+DiscoveryPluginI$(OBJEXT): DiscoveryPluginI.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/StringConverter.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/IceUtil/IconvStringConverter.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Config.h $(includedir)/Ice/DeprecatedStringConverter.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/GCObject.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/NativePropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h ../IceGridLib/DiscoveryPluginI.h $(includedir)/IceGrid/Discovery.h $(includedir)/IceGrid/Locator.h
FileParser$(OBJEXT): FileParser.cpp $(includedir)/IceGrid/FileParser.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/DisableWarnings.h
Observer$(OBJEXT): Observer.cpp $(includedir)/IceGrid/Observer.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/DisableWarnings.h
Session$(OBJEXT): Session.cpp $(includedir)/IceGrid/Session.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
Registry$(OBJEXT): Registry.cpp $(includedir)/IceGrid/Registry.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/DisableWarnings.h
UserAccountMapper$(OBJEXT): UserAccountMapper.cpp $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h
PluginFacade$(OBJEXT): PluginFacade.cpp $(includedir)/IceGrid/PluginFacade.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/DisableWarnings.h
-PluginFacadeI$(OBJEXT): PluginFacadeI.cpp $(includedir)/IceGrid/IceGrid.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/FileParser.h $(includedir)/IceGrid/Locator.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/IceGrid/PluginFacade.h
+PluginFacadeI$(OBJEXT): PluginFacadeI.cpp $(includedir)/IceGrid/IceGrid.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/IceUtil/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/IceUtil/StringConverter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/GCObject.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/ResponseHandlerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/DefaultObjectFactory.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/FileParser.h $(includedir)/IceGrid/Locator.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/IceGrid/PluginFacade.h $(includedir)/IceGrid/Discovery.h
$(HDIR)/Admin.h Admin.cpp: $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/PropertiesAdmin.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(SLICE2CPP) $(SLICEPARSERLIB)
+$(HDIR)/Discovery.h Discovery.cpp: $(slicedir)/IceGrid/Discovery.ice $(slicedir)/IceGrid/Locator.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/ProcessF.ice $(SLICE2CPP) $(SLICEPARSERLIB)
$(HDIR)/Exception.h Exception.cpp: $(slicedir)/IceGrid/Exception.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(SLICE2CPP) $(SLICEPARSERLIB)
$(HDIR)/FileParser.h FileParser.cpp: $(slicedir)/IceGrid/FileParser.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/PropertiesAdmin.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(SLICE2CPP) $(SLICEPARSERLIB)
$(HDIR)/Locator.h Locator.cpp: $(slicedir)/IceGrid/Locator.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/ProcessF.ice $(SLICE2CPP) $(SLICEPARSERLIB)
diff --git a/cpp/src/IceGridLib/.depend.mak b/cpp/src/IceGridLib/.depend.mak
index 5054303a94a..9070a5b316b 100644
--- a/cpp/src/IceGridLib/.depend.mak
+++ b/cpp/src/IceGridLib/.depend.mak
@@ -1,16 +1,19 @@
Admin$(OBJEXT): Admin.cpp "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/IceUtil/DisableWarnings.h"
Locator$(OBJEXT): Locator.cpp "$(includedir)/IceGrid/Locator.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
+Discovery$(OBJEXT): Discovery.cpp "$(includedir)/IceGrid/Discovery.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/IceGrid/Locator.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
Query$(OBJEXT): Query.cpp "$(includedir)/IceGrid/Query.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
Exception$(OBJEXT): Exception.cpp "$(includedir)/IceGrid/Exception.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
Descriptor$(OBJEXT): Descriptor.cpp "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
+DiscoveryPluginI$(OBJEXT): DiscoveryPluginI.cpp "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/UUID.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/IceUtil/IconvStringConverter.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/Ice.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/DeprecatedStringConverter.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Logger.h" "$(includedir)/Ice/LoggerUtil.h" "$(includedir)/Ice/Communicator.h" "$(includedir)/Ice/RouterF.h" "$(includedir)/Ice/LocatorF.h" "$(includedir)/Ice/PluginF.h" "$(includedir)/Ice/ImplicitContextF.h" "$(includedir)/Ice/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/NativePropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" ../IceGridLib/DiscoveryPluginI.h "$(includedir)/IceGrid/Discovery.h" "$(includedir)/IceGrid/Locator.h"
FileParser$(OBJEXT): FileParser.cpp "$(includedir)/IceGrid/FileParser.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/IceUtil/DisableWarnings.h"
Observer$(OBJEXT): Observer.cpp "$(includedir)/IceGrid/Observer.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/IceUtil/DisableWarnings.h"
Session$(OBJEXT): Session.cpp "$(includedir)/IceGrid/Session.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
Registry$(OBJEXT): Registry.cpp "$(includedir)/IceGrid/Registry.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceGrid/Session.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/IceUtil/DisableWarnings.h"
UserAccountMapper$(OBJEXT): UserAccountMapper.cpp "$(includedir)/IceGrid/UserAccountMapper.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/IceUtil/DisableWarnings.h"
PluginFacade$(OBJEXT): PluginFacade.cpp "$(includedir)/IceGrid/PluginFacade.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/SliceChecksums.h" "$(includedir)/IceUtil/DisableWarnings.h"
-PluginFacadeI$(OBJEXT): PluginFacadeI.cpp "$(includedir)/IceGrid/IceGrid.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/IceGrid/FileParser.h" "$(includedir)/IceGrid/Locator.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/IceGrid/Observer.h" "$(includedir)/IceGrid/Query.h" "$(includedir)/IceGrid/Registry.h" "$(includedir)/IceGrid/Session.h" "$(includedir)/IceGrid/UserAccountMapper.h" "$(includedir)/IceGrid/PluginFacade.h"
+PluginFacadeI$(OBJEXT): PluginFacadeI.cpp "$(includedir)/IceGrid/IceGrid.h" "$(includedir)/IceGrid/Admin.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/IceUtil/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/IceUtil/StringConverter.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/ObjectFactoryManagerF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/GCObject.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/ResponseHandlerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/DefaultObjectFactory.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/SliceChecksumDict.h" "$(includedir)/Glacier2/Session.h" "$(includedir)/Glacier2/SSLInfo.h" "$(includedir)/IceGrid/Exception.h" "$(includedir)/IceGrid/Descriptor.h" "$(includedir)/IceGrid/FileParser.h" "$(includedir)/IceGrid/Locator.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/IceGrid/Observer.h" "$(includedir)/IceGrid/Query.h" "$(includedir)/IceGrid/Registry.h" "$(includedir)/IceGrid/Session.h" "$(includedir)/IceGrid/UserAccountMapper.h" "$(includedir)/IceGrid/PluginFacade.h" "$(includedir)/IceGrid/Discovery.h"
$(HDIR)\Admin.h Admin.cpp: "$(slicedir)/IceGrid/Admin.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/Properties.ice" "$(slicedir)/Ice/PropertiesAdmin.ice" "$(slicedir)/Ice/SliceChecksumDict.ice" "$(slicedir)/Glacier2/Session.ice" "$(slicedir)/Glacier2/SSLInfo.ice" "$(slicedir)/IceGrid/Exception.ice" "$(slicedir)/IceGrid/Descriptor.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
+$(HDIR)\Discovery.h Discovery.cpp: "$(slicedir)/IceGrid/Discovery.ice" "$(slicedir)/IceGrid/Locator.ice" "$(slicedir)/Ice/Locator.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/ProcessF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
$(HDIR)\Exception.h Exception.cpp: "$(slicedir)/IceGrid/Exception.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
$(HDIR)\FileParser.h FileParser.cpp: "$(slicedir)/IceGrid/FileParser.ice" "$(slicedir)/IceGrid/Admin.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/BuiltinSequences.ice" "$(slicedir)/Ice/Properties.ice" "$(slicedir)/Ice/PropertiesAdmin.ice" "$(slicedir)/Ice/SliceChecksumDict.ice" "$(slicedir)/Glacier2/Session.ice" "$(slicedir)/Glacier2/SSLInfo.ice" "$(slicedir)/IceGrid/Exception.ice" "$(slicedir)/IceGrid/Descriptor.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
$(HDIR)\Locator.h Locator.cpp: "$(slicedir)/IceGrid/Locator.ice" "$(slicedir)/Ice/Locator.ice" "$(slicedir)/Ice/Identity.ice" "$(slicedir)/Ice/ProcessF.ice" "$(SLICE2CPP)" "$(SLICEPARSERLIB)"
diff --git a/cpp/src/IceGridLib/.gitignore b/cpp/src/IceGridLib/.gitignore
index 348d382bf7c..2160a338b11 100644
--- a/cpp/src/IceGridLib/.gitignore
+++ b/cpp/src/IceGridLib/.gitignore
@@ -2,6 +2,7 @@
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
Admin.cpp
+Discovery.cpp
Exception.cpp
FileParser.cpp
Locator.cpp
diff --git a/cpp/src/IceGridLib/DiscoveryPluginI.cpp b/cpp/src/IceGridLib/DiscoveryPluginI.cpp
new file mode 100644
index 00000000000..0e0981b7cd7
--- /dev/null
+++ b/cpp/src/IceGridLib/DiscoveryPluginI.cpp
@@ -0,0 +1,472 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef ICE_GRID_API_EXPORTS
+# define ICE_GRID_API_EXPORTS
+#endif
+
+#include <IceUtil/IceUtil.h>
+#include <Ice/Ice.h>
+
+#include <IceGridLib/DiscoveryPluginI.h>
+#include <IceGrid/Discovery.h>
+
+using namespace std;
+using namespace IceGrid;
+
+namespace
+{
+
+class LocatorI; // Forward declaration
+
+class Request : public IceUtil::Shared
+{
+public:
+
+ Request(LocatorI* locator) : _locator(locator)
+ {
+ }
+
+ virtual void invoke(const Ice::LocatorPrx&) = 0;
+ virtual void response(const Ice::ObjectPrx&) = 0;
+
+protected:
+
+ LocatorI* _locator;
+ Ice::LocatorPrx _locatorPrx;
+};
+typedef IceUtil::Handle<Request> RequestPtr;
+
+class LocatorI : public Ice::Locator, private IceUtil::TimerTask, private IceUtil::Monitor<IceUtil::Mutex>
+{
+public:
+
+ LocatorI(const LookupPrx&, const Ice::PropertiesPtr&);
+ void setLookupReply(const LookupReplyPrx&);
+
+ virtual void findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr&, const Ice::Identity&,
+ const Ice::Current&) const;
+
+ virtual void findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr&, const string&,
+ const Ice::Current&) const;
+
+ virtual Ice::LocatorRegistryPrx getRegistry(const Ice::Current&) const;
+
+ void foundLocator(const LocatorPrx&);
+ void invoke(const Ice::LocatorPrx&, const RequestPtr&);
+
+private:
+
+ virtual void runTimerTask();
+ void queueRequest(const RequestPtr&);
+
+ const LookupPrx _lookup;
+ const IceUtil::Time _timeout;
+ const int _retryCount;
+ const IceUtil::TimerPtr _timer;
+
+ string _instanceName;
+ bool _warned;
+ LookupReplyPrx _lookupReply;
+ Ice::LocatorPrx _locator;
+
+ int _pendingRetryCount;
+ vector<RequestPtr> _pendingRequests;
+};
+typedef IceUtil::Handle<LocatorI> LocatorIPtr;
+
+class LookupReplyI : public LookupReply
+{
+public:
+
+ LookupReplyI(const LocatorIPtr& locator) : _locator(locator)
+ {
+ }
+
+ virtual void foundLocator(const LocatorPrx&, const Ice::Current&);
+
+private:
+
+ const LocatorIPtr _locator;
+};
+
+class ObjectRequest : public Request
+{
+public:
+
+ ObjectRequest(LocatorI* locator, const Ice::Identity& id, const Ice::AMD_Locator_findObjectByIdPtr& amdCB) :
+ Request(locator), _id(id), _amdCB(amdCB)
+ {
+ }
+
+ virtual void invoke(const Ice::LocatorPrx&);
+ virtual void response(const Ice::ObjectPrx&);
+
+ void
+ exception(const Ice::Exception&)
+ {
+ _locator->invoke(_locatorPrx, this); // Retry with new locator proxy
+ }
+
+private:
+
+ const Ice::Identity _id;
+ Ice::AMD_Locator_findObjectByIdPtr _amdCB;
+};
+
+class AdapterRequest : public Request
+{
+public:
+
+ AdapterRequest(LocatorI* locator, const string& adapterId, const Ice::AMD_Locator_findAdapterByIdPtr& amdCB) :
+ Request(locator), _adapterId(adapterId), _amdCB(amdCB)
+ {
+ }
+
+ virtual void invoke(const Ice::LocatorPrx&);
+ virtual void response(const Ice::ObjectPrx&);
+
+ void
+ exception(const Ice::Exception&)
+ {
+ _locator->invoke(_locatorPrx, this); // Retry with new locator proxy.
+ }
+
+private:
+
+ const string _adapterId;
+ const Ice::AMD_Locator_findAdapterByIdPtr _amdCB;
+};
+
+}
+
+//
+// Plugin factory function.
+//
+extern "C"
+{
+
+ICE_DECLSPEC_EXPORT Ice::Plugin*
+createIceGridDiscovery(const Ice::CommunicatorPtr& communicator, const string&, const Ice::StringSeq&)
+{
+ return new DiscoveryPluginI(communicator);
+}
+
+}
+
+DiscoveryPluginI::DiscoveryPluginI(const Ice::CommunicatorPtr& communicator) : _communicator(communicator)
+{
+}
+
+void
+DiscoveryPluginI::initialize()
+{
+ Ice::PropertiesPtr properties = _communicator->getProperties();
+
+ bool ipv4 = properties->getPropertyAsIntWithDefault("Ice.IPv4", 1) > 0;
+ string address;
+ if(ipv4)
+ {
+ address = properties->getPropertyWithDefault("IceGridDiscovery.Address", "239.255.0.1");
+ }
+ else
+ {
+ address = properties->getPropertyWithDefault("IceGridDiscovery.Address", "ff15::1");
+ }
+ int port = properties->getPropertyAsIntWithDefault("IceGridDiscovery.Port", 4061);
+ string intf = properties->getProperty("IceGridDiscovery.Interface");
+
+ if(properties->getProperty("IceGridDiscovery.Reply.Endpoints").empty())
+ {
+ ostringstream os;
+ os << "udp";
+ if(!intf.empty())
+ {
+ os << " -h \"" << intf << "\"";
+ }
+ properties->setProperty("IceGridDiscovery.Reply.Endpoints", os.str());
+ }
+ if(properties->getProperty("IceGridDiscovery.Locator.Endpoints").empty())
+ {
+ properties->setProperty("IceGridDiscovery.Locator.AdapterId", IceUtil::generateUUID()); // Collocated adapter
+ }
+
+ _replyAdapter = _communicator->createObjectAdapter("IceGridDiscovery.Reply");
+ _locatorAdapter = _communicator->createObjectAdapter("IceGridDiscovery.Locator");
+
+ // We don't want those adapters to be registered with the locator so clear their locator.
+ _replyAdapter->setLocator(0);
+ _locatorAdapter->setLocator(0);
+
+ string lookupEndpoints = properties->getProperty("IceGridDiscovery.Lookup");
+ if(lookupEndpoints.empty())
+ {
+ ostringstream os;
+ os << "udp -h \"" << address << "\" -p " << port;
+ if(!intf.empty())
+ {
+ os << " --interface \"" << intf << "\"";
+ }
+ lookupEndpoints = os.str();
+ }
+
+ Ice::ObjectPrx lookupPrx = _communicator->stringToProxy("IceGridDiscovery/Lookup -d:" + lookupEndpoints);
+ lookupPrx = lookupPrx->ice_collocationOptimized(false); // No collocation optimization for the multicast proxy!
+ try
+ {
+ lookupPrx->ice_getConnection(); // Ensure we can establish a connection to the multicast proxy
+ }
+ catch(const Ice::LocalException& ex)
+ {
+ ostringstream os;
+ os << "unable to establish multicast connection, IceGrid discovery will be disabled:\n";
+ os << "proxy = " << lookupPrx << '\n';
+ os << ex;
+ throw Ice::PluginInitializationException(__FILE__, __LINE__, os.str());
+ }
+
+ LocatorIPtr locator = new LocatorI(LookupPrx::uncheckedCast(lookupPrx), properties);
+ _communicator->setDefaultLocator(Ice::LocatorPrx::uncheckedCast(_locatorAdapter->addWithUUID(locator)));
+
+ Ice::ObjectPrx lookupReply = _replyAdapter->addWithUUID(new LookupReplyI(locator))->ice_datagram();
+ locator->setLookupReply(LookupReplyPrx::uncheckedCast(lookupReply));
+
+ _replyAdapter->activate();
+ _locatorAdapter->activate();
+}
+
+void
+DiscoveryPluginI::destroy()
+{
+ _replyAdapter->destroy();
+ _locatorAdapter->destroy();
+}
+
+void
+AdapterRequest::invoke(const Ice::LocatorPrx& l)
+{
+ _locatorPrx = l;
+ l->begin_findAdapterById(_adapterId, Ice::newCallback_Locator_findAdapterById(this,
+ &AdapterRequest::response,
+ &AdapterRequest::exception));
+}
+
+void
+AdapterRequest::response(const Ice::ObjectPrx& prx)
+{
+ _amdCB->ice_response(prx);
+}
+
+void
+ObjectRequest::invoke(const Ice::LocatorPrx& l)
+{
+ _locatorPrx = l;
+ l->begin_findObjectById(_id, Ice::newCallback_Locator_findObjectById(this,
+ &ObjectRequest::response,
+ &ObjectRequest::exception));
+}
+
+void
+ObjectRequest::response(const Ice::ObjectPrx& prx)
+{
+ _amdCB->ice_response(prx);
+}
+
+LocatorI::LocatorI(const LookupPrx& lookup, const Ice::PropertiesPtr& properties) :
+ _lookup(lookup),
+ _timeout(IceUtil::Time::milliSeconds(properties->getPropertyAsIntWithDefault("IceGridDiscovery.Timeout", 300))),
+ _retryCount(properties->getPropertyAsIntWithDefault("IceGridDiscovery.RetryCount", 3)),
+ _timer(IceInternal::getInstanceTimer(lookup->ice_getCommunicator())),
+ _instanceName(properties->getProperty("IceGridDiscovery.InstanceName")),
+ _warned(false),
+ _locator(lookup->ice_getCommunicator()->getDefaultLocator()),
+ _pendingRetryCount(0)
+{
+}
+
+void
+LocatorI::setLookupReply(const LookupReplyPrx& lookupReply)
+{
+ _lookupReply = lookupReply;
+}
+
+void
+LocatorI::findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& amdCB,
+ const Ice::Identity& id,
+ const Ice::Current&) const
+{
+ const_cast<LocatorI*>(this)->invoke(0, new ObjectRequest(const_cast<LocatorI*>(this), id, amdCB));
+}
+
+void
+LocatorI::findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& amdCB,
+ const string& adapterId,
+ const Ice::Current&) const
+{
+ const_cast<LocatorI*>(this)->invoke(0, new AdapterRequest(const_cast<LocatorI*>(this), adapterId, amdCB));
+}
+
+Ice::LocatorRegistryPrx
+LocatorI::getRegistry(const Ice::Current&) const
+{
+ Ice::LocatorPrx locator;
+ {
+ Lock sync(*this);
+ if(!_locator)
+ {
+ const_cast<LocatorI*>(this)->queueRequest(0); // Search for locator if not already doing so.
+ while(_pendingRetryCount > 0)
+ {
+ wait();
+ }
+ }
+ locator = _locator;
+ }
+ return locator ? locator->getRegistry() : Ice::LocatorRegistryPrx();
+}
+
+void
+LocatorI::foundLocator(const LocatorPrx& locator)
+{
+ Lock sync(*this);
+ if(!locator)
+ {
+ return;
+ }
+
+ //
+ // If we already have a locator assigned, ensure the given locator
+ // has the same identity, otherwise ignore it.
+ //
+ if(_locator && locator->ice_getIdentity().category != _locator->ice_getIdentity().category)
+ {
+ _warned = true; // Only warn once.
+
+ Ice::Warning out(locator->ice_getCommunicator()->getLogger());
+ out << "received IceGrid locator with different instance name:\n";
+ out << "using = `" << _locator->ice_getIdentity().category << "'\n";
+ out << "received = `" << locator->ice_getIdentity().category << "'\n";
+ out << "This is typically the case if multiple IceGrid registries with different ";
+ out << "instance names are deployed and the property `IceGridDiscovery.InstanceName' ";
+ out << "is not set.";
+ return;
+ }
+
+ if(_pendingRetryCount > 0) // No need to retry, we found a locator.
+ {
+ _timer->cancel(this);
+ _pendingRetryCount = 0;
+ }
+
+ if(_locator)
+ {
+ //
+ // We found another locator replica, append its endpoints to the
+ // current locator proxy endpoints.
+ //
+ Ice::EndpointSeq newEndpoints = _locator->ice_getEndpoints();
+ Ice::EndpointSeq endpts = locator->ice_getEndpoints();
+ for(Ice::EndpointSeq::const_iterator p = endpts.begin(); p != endpts.end(); ++p)
+ {
+ //
+ // Only add endpoints if not already in the locator proxy endpoints
+ //
+ bool found = false;
+ for(Ice::EndpointSeq::const_iterator q = newEndpoints.begin(); q != newEndpoints.end(); ++q)
+ {
+ if(*p == *q)
+ {
+ found = true;
+ break;
+ }
+ }
+ if(!found)
+ {
+ newEndpoints.push_back(*p);
+ }
+ }
+ _locator = _locator->ice_endpoints(newEndpoints);
+ }
+ else
+ {
+ _locator = locator;
+ if(_instanceName.empty())
+ {
+ _instanceName = _locator->ice_getIdentity().category;
+ }
+ }
+
+ //
+ // Send pending requests if any.
+ //
+ for(vector<RequestPtr>::const_iterator p = _pendingRequests.begin(); p != _pendingRequests.end(); ++p)
+ {
+ (*p)->invoke(_locator);
+ }
+ _pendingRequests.clear();
+ notifyAll();
+}
+
+void
+LocatorI::invoke(const Ice::LocatorPrx& locator, const RequestPtr& request)
+{
+ Lock sync(*this);
+ if(_locator && _locator != locator)
+ {
+ request->invoke(_locator);
+ }
+ else
+ {
+ _locator = 0;
+ queueRequest(request);
+ }
+}
+
+void
+LocatorI::runTimerTask()
+{
+ Lock sync(*this);
+ if(--_pendingRetryCount > 0)
+ {
+ _lookup->begin_findLocator(_instanceName, _lookupReply); // Send multicast request.
+ _timer->schedule(this, _timeout);
+ }
+ else
+ {
+ assert(!_pendingRequests.empty());
+ for(vector<RequestPtr>::const_iterator p = _pendingRequests.begin(); p != _pendingRequests.end(); ++p)
+ {
+ (*p)->response(0);
+ }
+ _pendingRequests.clear();
+ notifyAll();
+ }
+}
+
+void
+LocatorI::queueRequest(const RequestPtr& request)
+{
+ if(request)
+ {
+ _pendingRequests.push_back(request);
+ }
+
+ if(_pendingRetryCount == 0) // No request in progress
+ {
+ _pendingRetryCount = _retryCount;
+ _lookup->begin_findLocator(_instanceName, _lookupReply); // Send multicast request.
+ _timer->schedule(this, _timeout);
+ }
+}
+
+void
+LookupReplyI::foundLocator(const LocatorPrx& locator, const Ice::Current&)
+{
+ _locator->foundLocator(locator);
+}
diff --git a/cpp/src/IceGridLib/DiscoveryPluginI.h b/cpp/src/IceGridLib/DiscoveryPluginI.h
new file mode 100644
index 00000000000..d63f327e858
--- /dev/null
+++ b/cpp/src/IceGridLib/DiscoveryPluginI.h
@@ -0,0 +1,36 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef PLUGIN_I_H
+#define PLUGIN_I_H
+
+#include <Ice/Plugin.h>
+
+namespace IceGrid
+{
+
+class DiscoveryPluginI : public Ice::Plugin
+{
+public:
+
+ DiscoveryPluginI(const Ice::CommunicatorPtr&);
+
+ virtual void initialize();
+ virtual void destroy();
+
+private:
+
+ const Ice::CommunicatorPtr _communicator;
+ Ice::ObjectAdapterPtr _locatorAdapter;
+ Ice::ObjectAdapterPtr _replyAdapter;
+};
+
+};
+
+#endif
diff --git a/cpp/src/IceGridLib/Makefile b/cpp/src/IceGridLib/Makefile
index 595c07f1716..888c193070d 100644
--- a/cpp/src/IceGridLib/Makefile
+++ b/cpp/src/IceGridLib/Makefile
@@ -18,20 +18,23 @@ TARGETS = $(LIBTARGETS) $(NODE_SERVER) $(REGISTRY_SERVER) $(ADMIN)
LIB_OBJS = Admin.o \
Locator.o \
+ Discovery.o \
Query.o \
Exception.o \
Descriptor.o \
+ DiscoveryPluginI.o \
FileParser.o \
Observer.o \
Session.o \
Registry.o \
UserAccountMapper.o \
PluginFacade.o \
- PluginFacadeI.o
+ PluginFacadeI.o \
SRCS = $(LIB_OBJS:.o=.cpp)
SLICE_SRCS = $(SDIR)/Admin.ice \
+ $(SDIR)/Discovery.ice \
$(SDIR)/Exception.ice \
$(SDIR)/FileParser.ice \
$(SDIR)/Locator.ice \
diff --git a/cpp/src/IceGridLib/Makefile.mak b/cpp/src/IceGridLib/Makefile.mak
index 2bb91183f03..fe0f73e1635 100644
--- a/cpp/src/IceGridLib/Makefile.mak
+++ b/cpp/src/IceGridLib/Makefile.mak
@@ -16,9 +16,11 @@ TARGETS = $(LIBNAME) $(DLLNAME)
LIB_OBJS = Admin.obj \
Locator.obj \
+ Discovery.obj \
Query.obj \
Exception.obj \
Descriptor.obj \
+ DiscoveryPluginI.obj \
FileParser.obj \
Observer.obj \
Session.obj \
@@ -58,6 +60,7 @@ clean::
-del /q FileParser.cpp $(HDIR)\FileParser.h
-del /q Admin.cpp $(HDIR)\Admin.h
-del /q Descriptor.cpp $(HDIR)\Descriptor.h
+ -del /q Discovery.cpp $(HDIR)\Discovery.h
-del /q Exception.cpp $(HDIR)\Exception.h
-del /q Locator.cpp $(HDIR)\Locator.h
-del /q Observer.cpp $(HDIR)\Observer.h
diff --git a/cpp/test/IceDiscovery/simple/run.py b/cpp/test/IceDiscovery/simple/run.py
index 064953914b1..11098aeba3c 100755
--- a/cpp/test/IceDiscovery/simple/run.py
+++ b/cpp/test/IceDiscovery/simple/run.py
@@ -28,14 +28,7 @@ num = 3
args = " --Ice.Plugin.IceDiscovery=IceDiscovery:createIceDiscovery"
args += " --IceDiscovery.Timeout=30"
args += " --IceDiscovery.RetryCount=1"
-if TestUtil.ipv6:
- #
- # Don't set the interface for the multicast datagrams, this doesn't
- # work with some Linux distributions (CentOS 6.x)
- #
- #args += " --IceDiscovery.Address=\"ff15::1:1\" --IceDiscovery.Interface=\"::1\""
- args += " --IceDiscovery.Address=\"ff15::1:1\""
-else:
+if not TestUtil.ipv6:
args += " --IceDiscovery.Interface=127.0.0.1"
serverProc = []
diff --git a/cpp/test/IceGrid/activation/AllTests.cpp b/cpp/test/IceGrid/activation/AllTests.cpp
index 1c594e3e7dc..facef446337 100644
--- a/cpp/test/IceGrid/activation/AllTests.cpp
+++ b/cpp/test/IceGrid/activation/AllTests.cpp
@@ -8,8 +8,7 @@
// **********************************************************************
#include <Ice/Ice.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
+#include <IceGrid/IceGrid.h>
#include <IceUtil/Thread.h>
#include <TestCommon.h>
#include <Test.h>
@@ -90,7 +89,8 @@ typedef IceUtil::Handle<PingThread> PingThreadPtr;
void
allTests(const Ice::CommunicatorPtr& communicator)
{
- IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(communicator->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
IceGrid::AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cpp/test/IceGrid/admin/run.py b/cpp/test/IceGrid/admin/run.py
index 868b9aaa058..33ce1c5c529 100755
--- a/cpp/test/IceGrid/admin/run.py
+++ b/cpp/test/IceGrid/admin/run.py
@@ -43,11 +43,11 @@ sys.stdout.flush()
args = ' --Glacier2.SessionTimeout=5' + \
' --Glacier2.Client.Endpoints="default -p 12347"' + \
' --Glacier2.Server.Endpoints="tcp -h 127.0.0.1"' \
- ' --Glacier2.SessionManager=IceGrid/AdminSessionManager' + \
+ ' --Glacier2.SessionManager=TestIceGrid/AdminSessionManager' + \
' --Glacier2.PermissionsVerifier=Glacier2/NullPermissionsVerifier' + \
- ' --Glacier2.SSLSessionManager=IceGrid/AdminSSLSessionManager' + \
+ ' --Glacier2.SSLSessionManager=TestIceGrid/AdminSSLSessionManager' + \
' --Glacier2.SSLPermissionsVerifier=Glacier2/NullSSLPermissionsVerifier' + \
- ' --Ice.Default.Locator="IceGrid/Locator:default -p 12010"' + \
+ ' --Ice.Default.Locator="TestIceGrid/Locator:default -p 12010"' + \
' --IceSSL.VerifyPeer=1'
routerProc = TestUtil.startServer(router, args, count=2)
print("ok")
@@ -57,7 +57,7 @@ sys.stdout.flush()
# Direct registry connection with username/password
icegridadmin = TestUtil.getIceGridAdmin()
-args = ' --Ice.Default.Locator="IceGrid/Locator:default -p 12010"' + \
+args = ' --Ice.Default.Locator="TestIceGrid/Locator:default -p 12010"' + \
' --IceGridAdmin.Username=demo' + \
' --IceGridAdmin.Password=dummy'
admin = TestUtil.startClient(icegridadmin, args, None, None, False)
@@ -86,7 +86,7 @@ if TestUtil.protocol == "ssl":
# Direct registry connection with SSL
icegridadmin = TestUtil.getIceGridAdmin()
- args = ' --Ice.Default.Locator="IceGrid/Locator:default -p 12010" --ssl'
+ args = ' --Ice.Default.Locator="TestIceGrid/Locator:default -p 12010" --ssl'
admin = TestUtil.startClient(icegridadmin, args, None, None, False)
admin.expect('>>> ')
admin.sendline("server list")
@@ -108,7 +108,7 @@ if TestUtil.protocol == "ssl":
sys.stdout.write("testing commands... ")
sys.stdout.flush()
icegridadmin = TestUtil.getIceGridAdmin()
-args = ' --Ice.Default.Locator="IceGrid/Locator:default -p 12010"' + \
+args = ' --Ice.Default.Locator="TestIceGrid/Locator:default -p 12010"' + \
' --IceGridAdmin.Username=demo' + \
' --IceGridAdmin.Password=dummy'
admin = TestUtil.startClient(icegridadmin, args, None, None, False)
diff --git a/cpp/test/IceGrid/allocation/AllTests.cpp b/cpp/test/IceGrid/allocation/AllTests.cpp
index e059cb7cad0..c6405614b2b 100644
--- a/cpp/test/IceGrid/allocation/AllTests.cpp
+++ b/cpp/test/IceGrid/allocation/AllTests.cpp
@@ -10,9 +10,7 @@
#include <IceUtil/Thread.h>
#include <IceUtil/Random.h>
#include <Ice/Ice.h>
-#include <IceGrid/Registry.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Query.h>
+#include <IceGrid/IceGrid.h>
#include <Glacier2/Router.h>
#include <TestCommon.h>
#include <Test.h>
@@ -276,7 +274,8 @@ typedef IceUtil::Handle<StressClient> StressClientPtr;
void
allTests(const Ice::CommunicatorPtr& communicator)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(communicator->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cpp/test/IceGrid/allocation/application.xml b/cpp/test/IceGrid/allocation/application.xml
index eeb9a1ae2f9..c6009162eab 100644
--- a/cpp/test/IceGrid/allocation/application.xml
+++ b/cpp/test/IceGrid/allocation/application.xml
@@ -12,7 +12,7 @@
<property name="Glacier2.Client.Endpoints" value="${endpoints}"/>
<property name="Glacier2.Server.Endpoints" value="tcp"/>
<property name="Glacier2.SessionManager" value="${manager}"/>
- <property name="Glacier2.SSLSessionManager" value="IceGrid/SSLSessionManager"/>
+ <property name="Glacier2.SSLSessionManager" value="TestIceGrid/SSLSessionManager"/>
<property name="Glacier2.PermissionsVerifier" value="${verifier}"/>
<property name="Glacier2.Client.Trace.Reject" value="0"/>
</server>
@@ -23,7 +23,7 @@
<server-instance template="Glacier2" id="Glacier2"
endpoints="default -p 12347"
verifier="PermissionsVerifier"
- manager="IceGrid/SessionManager"/>
+ manager="TestIceGrid/SessionManager"/>
<server id="ObjectAllocation" exe="${test.dir}/server" activation="on-demand" pwd=".">
<adapter name="Server" endpoints="default">
diff --git a/cpp/test/IceGrid/deployer/AllTests.cpp b/cpp/test/IceGrid/deployer/AllTests.cpp
index a04e9251f3a..f9262135994 100644
--- a/cpp/test/IceGrid/deployer/AllTests.cpp
+++ b/cpp/test/IceGrid/deployer/AllTests.cpp
@@ -8,10 +8,7 @@
// **********************************************************************
#include <Ice/Ice.h>
-#include <Ice/BuiltinSequences.h>
-#include <IceGrid/Query.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
+#include <IceGrid/IceGrid.h>
#include <IceUtil/FileUtil.h>
#include <IceUtil/Thread.h>
#include <TestCommon.h>
@@ -378,8 +375,13 @@ logTests(const Ice::CommunicatorPtr& comm, const AdminSessionPrx& session)
void
allTests(const Ice::CommunicatorPtr& comm)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(comm->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
+ IceGrid::QueryPrx query = IceGrid::QueryPrx::checkedCast(
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Query"));
+ test(query);
+
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
@@ -410,9 +412,6 @@ allTests(const Ice::CommunicatorPtr& comm)
test(find(adapterIds.begin(), adapterIds.end(), "ReplicatedAdapter") != adapterIds.end());
cout << "ok" << endl;
- QueryPrx query = QueryPrx::checkedCast(comm->stringToProxy("IceGrid/Query"));
- test(query);
-
cout << "testing object registration... " << flush;
Ice::ObjectProxySeq objs = query->findAllObjectsByType("::Test");
test(find_if(objs.begin(), objs.end(), bind2nd(ProxyIdentityEqual(comm),"Server1")) != objs.end());
@@ -744,7 +743,7 @@ void
allTestsWithTarget(const Ice::CommunicatorPtr& comm)
{
RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
- comm->stringToProxy("IceGrid/Registry"));
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cpp/test/IceGrid/distribution/AllTests.cpp b/cpp/test/IceGrid/distribution/AllTests.cpp
index a99077f1228..3cea78d0e7a 100644
--- a/cpp/test/IceGrid/distribution/AllTests.cpp
+++ b/cpp/test/IceGrid/distribution/AllTests.cpp
@@ -9,9 +9,7 @@
#include <IceUtil/Thread.h>
#include <Ice/Ice.h>
-#include <IceGrid/Observer.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
+#include <IceGrid/IceGrid.h>
#include <TestCommon.h>
#include <Test.h>
@@ -24,7 +22,8 @@ using namespace IceGrid;
void
allTests(const Ice::CommunicatorPtr& communicator)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(communicator->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
index dbac34064df..69e27dcb4dd 100644
--- a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
+++ b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
@@ -9,9 +9,7 @@
#include <IceUtil/Thread.h>
#include <Ice/Ice.h>
-#include <IceGrid/Observer.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
+#include <IceGrid/IceGrid.h>
#include <TestCommon.h>
#include <Test.h>
@@ -153,7 +151,8 @@ updateServiceRuntimeProperties(const AdminPrx& admin, const ServiceDescriptorPtr
void
allTests(const Ice::CommunicatorPtr& communicator)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(communicator->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cpp/test/IceGrid/replicaGroup/AllTests.cpp b/cpp/test/IceGrid/replicaGroup/AllTests.cpp
index e6e29c6c1fd..0807975791d 100644
--- a/cpp/test/IceGrid/replicaGroup/AllTests.cpp
+++ b/cpp/test/IceGrid/replicaGroup/AllTests.cpp
@@ -9,9 +9,7 @@
#include <Ice/Ice.h>
#include <Ice/BuiltinSequences.h>
-#include <IceGrid/Query.h>
-#include <IceGrid/Registry.h>
-#include <IceGrid/Admin.h>
+#include <IceGrid/IceGrid.h>
#include <IceUtil/Thread.h>
#include <TestCommon.h>
#include <Test.h>
@@ -105,8 +103,12 @@ removeServer(const AdminPrx& admin, const string& id)
void
allTests(const Ice::CommunicatorPtr& comm)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(comm->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
+ IceGrid::QueryPrx query = IceGrid::QueryPrx::checkedCast(
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Query"));
+ test(query);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
@@ -133,9 +135,6 @@ allTests(const Ice::CommunicatorPtr& comm)
instantiateServer(admin, "Server", "localnode", params);
params["id"] = "Server3";
instantiateServer(admin, "Server", "localnode", params);
-
- QueryPrx query = IceGrid::QueryPrx::checkedCast(comm->stringToProxy("IceGrid/Query"));
- test(query);
TestIntfPrx obj = TestIntfPrx::uncheckedCast(comm->stringToProxy("dummy@RoundRobin"));
Ice::ObjectProxySeq objs = query->findAllReplicas(obj);
@@ -514,9 +513,6 @@ allTests(const Ice::CommunicatorPtr& comm)
test(false);
}
- QueryPrx query = IceGrid::QueryPrx::checkedCast(comm->stringToProxy("IceGrid/Query"));
- test(query);
-
try
{
ctx["server"] = "Server3";
@@ -785,7 +781,6 @@ allTests(const Ice::CommunicatorPtr& comm)
//
// Also make sure that findObjectByTypeOnLeastLoadedNode still work.
//
- QueryPrx query = IceGrid::QueryPrx::checkedCast(comm->stringToProxy("IceGrid/Query"));
obj = TestIntfPrx::uncheckedCast(query->findObjectByTypeOnLeastLoadedNode("::Test::TestIntf", LoadSample1));
test(obj->getReplicaId() == "Server2.ReplicatedAdapter");
diff --git a/cpp/test/IceGrid/replication/AllTests.cpp b/cpp/test/IceGrid/replication/AllTests.cpp
index ba260864c21..4da303781bb 100644
--- a/cpp/test/IceGrid/replication/AllTests.cpp
+++ b/cpp/test/IceGrid/replication/AllTests.cpp
@@ -10,10 +10,7 @@
#include <Ice/Ice.h>
#include <Ice/BuiltinSequences.h>
#include <Ice/Locator.h>
-#include <IceGrid/Query.h>
-#include <IceGrid/Registry.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/UserAccountMapper.h>
+#include <IceGrid/IceGrid.h>
#include <IceUtil/Thread.h>
#include <TestCommon.h>
#include <Test.h>
@@ -234,7 +231,7 @@ createAdminSession(const Ice::LocatorPrx& locator, const string& replica)
{
test(waitAndPing(locator));
- string registryStr("TestIceGrid/Registry");
+ string registryStr("RepTestIceGrid/Registry");
if(!replica.empty() && replica != "Master")
{
registryStr += "-" + replica;
@@ -253,8 +250,9 @@ createAdminSession(const Ice::LocatorPrx& locator, const string& replica)
void
allTests(const Ice::CommunicatorPtr& comm)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(comm->stringToProxy("IceGrid/Registry"));
- test(registry);
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
+
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
@@ -283,14 +281,14 @@ allTests(const Ice::CommunicatorPtr& comm)
instantiateServer(admin, "IceGridRegistry", params);
Ice::LocatorPrx masterLocator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Master:default -p 12050"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Master:default -p 12050"));
Ice::LocatorPrx slave1Locator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Slave1:default -p 12051"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Slave1:default -p 12051"));
Ice::LocatorPrx slave2Locator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Slave2:default -p 12052"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Slave2:default -p 12052"));
Ice::LocatorPrx replicatedLocator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator:default -p 12050:default -p 12051"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator:default -p 12050:default -p 12051"));
AdminPrx masterAdmin, slave1Admin, slave2Admin;
@@ -316,17 +314,17 @@ allTests(const Ice::CommunicatorPtr& comm)
Ice::EndpointSeq endpoints;
ObjectInfo info;
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator"));
- ObjectInfo info1 = slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator"));
- test(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator")) == info);
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator"));
+ ObjectInfo info1 = slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator"));
+ test(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator")) == info);
test(info.type == Ice::Locator::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 2);
test(endpoints[0]->toString().find("-p 12050") != string::npos);
test(endpoints[1]->toString().find("-p 12051") != string::npos);
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query"));
- test(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query")) == info);
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query"));
+ test(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query")) == info);
test(info.type == IceGrid::Query::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 2);
@@ -336,15 +334,15 @@ allTests(const Ice::CommunicatorPtr& comm)
admin->startServer("Slave2");
slave2Admin = createAdminSession(slave2Locator, "Slave2");
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator"));
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator"));
// We eventually need to wait here for the update of the replicated objects to propagate to the replica.
int nRetry = 0;
- while(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator")) != info && nRetry < maxRetry)
+ while(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator")) != info && nRetry < maxRetry)
{
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(sleepTime));
++nRetry;
}
- test(slave2Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator")) == info);
+ test(slave2Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator")) == info);
test(info.type == Ice::Locator::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 3);
@@ -352,15 +350,15 @@ allTests(const Ice::CommunicatorPtr& comm)
test(endpoints[1]->toString().find("-p 12051") != string::npos);
test(endpoints[2]->toString().find("-p 12052") != string::npos);
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query"));
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query"));
// We eventually need to wait here for the update of the replicated objects to propagate to the replica.
nRetry = 0;
- while(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query")) != info && nRetry < maxRetry)
+ while(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query")) != info && nRetry < maxRetry)
{
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(sleepTime));
++nRetry;
}
- test(slave2Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query")) == info);
+ test(slave2Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query")) == info);
test(info.type == IceGrid::Query::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 3);
@@ -371,29 +369,29 @@ allTests(const Ice::CommunicatorPtr& comm)
slave2Admin->shutdown();
waitForServerState(admin, "Slave2", false);
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator"));
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator"));
// We eventually need to wait here for the update of the replicated objects to propagate to the replica.
nRetry = 0;
- while(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator")) != info && nRetry < maxRetry)
+ while(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator")) != info && nRetry < maxRetry)
{
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(sleepTime));
++nRetry;
}
- test(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Locator")) == info);
+ test(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Locator")) == info);
test(info.type == Ice::Locator::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 2);
test(endpoints[0]->toString().find("-p 12050") != string::npos);
test(endpoints[1]->toString().find("-p 12051") != string::npos);
- info = masterAdmin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query"));
+ info = masterAdmin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query"));
nRetry = 0;
- while(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query")) != info && nRetry < maxRetry)
+ while(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query")) != info && nRetry < maxRetry)
{
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(sleepTime));
++nRetry;
}
- test(slave1Admin->getObjectInfo(comm->stringToIdentity("TestIceGrid/Query")) == info);
+ test(slave1Admin->getObjectInfo(comm->stringToIdentity("RepTestIceGrid/Query")) == info);
test(info.type == IceGrid::Query::ice_staticId());
endpoints = info.proxy->ice_getEndpoints();
test(endpoints.size() == 2);
@@ -401,10 +399,10 @@ allTests(const Ice::CommunicatorPtr& comm)
test(endpoints[1]->toString().find("-p 12051") != string::npos);
QueryPrx query;
- query = QueryPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Query:" + endpoints[0]->toString()));
+ query = QueryPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Query:" + endpoints[0]->toString()));
Ice::ObjectProxySeq objs = query->findAllObjectsByType("::IceGrid::Registry");
test(objs.size() == 2);
- query = QueryPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Query:" + endpoints[1]->toString()));
+ query = QueryPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Query:" + endpoints[1]->toString()));
test(objs == query->findAllObjectsByType("::IceGrid::Registry"));
}
cout << "ok" << endl;
@@ -417,9 +415,9 @@ allTests(const Ice::CommunicatorPtr& comm)
// session above!)
//
RegistryPrx masterRegistry = RegistryPrx::checkedCast(
- comm->stringToProxy("TestIceGrid/Registry")->ice_locator(replicatedLocator));
+ comm->stringToProxy("RepTestIceGrid/Registry")->ice_locator(replicatedLocator));
RegistryPrx slave1Registry = RegistryPrx::checkedCast(
- comm->stringToProxy("TestIceGrid/Registry-Slave1")->ice_locator(replicatedLocator));
+ comm->stringToProxy("RepTestIceGrid/Registry-Slave1")->ice_locator(replicatedLocator));
SessionPrx session = masterRegistry->createSession("dummy", "dummy");
session->destroy();
@@ -458,9 +456,9 @@ allTests(const Ice::CommunicatorPtr& comm)
// Test registry user-account mapper.
//
UserAccountMapperPrx masterMapper = UserAccountMapperPrx::checkedCast(
- comm->stringToProxy("TestIceGrid/RegistryUserAccountMapper")->ice_locator(replicatedLocator));
+ comm->stringToProxy("RepTestIceGrid/RegistryUserAccountMapper")->ice_locator(replicatedLocator));
UserAccountMapperPrx slave1Mapper = UserAccountMapperPrx::checkedCast(
- comm->stringToProxy("TestIceGrid/RegistryUserAccountMapper-Slave1")->ice_locator(replicatedLocator));
+ comm->stringToProxy("RepTestIceGrid/RegistryUserAccountMapper-Slave1")->ice_locator(replicatedLocator));
test(masterMapper->getUserAccount("Dummy User Account1") == "dummy1");
test(masterMapper->getUserAccount("Dummy User Account2") == "dummy2");
@@ -487,11 +485,11 @@ allTests(const Ice::CommunicatorPtr& comm)
// Test SessionManager, SSLSessionManager,
// AdminSessionManager, AdminSSLSessionManager
//
- comm->stringToProxy("TestIceGrid/SessionManager")->ice_locator(replicatedLocator)->ice_ping();
- comm->stringToProxy("TestIceGrid/SSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/SessionManager")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/SSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();
try
{
- comm->stringToProxy("TestIceGrid/SessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/SessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
test(false);
}
catch(const Ice::NotRegisteredException&)
@@ -499,17 +497,17 @@ allTests(const Ice::CommunicatorPtr& comm)
}
try
{
- comm->stringToProxy("TestIceGrid/SSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/SSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
test(false);
}
catch(const Ice::NotRegisteredException&)
{
}
- comm->stringToProxy("TestIceGrid/AdminSessionManager")->ice_locator(replicatedLocator)->ice_ping();
- comm->stringToProxy("TestIceGrid/AdminSSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();
- comm->stringToProxy("TestIceGrid/AdminSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
- comm->stringToProxy("TestIceGrid/AdminSSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/AdminSessionManager")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/AdminSSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/AdminSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
+ comm->stringToProxy("RepTestIceGrid/AdminSSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();
}
cout << "ok" << endl;
@@ -1200,7 +1198,7 @@ allTests(const Ice::CommunicatorPtr& comm)
admin->startServer("Slave1");
slave1Locator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Master:default -p 12051"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Master:default -p 12051"));
slave1Admin = createAdminSession(slave1Locator, "");
waitForReplicaState(slave1Admin, "Slave2", true);
@@ -1240,7 +1238,7 @@ allTests(const Ice::CommunicatorPtr& comm)
admin->startServer("Slave1");
slave1Locator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Slave1:default -p 12051"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Slave1:default -p 12051"));
slave1Admin = createAdminSession(slave1Locator, "Slave1");
comm->stringToProxy("test")->ice_locator(masterLocator)->ice_locatorCacheTimeout(0)->ice_ping();
@@ -1281,7 +1279,7 @@ allTests(const Ice::CommunicatorPtr& comm)
waitForNodeState(masterAdmin, "Node2", true);
Ice::LocatorPrx slave3Locator =
- Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("TestIceGrid/Locator-Slave3 -e 1.0:default -p 12053"));
+ Ice::LocatorPrx::uncheckedCast(comm->stringToProxy("RepTestIceGrid/Locator-Slave3 -e 1.0:default -p 12053"));
IceGrid::AdminPrx slave3Admin = createAdminSession(slave3Locator, "Slave3");
waitForNodeState(slave3Admin, "Node2", true);
diff --git a/cpp/test/IceGrid/replication/application.xml b/cpp/test/IceGrid/replication/application.xml
index dfe29813fca..ef30515ed2e 100644
--- a/cpp/test/IceGrid/replication/application.xml
+++ b/cpp/test/IceGrid/replication/application.xml
@@ -9,12 +9,12 @@
<option>--nowarn</option>
<dbenv name="data"/>
<property name="IceGrid.Node.Endpoints" value="default"/>
- <property name="IceGrid.InstanceName" value="TestIceGrid"/>
+ <property name="IceGrid.InstanceName" value="RepTestIceGrid"/>
<property name="IceGrid.Node.Name" value="${server}"/>
<property name="IceGrid.Node.Data" value="${node.datadir}/servers/${server}/dbs/data"/>
<property name="IceGrid.Node.PropertiesOverride"
value="${properties-override} Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"/>
- <property name="Ice.Default.Locator" value="TestIceGrid/Locator:default -p 12050:default -p 12051:default -p 12052"/>
+ <property name="Ice.Default.Locator" value="RepTestIceGrid/Locator:default -p 12050:default -p 12051:default -p 12052"/>
<property name="IceGrid.Node.Trace.Replica" value="0"/>
<property name="IceGrid.Node.Trace.Adapter" value="0"/>
<property name="Ice.Trace.Network" value="0"/>
@@ -38,7 +38,7 @@
<!-- Try to make the test run a bit faster... -->
<dbproperty name="set_flags" value="DB_TXN_NOSYNC"/>
</dbenv>
- <property name="IceGrid.InstanceName" value="TestIceGrid"/>
+ <property name="IceGrid.InstanceName" value="RepTestIceGrid"/>
<property name="IceGrid.Registry.Client.Endpoints" value="default -p ${port}"/>
<property name="IceGrid.Registry.Server.Endpoints" value="default"/>
<property name="IceGrid.Registry.Internal.Endpoints" value="default"/>
@@ -46,12 +46,12 @@
<property name="IceGrid.Registry.AdminSessionManager.Endpoints" value="default"/>
<property name="IceGrid.Registry.ReplicaName" value="${replicaName}"/>
<property name="IceGrid.Registry.Data" value="${node.datadir}/servers/${server}/dbs/data"/>
- <property name="IceGrid.Registry.PermissionsVerifier" value="TestIceGrid/NullPermissionsVerifier"/>
- <property name="IceGrid.Registry.SSLPermissionsVerifier" value="TestIceGrid/NullSSLPermissionsVerifier"/>
- <property name="IceGrid.Registry.AdminPermissionsVerifier" value="TestIceGrid/NullPermissionsVerifier"/>
+ <property name="IceGrid.Registry.PermissionsVerifier" value="RepTestIceGrid/NullPermissionsVerifier"/>
+ <property name="IceGrid.Registry.SSLPermissionsVerifier" value="RepTestIceGrid/NullSSLPermissionsVerifier"/>
+ <property name="IceGrid.Registry.AdminPermissionsVerifier" value="RepTestIceGrid/NullPermissionsVerifier"/>
<property name="IceGrid.Registry.SessionTimeout" value="0"/>
<property name="IceGrid.Registry.DynamicRegistration" value="1"/>
- <property name="Ice.Default.Locator" value="TestIceGrid/Locator:default -p 12050:default -p 12051:default -p 12052"/>
+ <property name="Ice.Default.Locator" value="RepTestIceGrid/Locator:default -p 12050:default -p 12051:default -p 12052"/>
<property name="IceGrid.Registry.Trace.Replica" value="0"/>
<property name="IceGrid.Registry.Trace.Node" value="0"/>
<property name="Ice.Trace.Network" value="0"/>
diff --git a/cpp/test/IceGrid/session/AllTests.cpp b/cpp/test/IceGrid/session/AllTests.cpp
index 172bbd40344..306f5814c63 100644
--- a/cpp/test/IceGrid/session/AllTests.cpp
+++ b/cpp/test/IceGrid/session/AllTests.cpp
@@ -9,11 +9,7 @@
#include <IceUtil/Thread.h>
#include <Ice/Ice.h>
-#include <IceGrid/Registry.h>
-#include <IceGrid/Query.h>
-#include <IceGrid/Session.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Observer.h>
+#include <IceGrid/IceGrid.h>
#include <Glacier2/Router.h>
#include <TestCommon.h>
#include <Test.h>
@@ -493,8 +489,8 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
bool encoding10 = communicator->getProperties()->getProperty("Ice.Default.EncodingVersion") == "1.0";
- RegistryPrx registry = RegistryPrx::checkedCast(communicator->stringToProxy("IceGrid/Registry"));
- test(registry);
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
AdminSessionPrx session = registry->createAdminSession("admin3", "test3");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
@@ -869,11 +865,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
}
- Ice::ObjectPrx obj = communicator->stringToProxy("IceGrid/Query");
+ Ice::ObjectPrx obj = communicator->stringToProxy("TestIceGrid/Query");
obj->ice_connectionId("router1")->ice_router(router1)->ice_ping();
obj->ice_connectionId("router2")->ice_router(router2)->ice_ping();
- obj = communicator->stringToProxy("IceGrid/Registry");
+ obj = communicator->stringToProxy("TestIceGrid/Registry");
try
{
obj->ice_connectionId("router1")->ice_router(router1)->ice_ping();
@@ -935,7 +931,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
admin1->ice_ping();
admin2->ice_ping();
- obj = communicator->stringToProxy("IceGrid/Query");
+ obj = communicator->stringToProxy("TestIceGrid/Query");
obj->ice_connectionId("admRouter1")->ice_router(adminRouter1)->ice_ping();
obj->ice_connectionId("admRouter2")->ice_router(adminRouter2)->ice_ping();
@@ -1035,11 +1031,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
}
- Ice::ObjectPrx obj = communicator->stringToProxy("IceGrid/Query");
+ Ice::ObjectPrx obj = communicator->stringToProxy("TestIceGrid/Query");
obj->ice_connectionId("router11")->ice_router(router1)->ice_ping();
obj->ice_connectionId("router21")->ice_router(router2)->ice_ping();
- obj = communicator->stringToProxy("IceGrid/Registry");
+ obj = communicator->stringToProxy("TestIceGrid/Registry");
try
{
obj->ice_connectionId("router11")->ice_router(router1)->ice_ping();
@@ -1099,7 +1095,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
admin1->ice_ping();
admin2->ice_ping();
- obj = communicator->stringToProxy("IceGrid/Query");
+ obj = communicator->stringToProxy("TestIceGrid/Query");
obj->ice_connectionId("admRouter11")->ice_router(adminRouter1)->ice_ping();
obj->ice_connectionId("admRouter21")->ice_router(adminRouter2)->ice_ping();
@@ -1903,7 +1899,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(registryObs1->registries.find("Master") != registryObs1->registries.end());
test(appObs1->applications.empty());
- QueryPrx query = QueryPrx::uncheckedCast(communicator->stringToProxy("IceGrid/Query"));
+ QueryPrx query = QueryPrx::uncheckedCast(communicator->stringToProxy("TestIceGrid/Query"));
Ice::ObjectProxySeq registries = query->findAllObjectsByType("::IceGrid::Registry");
const string prefix("Registry-");
for(Ice::ObjectProxySeq::const_iterator p = registries.begin(); p != registries.end(); ++p)
diff --git a/cpp/test/IceGrid/session/application.xml b/cpp/test/IceGrid/session/application.xml
index 8189513628c..a4b7bcf56e1 100644
--- a/cpp/test/IceGrid/session/application.xml
+++ b/cpp/test/IceGrid/session/application.xml
@@ -26,13 +26,13 @@
<server-instance id="Glacier2" template="Glacier2"
endpoints="default -p 12347 -h 127.0.0.1"
verifier="ClientPermissionsVerifier"
- manager="IceGrid/SessionManager"
- ssl-manager="IceGrid/SSLSessionManager"/>
+ manager="TestIceGrid/SessionManager"
+ ssl-manager="TestIceGrid/SSLSessionManager"/>
<server-instance id="Glacier2Admin" template="Glacier2"
endpoints="default -p 12348 -h 127.0.0.1"
verifier="AdminPermissionsVerifier:tcp -p 12002"
- manager="IceGrid/AdminSessionManager"
- ssl-manager="IceGrid/AdminSSLSessionManager"/>
+ manager="TestIceGrid/AdminSessionManager"
+ ssl-manager="TestIceGrid/AdminSSLSessionManager"/>
<server id="PermissionsVerifierServer" exe="${test.dir}/server" activation="on-demand">
<adapter name="Server" endpoints="default -h 127.0.0.1">
diff --git a/cpp/test/IceGrid/simple/AllTests.cpp b/cpp/test/IceGrid/simple/AllTests.cpp
index 8dc264cf295..de4283f1ec1 100644
--- a/cpp/test/IceGrid/simple/AllTests.cpp
+++ b/cpp/test/IceGrid/simple/AllTests.cpp
@@ -7,11 +7,9 @@
//
// **********************************************************************
-#include <Ice/Ice.h>
#include <IceUtil/IceUtil.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
-#include <IceGrid/Locator.h>
+#include <Ice/Ice.h>
+#include <IceGrid/IceGrid.h>
#include <TestCommon.h>
#include <Test.h>
@@ -41,6 +39,20 @@ allTests(const Ice::CommunicatorPtr& communicator)
obj->ice_ping();
cout << "ok" << endl;
+ cout << "testing discovery... " << flush;
+ {
+ Ice::InitializationData initData;
+ initData.properties = communicator->getProperties()->clone();
+ initData.properties->setProperty("Ice.Default.Locator", "");
+ initData.properties->setProperty("Ice.Plugin.IceGridDiscovery", "IceGrid:createIceGridDiscovery");
+
+ Ice::CommunicatorPtr com = Ice::initialize(initData);
+ test(com->getDefaultLocator());
+ com->stringToProxy("test @ TestAdapter")->ice_ping();
+ com->destroy();
+ }
+ cout << "ok" << endl;
+
cout << "shutting down server... " << flush;
obj->shutdown();
cout << "ok" << endl;
@@ -124,8 +136,9 @@ allTestsWithDeploy(const Ice::CommunicatorPtr& communicator)
cout << "ok" << endl;
IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
- communicator->stringToProxy("IceGrid/Registry"));
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
+
IceGrid::AdminSessionPrx session = registry->createAdminSession("foo", "bar");
session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::HeartbeatAlways);
diff --git a/cpp/test/IceGrid/update/AllTests.cpp b/cpp/test/IceGrid/update/AllTests.cpp
index f3731bfbf9c..cf1b16d273d 100644
--- a/cpp/test/IceGrid/update/AllTests.cpp
+++ b/cpp/test/IceGrid/update/AllTests.cpp
@@ -9,9 +9,7 @@
#include <IceUtil/Thread.h>
#include <Ice/Ice.h>
-#include <IceGrid/Observer.h>
-#include <IceGrid/Admin.h>
-#include <IceGrid/Registry.h>
+#include <IceGrid/IceGrid.h>
#include <TestCommon.h>
#include <Test.h>
@@ -67,8 +65,8 @@ hasProperty(const CommunicatorDescriptorPtr& desc, const string& name, const str
void
allTests(const Ice::CommunicatorPtr& communicator)
{
- RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
- communicator->stringToProxy("IceGrid/Registry"));
+ IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast(
+ communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry"));
test(registry);
AdminSessionPrx session = registry->createAdminSession("foo", "bar");
diff --git a/cs/src/Ice/ObjectAdapterI.cs b/cs/src/Ice/ObjectAdapterI.cs
index 915349f2e41..3d3849b01c5 100644
--- a/cs/src/Ice/ObjectAdapterI.cs
+++ b/cs/src/Ice/ObjectAdapterI.cs
@@ -1478,7 +1478,7 @@ namespace Ice
}
}
- if(instance_.traceLevels().network >= 1)
+ if(instance_.traceLevels().network >= 1 && endpoints.Count > 0)
{
StringBuilder s = new StringBuilder("published endpoints for object adapter `");
s.Append(_name);
diff --git a/cs/src/Ice/PropertyNames.cs b/cs/src/Ice/PropertyNames.cs
index 10c2ccdd18a..a3579f092f2 100644
--- a/cs/src/Ice/PropertyNames.cs
+++ b/cs/src/Ice/PropertyNames.cs
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Jun 5 21:19:31 2014
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Jul 9 18:08:33 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -312,6 +312,90 @@ namespace IceInternal
null
};
+ public static Property[] IceGridDiscoveryProps =
+ {
+ new Property(@"^IceGridDiscovery\.Reply\.ACM\.Timeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ACM\.Heartbeat$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ACM\.Close$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ACM$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.AdapterId$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Endpoints$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.EndpointSelection$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.ConnectionCached$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.PreferSecure$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.PublishedEndpoints$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ReplicaGroupId$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.EndpointSelection$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.ConnectionCached$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.PreferSecure$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ProxyOptions$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.Size$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.SizeMax$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.SizeWarn$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.StackSize$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.Serialize$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.ThreadIdleTime$", false, null),
+ new Property(@"^IceGridDiscovery\.Reply\.ThreadPool\.ThreadPriority$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ACM\.Timeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ACM\.Heartbeat$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ACM\.Close$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ACM$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.AdapterId$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Endpoints$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.EndpointSelection$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.ConnectionCached$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.PreferSecure$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.PublishedEndpoints$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ReplicaGroupId$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.EndpointSelection$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.ConnectionCached$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.PreferSecure$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.Locator$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.Router$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ProxyOptions$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.Size$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.SizeMax$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.SizeWarn$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.StackSize$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.Serialize$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.ThreadIdleTime$", false, null),
+ new Property(@"^IceGridDiscovery\.Locator\.ThreadPool\.ThreadPriority$", false, null),
+ new Property(@"^IceGridDiscovery\.Lookup$", false, null),
+ new Property(@"^IceGridDiscovery\.Timeout$", false, null),
+ new Property(@"^IceGridDiscovery\.RetryCount$", false, null),
+ new Property(@"^IceGridDiscovery\.Address$", false, null),
+ new Property(@"^IceGridDiscovery\.Port$", false, null),
+ new Property(@"^IceGridDiscovery\.Interface$", false, null),
+ new Property(@"^IceGridDiscovery\.InstanceName$", false, null),
+ null
+ };
+
public static Property[] IceBoxProps =
{
new Property(@"^IceBox\.InheritProperties$", false, null),
@@ -382,6 +466,48 @@ namespace IceInternal
new Property(@"^IceGridAdmin\.Username$", false, null),
new Property(@"^IceGridAdmin\.Password$", false, null),
new Property(@"^IceGridAdmin\.Replica$", false, null),
+ new Property(@"^IceGridAdmin\.Host$", false, null),
+ new Property(@"^IceGridAdmin\.Port$", false, null),
+ new Property(@"^IceGridAdmin\.InstanceName$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Address$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Interface$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Lookup$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ACM\.Timeout$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ACM\.Heartbeat$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ACM\.Close$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ACM$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.AdapterId$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Endpoints$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.EndpointSelection$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.ConnectionCached$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.PreferSecure$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.Locator$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.Router$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Locator$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.PublishedEndpoints$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ReplicaGroupId$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.EndpointSelection$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.ConnectionCached$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.PreferSecure$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.InvocationTimeout$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.Locator$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.Router$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.CollocationOptimized$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.Router$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ProxyOptions$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.Size$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.SizeMax$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.SizeWarn$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.StackSize$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.Serialize$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.ThreadIdleTime$", false, null),
+ new Property(@"^IceGridAdmin\.Discovery\.Reply\.ThreadPool\.ThreadPriority$", false, null),
new Property(@"^IceGridAdmin\.Trace\.Observers$", false, null),
new Property(@"^IceGridAdmin\.Trace\.SaveToRegistry$", false, null),
null
@@ -587,6 +713,46 @@ namespace IceInternal
new Property(@"^IceGrid\.Registry\.CryptPasswords$", false, null),
new Property(@"^IceGrid\.Registry\.Data$", false, null),
new Property(@"^IceGrid\.Registry\.DefaultTemplates$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ACM\.Timeout$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ACM\.Heartbeat$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ACM\.Close$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ACM$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.AdapterId$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Endpoints$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.EndpointSelection$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.ConnectionCached$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.PreferSecure$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.InvocationTimeout$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.Locator$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.Router$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.CollocationOptimized$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Locator$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.PublishedEndpoints$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ReplicaGroupId$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.EndpointSelection$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.ConnectionCached$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.PreferSecure$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.LocatorCacheTimeout$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.InvocationTimeout$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.Locator$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.Router$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.CollocationOptimized$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router\.Context\.[^\s]+$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Router$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ProxyOptions$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.Size$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.SizeMax$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.SizeWarn$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.StackSize$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.Serialize$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.ThreadIdleTime$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.ThreadPool\.ThreadPriority$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Enabled$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Address$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Port$", false, null),
+ new Property(@"^IceGrid\.Registry\.Discovery\.Interface$", false, null),
new Property(@"^IceGrid\.Registry\.DynamicRegistration$", false, null),
new Property(@"^IceGrid\.Registry\.Internal\.ACM\.Timeout$", false, null),
new Property(@"^IceGrid\.Registry\.Internal\.ACM\.Heartbeat$", false, null),
@@ -1035,6 +1201,7 @@ namespace IceInternal
IceProps,
IceMXProps,
IceDiscoveryProps,
+ IceGridDiscoveryProps,
IceBoxProps,
IceBoxAdminProps,
IceGridAdminProps,
@@ -1053,6 +1220,7 @@ namespace IceInternal
"Ice",
"IceMX",
"IceDiscovery",
+ "IceGridDiscovery",
"IceBox",
"IceBoxAdmin",
"IceGridAdmin",
diff --git a/cs/src/IceDiscovery/PluginI.cs b/cs/src/IceDiscovery/PluginI.cs
index 652645f0999..0cdb4a5f185 100644
--- a/cs/src/IceDiscovery/PluginI.cs
+++ b/cs/src/IceDiscovery/PluginI.cs
@@ -125,8 +125,7 @@ namespace IceDiscovery
Ice.ObjectPrx loc;
loc = _locatorAdapter.addWithUUID(
new LocatorI(lookup, Ice.LocatorRegistryPrxHelper.uncheckedCast(locatorRegistryPrx)));
- _communicator.setDefaultLocator(
- Ice.LocatorPrxHelper.uncheckedCast(_communicator.stringToProxy(loc.ToString())));
+ _communicator.setDefaultLocator(Ice.LocatorPrxHelper.uncheckedCast(loc));
_multicastAdapter.activate();
_replyAdapter.activate();
diff --git a/cs/test/IceDiscovery/simple/run.py b/cs/test/IceDiscovery/simple/run.py
index 955aa65c4ae..f2b6a3ef179 100755
--- a/cs/test/IceDiscovery/simple/run.py
+++ b/cs/test/IceDiscovery/simple/run.py
@@ -33,14 +33,7 @@ if TestUtil.isDarwin() and TestUtil.ipv6:
print("test not supported on OS X with IPv6")
sys.exit(0)
-if TestUtil.ipv6:
- #
- # Don't set the interface for the multicast datagrams, this doesn't
- # work with some Linux distributions (CentOS 6.x)
- #
- #args += " --IceDiscovery.Address=\"ff15::1:1\" --IceDiscovery.Interface=\"::1\""
- args += " --IceDiscovery.Address=\"ff15::1:1\""
-else:
+if not TestUtil.ipv6:
args += " --IceDiscovery.Interface=127.0.0.1"
serverProc = []
diff --git a/cs/test/IceGrid/simple/AllTests.cs b/cs/test/IceGrid/simple/AllTests.cs
index 936e5b012a3..ad9dab507a1 100644
--- a/cs/test/IceGrid/simple/AllTests.cs
+++ b/cs/test/IceGrid/simple/AllTests.cs
@@ -138,7 +138,7 @@ public class AllTests
Console.Out.WriteLine("ok");
IceGrid.RegistryPrx registry = IceGrid.RegistryPrxHelper.checkedCast(
- communicator.stringToProxy("IceGrid/Registry"));
+ communicator.stringToProxy(communicator.getDefaultLocator().ice_getIdentity().category + "/Registry"));
test(registry != null);
IceGrid.AdminSessionPrx session = null;
try
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java
index e661c886007..c8760a558d7 100644
--- a/java/src/Ice/ObjectAdapterI.java
+++ b/java/src/Ice/ObjectAdapterI.java
@@ -1265,7 +1265,7 @@ public final class ObjectAdapterI implements ObjectAdapter
}
}
- if(_instance.traceLevels().network >= 1)
+ if(_instance.traceLevels().network >= 1 && !endpoints.isEmpty())
{
StringBuffer s = new StringBuffer("published endpoints for object adapter `");
s.append(_name);
diff --git a/java/src/IceDiscovery/PluginI.java b/java/src/IceDiscovery/PluginI.java
index 9f90c8b251a..a853730bc02 100644
--- a/java/src/IceDiscovery/PluginI.java
+++ b/java/src/IceDiscovery/PluginI.java
@@ -113,8 +113,7 @@ public class PluginI implements Ice.Plugin
// Setup locator on the communicator.
//
Ice.ObjectPrx locator = _locatorAdapter.addWithUUID(new LocatorI(lookup, locatorRegistryPrx));
- _communicator.setDefaultLocator(
- Ice.LocatorPrxHelper.uncheckedCast(_communicator.stringToProxy(locator.toString())));
+ _communicator.setDefaultLocator(Ice.LocatorPrxHelper.uncheckedCast(locator));
_multicastAdapter.activate();
_replyAdapter.activate();
diff --git a/java/src/IceInternal/PropertyNames.java b/java/src/IceInternal/PropertyNames.java
index 51aaf7ee700..54ca60095a9 100644
--- a/java/src/IceInternal/PropertyNames.java
+++ b/java/src/IceInternal/PropertyNames.java
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Jun 5 21:19:31 2014
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Jul 9 18:08:33 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -312,6 +312,90 @@ public final class PropertyNames
null
};
+ public static final Property IceGridDiscoveryProps[] =
+ {
+ new Property("IceGridDiscovery\\.Reply\\.ACM\\.Timeout", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ACM\\.Heartbeat", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ACM\\.Close", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ACM", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.AdapterId", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Endpoints", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.EndpointSelection", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.ConnectionCached", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.PreferSecure", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.InvocationTimeout", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.CollocationOptimized", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.PublishedEndpoints", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ReplicaGroupId", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.EndpointSelection", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.ConnectionCached", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.PreferSecure", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.InvocationTimeout", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.CollocationOptimized", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ProxyOptions", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.Size", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.SizeMax", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.SizeWarn", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.StackSize", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.Serialize", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.ThreadIdleTime", false, null),
+ new Property("IceGridDiscovery\\.Reply\\.ThreadPool\\.ThreadPriority", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ACM\\.Timeout", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ACM\\.Heartbeat", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ACM\\.Close", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ACM", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.AdapterId", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Endpoints", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.EndpointSelection", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.ConnectionCached", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.PreferSecure", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.InvocationTimeout", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.CollocationOptimized", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.PublishedEndpoints", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ReplicaGroupId", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.EndpointSelection", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.ConnectionCached", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.PreferSecure", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.InvocationTimeout", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.Locator", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.CollocationOptimized", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.Router", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ProxyOptions", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.Size", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.SizeMax", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.SizeWarn", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.StackSize", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.Serialize", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.ThreadIdleTime", false, null),
+ new Property("IceGridDiscovery\\.Locator\\.ThreadPool\\.ThreadPriority", false, null),
+ new Property("IceGridDiscovery\\.Lookup", false, null),
+ new Property("IceGridDiscovery\\.Timeout", false, null),
+ new Property("IceGridDiscovery\\.RetryCount", false, null),
+ new Property("IceGridDiscovery\\.Address", false, null),
+ new Property("IceGridDiscovery\\.Port", false, null),
+ new Property("IceGridDiscovery\\.Interface", false, null),
+ new Property("IceGridDiscovery\\.InstanceName", false, null),
+ null
+ };
+
public static final Property IceBoxProps[] =
{
new Property("IceBox\\.InheritProperties", false, null),
@@ -382,6 +466,48 @@ public final class PropertyNames
new Property("IceGridAdmin\\.Username", false, null),
new Property("IceGridAdmin\\.Password", false, null),
new Property("IceGridAdmin\\.Replica", false, null),
+ new Property("IceGridAdmin\\.Host", false, null),
+ new Property("IceGridAdmin\\.Port", false, null),
+ new Property("IceGridAdmin\\.InstanceName", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Address", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Interface", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Lookup", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ACM\\.Timeout", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ACM\\.Heartbeat", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ACM\\.Close", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ACM", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.AdapterId", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Endpoints", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.EndpointSelection", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.ConnectionCached", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.PreferSecure", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.InvocationTimeout", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.Locator", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.Router", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.CollocationOptimized", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Locator", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.PublishedEndpoints", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ReplicaGroupId", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.EndpointSelection", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.ConnectionCached", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.PreferSecure", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.LocatorCacheTimeout", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.InvocationTimeout", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.Locator", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.Router", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.CollocationOptimized", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.Router", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ProxyOptions", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.Size", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.SizeMax", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.SizeWarn", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.StackSize", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.Serialize", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.ThreadIdleTime", false, null),
+ new Property("IceGridAdmin\\.Discovery\\.Reply\\.ThreadPool\\.ThreadPriority", false, null),
new Property("IceGridAdmin\\.Trace\\.Observers", false, null),
new Property("IceGridAdmin\\.Trace\\.SaveToRegistry", false, null),
null
@@ -587,6 +713,46 @@ public final class PropertyNames
new Property("IceGrid\\.Registry\\.CryptPasswords", false, null),
new Property("IceGrid\\.Registry\\.Data", false, null),
new Property("IceGrid\\.Registry\\.DefaultTemplates", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ACM\\.Timeout", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ACM\\.Heartbeat", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ACM\\.Close", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ACM", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.AdapterId", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Endpoints", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.EndpointSelection", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.ConnectionCached", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.PreferSecure", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.LocatorCacheTimeout", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.InvocationTimeout", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.Locator", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.Router", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.CollocationOptimized", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Locator", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.PublishedEndpoints", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ReplicaGroupId", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.EndpointSelection", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.ConnectionCached", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.PreferSecure", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.LocatorCacheTimeout", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.InvocationTimeout", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.Locator", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.Router", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.CollocationOptimized", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router\\.Context\\.[^\\s]+", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Router", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ProxyOptions", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.Size", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.SizeMax", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.SizeWarn", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.StackSize", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.Serialize", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.ThreadIdleTime", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.ThreadPool\\.ThreadPriority", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Enabled", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Address", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Port", false, null),
+ new Property("IceGrid\\.Registry\\.Discovery\\.Interface", false, null),
new Property("IceGrid\\.Registry\\.DynamicRegistration", false, null),
new Property("IceGrid\\.Registry\\.Internal\\.ACM\\.Timeout", false, null),
new Property("IceGrid\\.Registry\\.Internal\\.ACM\\.Heartbeat", false, null),
@@ -1036,6 +1202,7 @@ public final class PropertyNames
IceProps,
IceMXProps,
IceDiscoveryProps,
+ IceGridDiscoveryProps,
IceBoxProps,
IceBoxAdminProps,
IceGridAdminProps,
@@ -1054,6 +1221,7 @@ public final class PropertyNames
"Ice",
"IceMX",
"IceDiscovery",
+ "IceGridDiscovery",
"IceBox",
"IceBoxAdmin",
"IceGridAdmin",
diff --git a/java/test/IceDiscovery/simple/run.py b/java/test/IceDiscovery/simple/run.py
index e6e41d07d58..d1581a0663c 100755
--- a/java/test/IceDiscovery/simple/run.py
+++ b/java/test/IceDiscovery/simple/run.py
@@ -28,14 +28,7 @@ num = 3
args = " --Ice.Plugin.IceDiscovery=IceDiscovery:IceDiscovery.PluginFactory"
args += " --IceDiscovery.Timeout=30"
args += " --IceDiscovery.RetryCount=1"
-if TestUtil.ipv6:
- #
- # Don't set the interface for the multicast datagrams, this doesn't
- # work with some Linux distributions (CentOS 6.x)
- #
- #args += " --IceDiscovery.Address=\"ff15::1:1\" --IceDiscovery.Interface=\"::1\""
- args += " --IceDiscovery.Address=\"ff15::1:1\""
-else:
+if not TestUtil.ipv6:
args += " --IceDiscovery.Interface=127.0.0.1"
serverProc = []
diff --git a/java/test/IceGrid/simple/AllTests.java b/java/test/IceGrid/simple/AllTests.java
index 88afceacae0..c8d63eb541e 100644
--- a/java/test/IceGrid/simple/AllTests.java
+++ b/java/test/IceGrid/simple/AllTests.java
@@ -141,7 +141,7 @@ public class AllTests
out.println("ok");
IceGrid.RegistryPrx registry = IceGrid.RegistryPrxHelper.checkedCast(
- communicator.stringToProxy("IceGrid/Registry"));
+ communicator.stringToProxy(communicator.getDefaultLocator().ice_getIdentity().category + "/Registry"));
test(registry != null);
IceGrid.AdminSessionPrx session = null;
try
diff --git a/js/src/Ice/PropertyNames.js b/js/src/Ice/PropertyNames.js
index 2584cb90ea1..aab40f7c01b 100644
--- a/js/src/Ice/PropertyNames.js
+++ b/js/src/Ice/PropertyNames.js
@@ -6,7 +6,7 @@
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Thu Jun 5 21:19:31 2014
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Jul 9 18:08:33 2014
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
diff --git a/scripts/IceGridAdmin.py b/scripts/IceGridAdmin.py
index d43452dda19..bca62817559 100644
--- a/scripts/IceGridAdmin.py
+++ b/scripts/IceGridAdmin.py
@@ -14,12 +14,13 @@ from threading import Thread
#
# Set nreplicas to a number N to test replication with N replicas.
#
-#nreplicas=0
-nreplicas=1
+nreplicas=0
+#nreplicas=1
iceGridPort = 12010;
nodeOptions = r' --Ice.Warn.Connections=0' + \
+ r' --IceGrid.InstanceName=TestIceGrid' + \
r' --IceGrid.Node.Endpoints=default' + \
r' --IceGrid.Node.WaitTime=240' + \
r' --Ice.ProgramName=icegridnode' + \
@@ -34,10 +35,11 @@ nodeOptions = r' --Ice.Warn.Connections=0' + \
r' --Ice.ServerIdleTime=0'
registryOptions = r' --Ice.Warn.Connections=0' + \
- r' --IceGrid.Registry.PermissionsVerifier=IceGrid/NullPermissionsVerifier' + \
- r' --IceGrid.Registry.AdminPermissionsVerifier=IceGrid/NullPermissionsVerifier' + \
- r' --IceGrid.Registry.SSLPermissionsVerifier=IceGrid/NullSSLPermissionsVerifier' + \
- r' --IceGrid.Registry.AdminSSLPermissionsVerifier=IceGrid/NullSSLPermissionsVerifier' + \
+ r' --IceGrid.InstanceName=TestIceGrid' + \
+ r' --IceGrid.Registry.PermissionsVerifier=TestIceGrid/NullPermissionsVerifier' + \
+ r' --IceGrid.Registry.AdminPermissionsVerifier=TestIceGrid/NullPermissionsVerifier' + \
+ r' --IceGrid.Registry.SSLPermissionsVerifier=TestIceGrid/NullSSLPermissionsVerifier' + \
+ r' --IceGrid.Registry.AdminSSLPermissionsVerifier=TestIceGrid/NullSSLPermissionsVerifier' + \
r' --IceGrid.Registry.Server.Endpoints=default' + \
r' --IceGrid.Registry.Internal.Endpoints=default' + \
r' --IceGrid.Registry.SessionManager.Endpoints=default' + \
@@ -60,7 +62,7 @@ registryOptions = r' --Ice.Warn.Connections=0' + \
def getDefaultLocatorProperty():
i = 0
- property = '--Ice.Default.Locator="IceGrid/Locator';
+ property = '--Ice.Default.Locator="TestIceGrid/Locator';
objrefs = ""
while i < nreplicas + 1:
objrefs = objrefs + ':default -p ' + str(iceGridPort + i)
diff --git a/slice/IceGrid/Discovery.ice b/slice/IceGrid/Discovery.ice
new file mode 100644
index 00000000000..9d6e2ec572f
--- /dev/null
+++ b/slice/IceGrid/Discovery.ice
@@ -0,0 +1,29 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#pragma once
+
+#include <IceGrid/Locator.ice>
+
+module IceGrid
+{
+
+interface LookupReply
+{
+ void foundLocator(Locator* prx);
+};
+
+interface Lookup
+{
+ idempotent void findLocator(string instanceName, LookupReply* reply);
+
+ Locator* getLocator();
+};
+
+};