diff --git a/Duplicati/Library/DynamicLoader/BackendLoader.cs b/Duplicati/Library/DynamicLoader/BackendLoader.cs
index 592bb9706..2185179a5 100644
--- a/Duplicati/Library/DynamicLoader/BackendLoader.cs
+++ b/Duplicati/Library/DynamicLoader/BackendLoader.cs
@@ -183,5 +183,14 @@ namespace Duplicati.Library.DynamicLoader
return _backendLoader.GetBackend(url, options);
}
#endregion
+
+ ///
+ /// Adds a backend to the loader
+ ///
+ /// The backend to add
+ public static void AddBackend(IBackend backend)
+ {
+ _backendLoader.AddModule(backend);
+ }
}
}
diff --git a/Duplicati/Library/DynamicLoader/DynamicLoader.cs b/Duplicati/Library/DynamicLoader/DynamicLoader.cs
index 4a6e8d4ee..56b9af9b8 100644
--- a/Duplicati/Library/DynamicLoader/DynamicLoader.cs
+++ b/Duplicati/Library/DynamicLoader/DynamicLoader.cs
@@ -233,5 +233,16 @@ namespace Duplicati.Library.DynamicLoader
return m_supportedCommands[type] = item.SupportedCommands.ToList().AsReadOnly();
}
}
+
+ ///
+ /// Helper method to register a module
+ ///
+ /// The module to register
+ public void AddModule(T module)
+ {
+ LoadInterfaces();
+ lock (m_lock)
+ m_interfaces[GetInterfaceKey(module)] = module;
+ }
}
}
diff --git a/Duplicati/UnitTest/GeneralBlackBoxTesting.cs b/Duplicati/UnitTest/GeneralBlackBoxTesting.cs
index c87dfd331..3c67d8a6b 100644
--- a/Duplicati/UnitTest/GeneralBlackBoxTesting.cs
+++ b/Duplicati/UnitTest/GeneralBlackBoxTesting.cs
@@ -147,6 +147,7 @@ namespace Duplicati.UnitTest
var u = new Library.Utility.Uri(TestUtils.GetDefaultTarget());
RandomErrorBackend.WrappedBackend = u.Scheme;
var target = u.SetScheme(new RandomErrorBackend().ProtocolKey).ToString();
+ Library.DynamicLoader.BackendLoader.AddBackend(new RandomErrorBackend());
SVNCheckoutTest.RunTest(TestFolders.Take(5).ToArray(), TestOptions, target);
}
@@ -158,6 +159,7 @@ namespace Duplicati.UnitTest
var u = new Library.Utility.Uri(TestUtils.GetDefaultTarget());
SizeOmittingBackend.WrappedBackend = u.Scheme;
var target = u.SetScheme(new SizeOmittingBackend().ProtocolKey).ToString();
+ Library.DynamicLoader.BackendLoader.AddBackend(new SizeOmittingBackend());
SVNCheckoutTest.RunTest(TestFolders.Take(5).ToArray(), TestOptions, target);
}