You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by we...@apache.org on 2016/01/22 01:12:59 UTC
reef git commit: [REEF-1079] Fix TestNamedParameterWithAliasRoundTrip
test failures
Repository: reef
Updated Branches:
refs/heads/master ad896d195 -> da0936ea4
[REEF-1079] Fix TestNamedParameterWithAliasRoundTrip test failures
This change:
* removes caching of default class hierarchy from TangImpl and related code.
This fixes TestNamedParameterWithAliasRoundTrip failures, which were
caused by multiple tests sharing the same class hierarchy object.
* fixes TestDeserializedConfigMerge test which relied on caching behavior.
JIRA:
[REEF-1079](https://issues.apache.org/jira/browse/REEF-1079)
Pull request:
This closes #779
Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/da0936ea
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/da0936ea
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/da0936ea
Branch: refs/heads/master
Commit: da0936ea4a20775e9287619c05a270a5b115a7e8
Parents: ad896d1
Author: Mariia Mykhailova <ma...@apache.org>
Authored: Thu Jan 14 16:18:36 2016 -0800
Committer: Markus Weimer <we...@apache.org>
Committed: Thu Jan 21 16:10:46 2016 -0800
----------------------------------------------------------------------
.../ClassHierarchy/TestAnonymousType.cs | 6 ------
.../ClassHierarchy/TestClassHierarchy.cs | 1 -
.../ClassHierarchy/TestGeneric.cs | 5 -----
.../Configuration/TestConfiguration.cs | 11 ++++++----
.../Injection/TestMultipleConstructors.cs | 6 ------
.../Implementations/Tang/TangImpl.cs | 22 +-------------------
6 files changed, 8 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestAnonymousType.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestAnonymousType.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestAnonymousType.cs
index 1cdb0f3..15ab768 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestAnonymousType.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestAnonymousType.cs
@@ -31,12 +31,6 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
{
const string ClassHierarchyBinFileName = "example.bin";
- [ClassInitialize]
- public static void ClassSetup(TestContext context)
- {
- TangImpl.Reset();
- }
-
[TestMethod]
public void TestAnonymousTypeWithDictionary()
{
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestClassHierarchy.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestClassHierarchy.cs
index b76a1fd..42a7b50 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestClassHierarchy.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestClassHierarchy.cs
@@ -38,7 +38,6 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
{
if (ns == null)
{
- TangImpl.Reset();
ns = TangFactory.GetTang().GetClassHierarchy(new string[] { FileNames.Examples, FileNames.Common, FileNames.Tasks });
}
}
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestGeneric.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestGeneric.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestGeneric.cs
index 518bcc5..8930356 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestGeneric.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestGeneric.cs
@@ -25,11 +25,6 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
{
public class TestGeneric
{
- public TestGeneric()
- {
- TangImpl.Reset();
- }
-
[Fact]
public void TestGenericClassWithT()
{
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestConfiguration.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestConfiguration.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestConfiguration.cs
index 3f6e380..0c10dfd 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestConfiguration.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestConfiguration.cs
@@ -51,19 +51,22 @@ namespace Org.Apache.REEF.Tang.Tests.Configuration
var serializer = new AvroConfigurationSerializer();
serializer.ToFile(conf1, "task.config");
+ ProtocolBufferClassHierarchy.Serialize("Task.bin", conf1.GetClassHierarchy());
+ IClassHierarchy ns1 = ProtocolBufferClassHierarchy.DeSerialize("Task.bin");
+
ICsConfigurationBuilder cb2 = tang.NewConfigurationBuilder();
cb2.BindNamedParameter<Timer.Seconds, int>(GenericType<Timer.Seconds>.Class, "2");
IConfiguration conf2 = cb2.Build();
serializer.ToFile(conf2, "timer.config");
- ProtocolBufferClassHierarchy.Serialize("TaskTimer.bin", conf1.GetClassHierarchy());
- IClassHierarchy ns = ProtocolBufferClassHierarchy.DeSerialize("TaskTimer.bin");
+ ProtocolBufferClassHierarchy.Serialize("Timer.bin", conf2.GetClassHierarchy());
+ IClassHierarchy ns2 = ProtocolBufferClassHierarchy.DeSerialize("Timer.bin");
AvroConfiguration taskAvroconfiguration = serializer.AvroDeserializeFromFile("task.config");
- IConfiguration taskConfiguration = serializer.FromAvro(taskAvroconfiguration, ns);
+ IConfiguration taskConfiguration = serializer.FromAvro(taskAvroconfiguration, ns1);
AvroConfiguration timerAvroconfiguration = serializer.AvroDeserializeFromFile("timer.config");
- IConfiguration timerConfiguration = serializer.FromAvro(timerAvroconfiguration, ns);
+ IConfiguration timerConfiguration = serializer.FromAvro(timerAvroconfiguration, ns2);
IConfiguration merged = Configurations.MergeDeserializedConfs(taskConfiguration, timerConfiguration);
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang.Tests/Injection/TestMultipleConstructors.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Injection/TestMultipleConstructors.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/Injection/TestMultipleConstructors.cs
index 8893249..62b9ff0 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Injection/TestMultipleConstructors.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/Injection/TestMultipleConstructors.cs
@@ -190,7 +190,6 @@ namespace Org.Apache.REEF.Tang.Tests.Injection
[Fact]
public void TestMultiLayersWithMiddleLayerFirst()
{
- TangImpl.Reset();
ICsConfigurationBuilder cb2 = TangFactory.GetTang().NewConfigurationBuilder();
cb2.BindImplementation(typeof(IH), typeof(M));
IInjector i2 = TangFactory.GetTang().NewInjector(cb2.Build());
@@ -207,7 +206,6 @@ namespace Org.Apache.REEF.Tang.Tests.Injection
[Fact]
public void TestMultiLayersWithLowerLayerFirst()
{
- TangImpl.Reset();
ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();
cb.BindImplementation(typeof(IH), typeof(L));
IInjector i = TangFactory.GetTang().NewInjector(cb.Build());
@@ -224,8 +222,6 @@ namespace Org.Apache.REEF.Tang.Tests.Injection
[Fact]
public void TestMultiLayersWithBindImpl()
{
- TangImpl.Reset();
-
ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();
cb.BindImplementation(typeof(IH), typeof(L));
IInjector i = TangFactory.GetTang().NewInjector(cb.Build());
@@ -243,8 +239,6 @@ namespace Org.Apache.REEF.Tang.Tests.Injection
[Fact]
public void TestMultiLayersWithNoInjectableDefaultConstructor()
{
- TangImpl.Reset();
-
ICsConfigurationBuilder cb = TangFactory.GetTang().NewConfigurationBuilder();
cb.BindImplementation(typeof(IH), typeof(L1));
IInjector i = TangFactory.GetTang().NewInjector(cb.Build());
http://git-wip-us.apache.org/repos/asf/reef/blob/da0936ea/lang/cs/Org.Apache.REEF.Tang/Implementations/Tang/TangImpl.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Implementations/Tang/TangImpl.cs b/lang/cs/Org.Apache.REEF.Tang/Implementations/Tang/TangImpl.cs
index e32ed84..0522fb9 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Implementations/Tang/TangImpl.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Implementations/Tang/TangImpl.cs
@@ -32,9 +32,6 @@ namespace Org.Apache.REEF.Tang.Implementations.Tang
{
private static readonly Logger LOGGER = Logger.GetLogger(typeof(TangImpl));
- private static IDictionary<SetValuedKey, ICsClassHierarchy> defaultClassHierarchy = new Dictionary<SetValuedKey, ICsClassHierarchy>();
-
- private static object classHierarchyLock = new object();
public IInjector NewInjector()
{
try
@@ -128,19 +125,7 @@ namespace Org.Apache.REEF.Tang.Implementations.Tang
public ICsClassHierarchy GetDefaultClassHierarchy(string[] assemblies, Type[] parameterParsers)
{
- SetValuedKey key = new SetValuedKey(assemblies, parameterParsers);
-
- ICsClassHierarchy ret = null;
- lock (classHierarchyLock)
- {
- defaultClassHierarchy.TryGetValue(key, out ret);
- if (ret == null)
- {
- ret = new ClassHierarchyImpl(assemblies, parameterParsers);
- defaultClassHierarchy.Add(key, ret);
- }
- }
- return ret;
+ return new ClassHierarchyImpl(assemblies, parameterParsers);
}
public ICsConfigurationBuilder NewConfigurationBuilder()
@@ -197,10 +182,5 @@ namespace Org.Apache.REEF.Tang.Implementations.Tang
{
return NewConfigurationBuilder(new string[0], new IConfiguration[0], parameterParsers);
}
-
- public static void Reset()
- {
- defaultClassHierarchy = new Dictionary<SetValuedKey, ICsClassHierarchy>();
- }
}
}