class WorkItemDefinitionRemoteDeployService implements WorkItemDefinitionDeployService {

    @Override
    public void deploy(final Metadata metadata) {
        deploy(metadata,
               System.getProperty(PROPERTY_SERVICE_REPO),
               System.getProperty(PROPERTY_SERVICE_REPO_TASKNAMES));
    }

    protected  WorkItemDefinitionRemoteDeployService();
    @Inject public  WorkItemDefinitionRemoteDeployService(final WorkItemDefinitionService<WorkItemDefinitionRemoteRequest> remoteLookupService,
                                                 final BackendFileSystemManager backendFileSystemManager,
                                                 final WorkItemDefinitionResources resources,
                                                 final WorkItemDefinitionProjectInstaller projectInstaller);
      WorkItemDefinitionRemoteDeployService(final WorkItemDefinitionService<WorkItemDefinitionRemoteRequest> remoteLookupService,
                                          final BackendFileSystemManager backendFileSystemManager,
                                          final WorkItemDefinitionResources resources,
                                          final WorkItemDefinitionProjectInstaller projectInstaller,
                                          final Function<WorkItemDefinition, Asset> widAssetBuilder,
                                          final Function<WorkItemDefinition, Asset> iconAssetBuilder);

}