= Cross-connection APIs = == The problem == Maestro currently connects to one repository at a time during any one session. There is a whole class of scenarios (such as repository migration) that are currently not possible because of this limitation. == The solution == Introduce a whole set of APIs that operate on more than one IServerConnection instance. An example of such an API {{{ public class CopyResources { public IServerConnection SourceConnection { get; } public IServerConnection TargetConnection { get; } public List SourceResourceIds { get; } public bool CopyResourceContentOnly { get; set; } public bool OverwriteExistingResources { get; set; } public void Execute(MigrateResourcesCallback callback); } }}} Because these APIs work against the IServerConnection interface, you are free to use whatever underlying implementation. Once support is available at the API level, we can then introduce this functionality into the Maestro user interface proper.