Giacomo Pati wrote:
>
>
> On Mon, 17 Dec 2001, Morrison, John wrote:
>
> >
> >
> > > -----Original Message-----
> > > From: Carsten Ziegeler [mailto:[EMAIL PROTECTED]]
> > > Sent: Monday, 17 December 2001 11:13 am
> > > To: Cocoon-Dev
> > > Subject: Building and Classpath
> > >
> > >
> > > There are many questions regarding the special ClassAvailable task
> > > in our build system. So here is a short description of the purpose:
> > >
> > > The Ant Available Tasks looks up classes by a given classpath (for
> > > example all jar files in the lib directory). If the class is not found
> > > the standard jdk classes are searched, if they contain this class - in
> > > addition you can also search in your own classpath.
> > >
> > > Now this class searching is used for compiling/adding optional
> > > components to Cocoon. One example is LDAPTransformer which requires
> > > the JNDI classes to compile.
> > >
> > > The problem with the Available task is that it searches for optional
> > > components in places which might not be available when the Cocoon
> > > webapp is deployed: For example, you build Cocoon with JDK 1.3 which
> > > already includes the JNDI classes. This will result in a webapp
> > > requiring the JNDI packages to run. If you now deploy this in a
> > > environment running only JDK 1.2, your webapp will never run as
> > > the required classes are missing.
> > >
> > > And here kicks the ClassAvailable task in. It checks only a given
> > > classpath (in our case the jars in the lib directory), but neither
> > > the user classpath nor the standard jdk classes. So, even if you
> > > build Cocoon on JDK 1.3, you will not get the LDAPTransformer.
> > > If you really want this, you have to add this optional component
> > > to the lib directory (e.g. the downloadble JNDI addition).
> > >
> > > Putting something into the lib directory will result in a copy of
> > > this jar file in the build/deployed webapp, so all required classes
> > > are really available.
> > >
> > > So the ClassAvailable task helps in building runnable versions.
> > > But, I think we should try to get rid of this Cocoon special task
> > > and try to support the user classpath for building. So additional
> > > components would also be recognized if they are not in the lib
> > > directory, but in the user classpath. But this might then lead
> > > to not runnable webapps.
> > >
> > > So how can we combine these two problems?
> > > Solution A: We don't care about the problem and shift the
> > > responsibility
> > >             to the user: The Ant Available task is used and the user
> > > classpath
> > >             is searched, too. The environment running Cocoon
> > > must be the
> > > same
> > >             as the one in which it was build.
> > >             I think, we all agree, that we can skip this solution!
> > >
> > > Solution B: We leave it as it is. So, we have our own Ant
> > > task (which is
> > >             not soo bad), but we also ignore user settings.
> > >
> > > Solution C: A combination. Standard behaviour is to search
> > > only in the jars
> > > of
> > >             the lib directory, but if the user insists, he
> > > can use his own
> > >             classpath, but has then to take care that all classes are
> > > available
> > >             when he deploys a Cocoon webapp.
> > >             So we would still use the ClassAvailable task, but add a
> > > property
> > >             controlling the behaviour.
> >
> > Solution D: fix the ant Available task (which has been
> rejected(?) by the
> >     ant team...
>
> What was rejected? The task itself or a fix?
>
I will reraise this issue on the ant list. Let's see if we can get some
attention there.

Carsten
> Giacomo
>
> >
> > > Are there more (better) solutions?
> > >
> > > Carsten
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, email: [EMAIL PROTECTED]
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, email: [EMAIL PROTECTED]
> >
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to