gump-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam R. B. Jack" <aj...@apache.org>
Subject Re: CLASSPATH logic is failing on me
Date Sat, 19 Mar 2005 22:01:14 GMT
> I saw them in a few places (for example many CLASSPATHs seem to
> include bootstrap-ant and ant) but never found the time to complain
> until it finally started to cause problems, sorry.

You know, I was suspicious about that, but never quite registered the
severity of the problem.

> > Ok, so please walk me through this...  I see that
> > jakarta-cactus-framework-12 optionally inherits checkstyle for
> > runtime.
>
> Yes, it means "when you build cactus, include checkstyle and all
> projects checkstyle has marked up with runtime="true" in the
> CLASSPATH".  It also means "I'm not interested in anything checkstyle
> depends on with runtime="false" (the default) unless I explicitly
> depend on it myself".

I figured it meant "inherit that into this project", so things that depend
upon cactus get it & it's inherited baggage. [Actually though, that is
inherit="jars", isn't it?]

Still, have I been overthinking this algorythm all along? Are dependencies
pretty much simply between the two parties, not (as I'd assumed) some
cascade of all the dependencies (doing "inheritence" the whole tree down to
the ground). Meaning, do I (except for inherit="jars") not "recurse into the
sub-dependency project" to get more dependencies? Is it really as simple as
for a project one simply includes/resolves merely the explicit dependencies
specifies (with inheritence), not going on to get what those projects use to
build themselves?

I guess I suspected that parts of an API in a sub-jar (e.g. log4j) might
bleed through a user (e.g. say axis) and so to compile an axis user one
might need log4j? [I know we strive to keep direct bleed out of APIs, but
I'm just thinking out loud.] How would this be delt with?

> > I see that checkstyle depends upon anakia for runtime.
>
> Yes, it means "when you build checkstyle, include anakia and all
> projects anakia has marked up with runtime="true" in the
> CLASSPATH".  It also means "I'm not interested in anything anakia
> depends on with runtime="false" (the default) unless I explicitly
> depend on it myself".
>
> So during the cactus build, Anakia shouldn't be present at all, since
> checkstyle doesn't say runtime="true" here.
>
> > As such, I think I'm seeing that the code is pulling those up/in,
> > and hence a dependency on jakarta-cactus-framework-12 get's the jars
> > that are inherited into it.
>
> They shouldn't be inherited at all.  And even if they were, say
> checkstyle had
>
>     <depend project="anakia" inherit="runtime" runtime="true"/>
>
> then the jars contributed by anakia should be on the CLASSPATH when
> building cactus, but not when building struts-taglib, because
> struts-taglib says
>
>     <depend project="jakarta-cactus-framework-12" />
>
> which means
>
> "when you build struts-taglib, include jakarta-cactus-framework-12 and
> nothing else.  I'm not interested in anything
> jakarta-cactus-framework-12 depends on no matter what runtime says
> unless I explicitly depend on it myself".
>

Ok, I'm going to try to re-work this. I might as well get it right here,
before I look @ Gump3. In Gump3 I want to see this aspect be
simple/clean/clear and debugable, and queryable (probably through a
database). I might as well get it right here first.

regards,

Adam


---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@gump.apache.org
For additional commands, e-mail: general-help@gump.apache.org


Mime
View raw message