Yes, I forgot to include the file on the new jar.

In the end my solution was to create the following class

/**
 *
 */
package org.apache.hivemind.util;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hivemind.ApplicationRuntimeException;

/**
 * @author Pedro da Silva Garcia
 *
 */
public final class OC4JPatch {
    private static Log log = LogFactory.getLog(OC4JPatch.class);

    /**
     *
     */
    private OC4JPatch() {
        super();
    }

    public static String checkPath(String path) {
        if (path == null)
            return null;
        URL url = check(path, null);
        return url == null ? null : url.toString();
    }

    public static URL checkURL(URL url) {
        if (url == null)
            return null;
        return check(null, url);
    }

    private static URL check(String path, URL url) {
        try {
            log.debug("Checando path: " + path);
            if (path == null) {
                path = url.toString();
            }

            if (path.startsWith("jndi:")) {

                url = null;

                int endOfJar = path.indexOf(".jar") + 4;

                StringBuffer buf = new StringBuffer();

                if (endOfJar > -1)
                    buf.append("jar:");

                buf.append("file:///");

                buf.append(path.substring(5, endOfJar)).append("!").append(
path.substring(endOfJar));

                String newpath = buf.toString();
                log.debug("Alterando path \n De: " + path + "\n Para: " +
newpath);

                path = newpath;
            }

            if (url == null) {
                url = new URL(path);
            }

            InputStream stream = url.openStream();
            if (stream != null)
                stream.close();

            return url;
        } catch (MalformedURLException ex) {
            throw new ApplicationRuntimeException(ex);
        } catch (IOException ex) {
            // If the resource can't be opened,
            // then return null.
        }
        return null;
    }
}

and call it on

org.apache.hivemind.impl.XmlModuleDescriptorProvider

    private List getDescriptorResources(String resourcePath, ClassResolver
resolver) {
        if (LOG.isDebugEnabled())
            LOG.debug("Processing modules visible to " + resolver);

        List descriptors = new ArrayList();

        ClassLoader loader = resolver.getClassLoader();
        Enumeration e = null;

        try {
            e = loader.getResources(resourcePath);
        } catch (IOException ex) {
            throw new ApplicationRuntimeException(
ImplMessages.unableToFindModules(resolver, ex), ex);
        }

        while (e.hasMoreElements()) {
            URL descriptorURL = OC4JPatch.checkURL((URL) e.nextElement());

            descriptors.add(new URLResource(descriptorURL));
        }

        return descriptors;
    }

and on


org.apache.hivemind.util.URLResource

    public URLResource(String path) {
        super(OC4JPatch.checkPath(path));
    }

Now with this code in the maling list I hope anyone else that get the same
problem with OC4J 10.0.2 can find a way to work around it.

And James thank you very much for your attention.
Later,
Pedro


