Repository: incubator-reef
Updated Branches:
  refs/heads/master 492da34a0 -> 578a043e6


[REEF-202] Fix NameClient injection issue in Group Communication

This PR is to fix NameClient injection issue in Group Communication
* Make NameClient injectable in NetworkService
* Set configuration in MpiDriver
* Update test cases

JIRA:
  [REEF-202](https://issues.apache.org/jira/browse/REEF-202)

Pull Request:
  This closes #108


Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/578a043e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/578a043e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/578a043e

Branch: refs/heads/master
Commit: 578a043e67ac78bd43533e94d77770a4863ed60c
Parents: 492da34
Author: Julia Wang <[email protected]>
Authored: Wed Mar 11 16:15:07 2015 -0700
Committer: Markus Weimer <[email protected]>
Committed: Thu Mar 19 17:52:01 2015 -0700

----------------------------------------------------------------------
 .../Group/Driver/Impl/MpiDriver.cs                  |  2 ++
 .../Group/Task/Impl/OperatorTopology.cs             |  2 +-
 .../NetworkService/NetworkService.cs                |  9 +++++----
 .../Network/GroupCommunicationTests.cs              |  3 +--
 .../Network/NetworkServiceTests.cs                  | 16 ++++++++++++++--
 5 files changed, 23 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/578a043e/lang/cs/Org.Apache.REEF.Network/Group/Driver/Impl/MpiDriver.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Network/Group/Driver/Impl/MpiDriver.cs 
b/lang/cs/Org.Apache.REEF.Network/Group/Driver/Impl/MpiDriver.cs
index 291b7d6..77944a7 100644
--- a/lang/cs/Org.Apache.REEF.Network/Group/Driver/Impl/MpiDriver.cs
+++ b/lang/cs/Org.Apache.REEF.Network/Group/Driver/Impl/MpiDriver.cs
@@ -201,6 +201,8 @@ namespace Org.Apache.REEF.Network.Group.Driver.Impl
                 .BindNamedParameter<NamingConfigurationOptions.NameServerPort, 
int>(
                     
GenericType<NamingConfigurationOptions.NameServerPort>.Class, 
                     _nameServerPort.ToString(CultureInfo.InvariantCulture))
+                .BindImplementation(GenericType<INameClient>.Class,
+                    GenericType<NameClient>.Class)
                 .Build();
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/578a043e/lang/cs/Org.Apache.REEF.Network/Group/Task/Impl/OperatorTopology.cs
----------------------------------------------------------------------
diff --git 
a/lang/cs/Org.Apache.REEF.Network/Group/Task/Impl/OperatorTopology.cs 
b/lang/cs/Org.Apache.REEF.Network/Group/Task/Impl/OperatorTopology.cs
index 088e2e7..07d8376 100644
--- a/lang/cs/Org.Apache.REEF.Network/Group/Task/Impl/OperatorTopology.cs
+++ b/lang/cs/Org.Apache.REEF.Network/Group/Task/Impl/OperatorTopology.cs
@@ -64,7 +64,7 @@ namespace Org.Apache.REEF.Network.Group.Task.Impl
         private readonly INameClient _nameClient;
         private readonly Sender _sender;
         private readonly BlockingCollection<NodeStruct> _nodesWithData;
-            
+
         /// <summary>
         /// Creates a new OperatorTopology object.
         /// </summary>

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/578a043e/lang/cs/Org.Apache.REEF.Network/NetworkService/NetworkService.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Network/NetworkService/NetworkService.cs 
b/lang/cs/Org.Apache.REEF.Network/NetworkService/NetworkService.cs
index 3f4ded6..6d4c0a4 100644
--- a/lang/cs/Org.Apache.REEF.Network/NetworkService/NetworkService.cs
+++ b/lang/cs/Org.Apache.REEF.Network/NetworkService/NetworkService.cs
@@ -60,11 +60,10 @@ namespace Org.Apache.REEF.Network.NetworkService
         [Inject]
         public NetworkService(
             [Parameter(typeof(NetworkServiceOptions.NetworkServicePort))] int 
nsPort,
-            [Parameter(typeof(NamingConfigurationOptions.NameServerAddress))] 
string nameServerAddr,
-            [Parameter(typeof(NamingConfigurationOptions.NameServerPort))] int 
nameServerPort,
             IObserver<NsMessage<T>> messageHandler,
             IIdentifierFactory idFactory,
-            ICodec<T> codec)
+            ICodec<T> codec,
+            INameClient nameClient)
         {
             _codec = new NsMessageCodec<T>(codec, idFactory);
 
@@ -72,7 +71,7 @@ namespace Org.Apache.REEF.Network.NetworkService
             _remoteManager = new 
DefaultRemoteManager<NsMessage<T>>(localAddress, nsPort, _codec);
             _messageHandler = messageHandler;
 
-            NamingClient = new NameClient(nameServerAddr, nameServerPort);
+            NamingClient = nameClient;
             _connectionMap = new Dictionary<IIdentifier, IConnection<T>>();
 
             LOGGER.Log(Level.Info, "Started network service");
@@ -123,6 +122,8 @@ namespace Org.Apache.REEF.Network.NetworkService
             // Create and register incoming message handler
             var anyEndpoint = new IPEndPoint(IPAddress.Any, 0);
             _messageHandlerDisposable = 
_remoteManager.RegisterObserver(anyEndpoint, _messageHandler);
+
+            LOGGER.Log(Level.Info, "End of Registering id {0} with network 
service.", id);
         }
 
         /// <summary>

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/578a043e/lang/cs/Org.Apache.REEF.Tests/Network/GroupCommunicationTests.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tests/Network/GroupCommunicationTests.cs 
b/lang/cs/Org.Apache.REEF.Tests/Network/GroupCommunicationTests.cs
index 8768297..2dc9445 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Network/GroupCommunicationTests.cs
+++ b/lang/cs/Org.Apache.REEF.Tests/Network/GroupCommunicationTests.cs
@@ -696,8 +696,7 @@ namespace Org.Apache.REEF.Tests.Network
             IPEndPoint nameServerEndpoint, 
IObserver<NsMessage<GroupCommunicationMessage>> handler)
         {
             return new NetworkService<GroupCommunicationMessage>(
-                0, nameServerEndpoint.Address.ToString(), 
nameServerEndpoint.Port, 
-                handler, new StringIdentifierFactory(), new 
GroupCommunicationMessageCodec());
+                0, handler, new StringIdentifierFactory(), new 
GroupCommunicationMessageCodec(), new 
NameClient(nameServerEndpoint.Address.ToString(), nameServerEndpoint.Port));
         }
 
         private GroupCommunicationMessage CreateGcm(string message, string 
from, string to)

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/578a043e/lang/cs/Org.Apache.REEF.Tests/Network/NetworkServiceTests.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tests/Network/NetworkServiceTests.cs 
b/lang/cs/Org.Apache.REEF.Tests/Network/NetworkServiceTests.cs
index 2427a05..75f07c3 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Network/NetworkServiceTests.cs
+++ b/lang/cs/Org.Apache.REEF.Tests/Network/NetworkServiceTests.cs
@@ -139,6 +139,7 @@ namespace Org.Apache.REEF.Tests.Network
                     
