jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anibal Sanchez <anibal.sanc...@oquma.com>
Subject JnpClientRepositoryFactory
Date Wed, 16 Dec 2009 10:39:01 GMT
Hi,

I have a question, how do you connect to RMI repository at a JNP address
with Jboss AS ? Which is the standard way ?

To solve the problem I've created a new class JnpClientRepositoryFactory.
Changing the getRepository method to:

/**
     * Returns a client wrapper for a remote content repository. The remote
     * repository is looked up from the RMI registry using the given URL by
     * the returned {@link SafeClientRepository} instance.
     * <p>
     * The current implementation of this method will not throw any of the
     * declared exceptions (because of the {@link SafeClientRepository}
being
     * used), but the throws clauses are kept for backwards compatibility
and
     * potential future use. Clients should be prepared to handle exceptions
     * from this method.
     *
     * @param url the RMI URL of the remote repository
     * @return repository client
     * @throws MalformedURLException if the given URL is malfored
     * @throws NotBoundException if the given URL points to nothing
     * @throws ClassCastException if the given URL points to something
unknown
     * @throws RemoteException if the remote repository can not be accessed
     */
    public Repository getRepository(final String initial_context_factory,
final String provider_url, final String url_pkg_prefixes, final String url)
            throws MalformedURLException, NotBoundException,
            ClassCastException, RemoteException {
        return new SafeClientRepository(factory) {

            protected RemoteRepository getRemoteRepository()
                    throws RemoteException {
                try {
                Properties env = new Properties();
                env.put(Context.INITIAL_CONTEXT_FACTORY,
initial_context_factory);
                env.put(Context.PROVIDER_URL, provider_url);
                env.put(Context.URL_PKG_PREFIXES, url_pkg_prefixes);
                InitialContext ctx = new InitialContext(env);

                return  (RemoteRepository) ctx.lookup(url);
                } catch (NamingException e) {
                    throw new RemoteException("JnpClientRepositoryFactory -
Not found URL: " + url, e);
                } catch (ClassCastException e) {
                    throw new RemoteException("JnpClientRepositoryFactory -
Unknown target: " + url, e);
                }
            }

        };
    }



Thanks,
Anibal

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message