On 4/24/06, James Carman <[EMAIL PROTECTED]> wrote:
>
> Well, did you figure it out?  Was it not on the classpath?
>
> -----Original Message-----
> From: Pedro Garcia [mailto:[EMAIL PROTECTED]
> Sent: Monday, April 24, 2006 10:55 AM
> To: Tapestry users
> Subject: Re: Help me!!!!
>
> Thanks for the help
>
>
> On 4/24/06, James Carman <[EMAIL PROTECTED]> wrote:
> >
> > Nah, it just needs to be able to find the META-INF/hivemodule.xml file
> in
> > there.  The jar file name doesn't matter.
> >
> > -----Original Message-----
> > From: Pedro Garcia [mailto:[EMAIL PROTECTED]
> > Sent: Monday, April 24, 2006 10:35 AM
> > To: Tapestry users
> > Subject: Re: Help me!!!!
> >
> > I've changed its name.
> > Could this be the cause?
> >
> > On 4/24/06, James Carman <[EMAIL PROTECTED]> wrote:
> > >
> > > Your hivemind.jar is not on your classpath (or at least HiveMind
> doesn't
> > > think it is).
> > >
> > > -----Original Message-----
> > > From: Pedro Garcia [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, April 24, 2006 10:27 AM
> > > To: [EMAIL PROTECTED];
> > > tapestry-user@jakarta.apache.org
> > > Subject: Help me!!!!
> > >
> > > Hi I am having a very hard time to make hivemind 1.1.1 to work with
> > > Tapestry
> > > 4.0.1 on OC4J 10.0.2.
> > > I've changed the URLs from jndi: to jar:file:/// on URLResource just
> > like
> > > it
> > > was mentioned by Jan Vissers to Simon Buettner on
> jakarta-tapestry-user
> > > mailing list, but now I am getting another error. Does any one knows
> how
> > > to
> > > solve this error.
> > >
> > > [java] **********************************************************
> > >      [java] 06/04/24 11:06:58
> > > org.apache.hivemind.ApplicationRuntimeException: Error at
> > > jar:file:///...\tapestry-4.0.1.jar!/META-INF/hivemodule.xml, line 22,
> > > column
> > > 53: Required module hivemind does not exist.
> > >      [java] 06/04/24 11:06:58    location: jar:file:///...\tapestry-
> > > 4.0.1.jar!/META-INF/hivemodule.xml, line 22, column 53
> > >      [java] 06/04/24 11:06:58
> > > org.apache.hivemind.impl.StrictErrorHandler.error(
> > StrictErrorHandler.java
> > > :34)
> > >      [java] 06/04/24 11:06:58
> > >
> > >
> >
> >
>
> org.apache.hivemind.impl.RegistryInfrastructureConstructor$ModuleDependencyC
> > > hecker.checkDependency
> > > (RegistryInfrastructureConstructor.java:134)
> > >      [java] 06/04/24 11:06:58
> > >
> > >
> >
> >
>
> org.apache.hivemind.impl.RegistryInfrastructureConstructor$ModuleDependencyC
> > > hecker.run
> > > (RegistryInfrastructureConstructor.java:126)
> > >      [java] 06/04/24 11:06:58
> > > org.apache.hivemind.impl.RegistryAssemblyImpl.performPostProcessing(
> > > RegistryAssemblyImpl.java:42)
> > >      [java] 06/04/24 11:06:58
> > > org.apache.hivemind.impl.RegistryBuilder.constructRegistry(
> > > RegistryBuilder.java:132)
> > >      [java] 06/04/24 11:06:58
> > > org.apache.tapestry.ApplicationServlet.constructRegistry(
> > > ApplicationServlet.java:253)
> > >      [java] 06/04/24 11:06:58
> > org.apache.tapestry.ApplicationServlet.init(
> > > ApplicationServlet.java:194)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpApplication.loadServlet(
> > HttpApplication.java
> > > :2141)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpApplication.findServlet(
> > HttpApplication.java
> > > :4582)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpApplication.initPreloadServlets(
> > > HttpApplication.java:4676)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpApplication.initDynamic(
> > HttpApplication.java
> > > :820)
> > >      [java] 06/04/24 11:06:58 com.evermind.server.http.HttpApplication
> > > .<init>(HttpApplication.java:542)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.Application.getHttpApplication(Application.java
> :889)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpServer.getHttpApplication(HttpServer.java
> > > :690)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpSite.getApplication(HttpSite.java:420)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpRequestHandler.processRequest(
> > > HttpRequestHandler.java:422)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpRequestHandler.run(
> HttpRequestHandler.java
> > > :270)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.server.http.HttpRequestHandler.run(
> HttpRequestHandler.java
> > > :112)
> > >      [java] 06/04/24 11:06:58
> > > com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(
> > > ReleasableResourcePooledExecutor.java:186)
> > >      [java] 06/04/24 11:06:58 java.lang.Thread.run(Thread.java:534)
> > >      [java] 06/04/24 11:06:58
> > >      [java] **********************************************************
> > >
> > > Thanks,
> > > Pedro da Silva Garcia
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > --
> > Atenciosamente,
> > Pedro da Silva Garcia
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Atenciosamente,
> Pedro da Silva Garcia
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Atenciosamente,
Pedro da Silva Garcia

Reply via email to