Hola a todos.
Creo que ya he solucionado lo de conectar dos Alfrescos a la vez (por lo menos para listar documentos funciona).
Es tan tonto como crear una clase así por ejemplo:
<java>
public class AlfrescoConn {
public AlfrescoConn(String alfUrl, String alfUsername, String alfPassword) throws AuthenticationFault{
WebServiceFactory.setEndpointAddress(alfUrl);
AuthenticationUtils.startSession(alfUsername, alfPassword);
}
public void close(){
AuthenticationUtils.endSession();
}
public QueryResult executeQuery(Store STORE, Query query) throws RepositoryFault, RemoteException{
RepositoryServiceSoapBindingStub repositoryService = WebServiceFactory.getRepositoryService();
return repositoryService.query(STORE, query, false);
}
}
</java>
Y utilizarla para crear dos objetos, uno será el Alfresco de Origen y otro el de Destino:
<java>
public static void main(String [] args){
AlfrescoConn alfSource = null;
AlfrescoConn alfTarget = null;
try{
alfSource = new AlfrescoConn(SOURCE_URL, SOURCE_USERNAME, SOURCE_PASSWORD);
QueryResult queryResult1 = alfSource.executeQuery(STORE, new Query(QUERY_LANG_LUCENE, "<BUSQUEDA>");
ResultSet resultSet1 = queryResult1.getResultSet();
alfTarget = new AlfrescoConn(TARGET_URL, TARGET_USERNAME, TARGET_PASSWORD);
QueryResult queryResult2 = alfTarget.executeQuery(STORE, new Query(QUERY_LANG_LUCENE, "<BUSQUEDA>");
ResultSet resultSet2 = queryResult2.getResultSet();
} catch (Exception e) {
e.printStacktrace();
} finally {
if(alfSource != null){
alfSource.close();
}
if(alfTarget != null){
alfTarget.close();
}
}
}
</java>
El código que he puesto no tiene mucho sentido, es sólo para probar. Si se hace resultSet.getTotalRowCount() de cada Alfresoo, da un numero distinto y coincidente con el que que tiene cada Alfresco.