.BindNamedParameter<NamingConfigurationOptions.NameServerAddress, string>(
                         
GenericType<NamingConfigurationOptions.NameServerAddress>.Class,
                         nameServiceAddr)
+                    .BindImplementation(GenericType<INameClient>.Class, 
GenericType<NameClient>.Class)
                     .BindImplementation(GenericType<ICodec<string>>.Class, 
GenericType<StringCodec>.Class)
                     
.BindImplementation(GenericType<IObserver<NsMessage<string>>>.Class, 
GenericType<NetworkMessageHandler>.Class)
                     .Build();
@@ -146,8 +147,19 @@ namespace Org.Apache.REEF.Tests.Network
                 return 
TangFactory.GetTang().NewInjector(networkServiceConf).GetInstance<NetworkService<string>>();
             }
 
-            return new NetworkService<string>(networkServicePort, 
nameServiceAddr, nameServicePort, 
-                handler, new StringIdentifierFactory(), new StringCodec());
+            var nameserverConf = 
TangFactory.GetTang().NewConfigurationBuilder()
+             .BindNamedParameter<NamingConfigurationOptions.NameServerPort, 
int>(
+                 GenericType<NamingConfigurationOptions.NameServerPort>.Class,
+                 nameServicePort.ToString(CultureInfo.CurrentCulture))
+             .BindNamedParameter<NamingConfigurationOptions.NameServerAddress, 
string>(
+                 
GenericType<NamingConfigurationOptions.NameServerAddress>.Class,
+                 nameServiceAddr)
+             .BindImplementation(GenericType<INameClient>.Class, 
GenericType<NameClient>.Class)
+             .Build();
+
+            var nameClient = 
TangFactory.GetTang().NewInjector(nameserverConf).GetInstance<NameClient>();
+            return new NetworkService<string>(networkServicePort,
+                handler, new StringIdentifierFactory(), new StringCodec(), 
nameClient);
         }
 
         private class MessageHandler : IObserver<NsMessage<string>>

Reply via email to