class RcpTaskManagerImpl implements RcpTaskManager {

    @Override
    public RcpTask editTask(@NotNull String taskId, @Nullable RepositoryAddress src, @Nullable ConnectionOptions connectionOptions, @Nullable Credentials srcCreds, @Nullable String dst, @Nullable List<String> excludes,
            @Nullable WorkspaceFilter srcFilter, @Nullable Boolean recursive) throws ConfigurationException {
        RcpTaskImpl oldTask = tasks.get(taskId);
        if (oldTask == null) {
            throw new IllegalArgumentException("No such task with id='" + taskId + "'");
        }
        RcpTaskImpl newTask = new RcpTaskImpl(oldTask, src, connectionOptions, srcCreds, dst, excludes, srcFilter, recursive);
        tasks.put(taskId, newTask);
        persistTasks();
        return newTask;
    }

    public  RcpTaskManagerImpl();
    public  RcpTaskManagerImpl(BundleContext bundleContext, ConfigurationAdmin configurationAdmin, Map <String, Object> newConfigProperties);

}