001/**
002 *
003 */
004
005package org.nuxeo.drive.operations;
006
007import java.util.ArrayList;
008import java.util.Collections;
009import java.util.List;
010
011import org.nuxeo.ecm.automation.core.Constants;
012import org.nuxeo.ecm.automation.core.annotations.Context;
013import org.nuxeo.ecm.automation.core.annotations.Operation;
014import org.nuxeo.ecm.automation.core.annotations.OperationMethod;
015import org.nuxeo.ecm.core.api.repository.RepositoryManager;
016
017/**
018 * Fetch the list of the repositories registered on the server. TODO: move this to the list of default operations in
019 * 5.7.
020 */
021@Operation(id = GetRepositoriesOperation.ID, category = Constants.CAT_FETCH, label = "List repository names on the server")
022public class GetRepositoriesOperation {
023
024    public static final String ID = "GetRepositories";
025
026    @Context
027    protected RepositoryManager repositoryManager;
028
029    @OperationMethod
030    public List<String> run() {
031        List<String> repositoryNames = new ArrayList<String>(repositoryManager.getRepositoryNames());
032        // Make order deterministic to make it simpler to write tests.
033        Collections.sort(repositoryNames);
034        return repositoryNames;
035    }
036
037}