Search in sources :

Example 1 with ClientAdapterFactory

use of org.apache.jackrabbit.rmi.client.ClientAdapterFactory in project jackrabbit by apache.

the class RepositoryStubImpl method getRepository.

@Override
public synchronized Repository getRepository() throws RepositoryStubException {
    if (repository == null) {
        try {
            Repository repo = super.getRepository();
            principal = findKnownPrincipal(repo);
            RemoteAdapterFactory raf = new ServerAdapterFactory();
            remote = raf.getRemoteRepository(repo);
            // Make sure that the remote reference survives serialization
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(buffer);
            oos.writeObject(RemoteObject.toStub(remote));
            oos.close();
            ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
            LocalAdapterFactory laf = new ClientAdapterFactory();
            repository = laf.getRepository((RemoteRepository) ois.readObject());
        } catch (Exception e) {
            throw new RepositoryStubException(e);
        }
    }
    return repository;
}
Also used : Repository(javax.jcr.Repository) RemoteRepository(org.apache.jackrabbit.rmi.remote.RemoteRepository) ByteArrayInputStream(java.io.ByteArrayInputStream) RemoteRepository(org.apache.jackrabbit.rmi.remote.RemoteRepository) RepositoryStubException(org.apache.jackrabbit.test.RepositoryStubException) RemoteAdapterFactory(org.apache.jackrabbit.rmi.server.RemoteAdapterFactory) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ClientAdapterFactory(org.apache.jackrabbit.rmi.client.ClientAdapterFactory) ObjectOutputStream(java.io.ObjectOutputStream) LocalAdapterFactory(org.apache.jackrabbit.rmi.client.LocalAdapterFactory) ServerAdapterFactory(org.apache.jackrabbit.rmi.server.ServerAdapterFactory) RepositoryStubException(org.apache.jackrabbit.test.RepositoryStubException) RepositoryException(javax.jcr.RepositoryException) ObjectInputStream(java.io.ObjectInputStream)

Example 2 with ClientAdapterFactory

use of org.apache.jackrabbit.rmi.client.ClientAdapterFactory in project jackrabbit by apache.

the class ConnectToJNDIServer method execute.

/**
	 * {@inheritDoc}
	 */
public boolean execute(Context ctx) throws Exception {
    String url = (String) ctx.get(this.urlKey);
    if (log.isDebugEnabled()) {
        log.debug("connecting to jndi server at " + url);
    }
    InitialContext iCtx = new InitialContext();
    ClientAdapterFactory adapter = new ClientAdapterFactory();
    RemoteRepository remote = (RemoteRepository) iCtx.lookup(url);
    Repository repo = adapter.getRepository(remote);
    CommandHelper.setRepository(ctx, repo, "jndi " + url);
    return false;
}
Also used : Repository(javax.jcr.Repository) RemoteRepository(org.apache.jackrabbit.rmi.remote.RemoteRepository) RemoteRepository(org.apache.jackrabbit.rmi.remote.RemoteRepository) ClientAdapterFactory(org.apache.jackrabbit.rmi.client.ClientAdapterFactory) InitialContext(javax.naming.InitialContext)

Aggregations

Repository (javax.jcr.Repository)2 ClientAdapterFactory (org.apache.jackrabbit.rmi.client.ClientAdapterFactory)2 RemoteRepository (org.apache.jackrabbit.rmi.remote.RemoteRepository)2 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 ObjectInputStream (java.io.ObjectInputStream)1 ObjectOutputStream (java.io.ObjectOutputStream)1 RepositoryException (javax.jcr.RepositoryException)1 InitialContext (javax.naming.InitialContext)1 LocalAdapterFactory (org.apache.jackrabbit.rmi.client.LocalAdapterFactory)1 RemoteAdapterFactory (org.apache.jackrabbit.rmi.server.RemoteAdapterFactory)1 ServerAdapterFactory (org.apache.jackrabbit.rmi.server.ServerAdapterFactory)1 RepositoryStubException (org.apache.jackrabbit.test.RepositoryStubException)1