terça-feira, 28 de maio de 2013

Como obter o repositoryId de uma instância do Alfresco

Olá, pessoal.

Para conectarmos uma aplicação a uma instância do Alfresco, via API CMIS, um dos parâmetros requeridos para a abertura da sessão é o REPOSITORY_ID, conforme podemos ver na documentação do ApacheChemistry:
// default factory implementation
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameter = new HashMap<String, String>();

// user credentials
parameter.put(SessionParameter.USER, "Otto");
parameter.put(SessionParameter.PASSWORD, "****");

// connection settings
parameter.put(SessionParameter.ATOMPUB_URL, "http://<host>:<port>/cmis/atom");
parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameter.put(SessionParameter.REPOSITORY_ID, "myRepository");

// create session
Session session = factory.createSession(parameter);

Para descobrir o REPOSITORY_ID da instância que você precisa conectar basta executar o seguinte comando em um terminal:

curl -uadmin:admin "http://localhost:8080/alfresco/s/cmis" | grep repositoryId

O REPOSITORY_ID será retornado entre as tags <cmis:repositoryId>...</cmis:repositoryId>.
O comando acima supõe que a instância possui um usuário administrador cujo login é admin e a senha é admin. E que a instância está rodando na máquina local na porta 8080.