----- Original Message ----- 
From: "Adam R. B. Jack" <[EMAIL PROTECTED]>
To: "Gump code and data" <[EMAIL PROTECTED]>
Sent: Tuesday, January 06, 2004 5:37 PM
Subject: Re: [PATCH] HttpClient HEAD dependencies


> > Also, I'd be interested to know what a "runtime" dependency is - I did not
> > see this anywhare in the Gump docs.
>
> Runtime was one of the things that got me most in creating the classpath
> code for Python Gump. It is simple, but my heads somehow fails to get clear
> on it.
>
> Actually, there is reference in the docs:
> http://jakarta.apache.org/gump/metadata/project.html#depend
>
> It says (for these two attributes):
>
> inherit:
>
>     "runtime" which will only copy the runtime dependencies
>
> runtime:
>
>     Specifies whether this dependency is needed at runtime. Choices are
> "true" and "false" with the default being false.

But that does not tell me what runtime means ... see below.

>
> That said, not sure this is clear (as I now understand it), see below.
>
> > Does it mean that the dependency is not needed at compile-time?
> > And if a project has compile, javadoc and test targets, which of these get
> > the dependency?
>
> Good question. There are two things on a dependency, i.e. inherit="runtime"
> (go get things I need at runtime) and runtime="true" (this is needed at
> runtime for when somebody inherits).
>

Suppose we have:

project A
depend project=B1 inherit=runtime runtime=true
depend project=B2 inherit=runtime runtime=false

project C
depend project=A inherit=runtime

If I've understood correctly, project C will inherit the runtime dependencies of 
project A, i.e B1 in this case.

So the runtime attribute affects which of the dependencies are considered when another 
project uses inherit=runtime on the original
project.

I think I understand how the inherit relates to the runtime attribute - see above.
I don't understand how the runtime attribute is used *within* a project.

> At compile time a project only needs the things it needs for compiling to an
> interface (i.e. class signatures and classes that pass through it). As such
> the "runtime" dependencies ought be more than simply interface/compile-time.
>

Depending on what is meant by "runtime" (this is where I came unstuck!).

For example JMeter has several types of dependency:
- compile
- test (needs the same jars as compile, plus the jars created from the complied 
classes)
- printable docs (uses Anakia - which is not needed elsewhere - and does not need all 
the other jars)

So which of these are "runtime"?

> BTW: Writing this I wonder if I ought go revisit the code to see if it is
> clear in there. I suspect it is working as intended, but I don't think this
> is used as strictly as it once might have been. Bloated classpaths don't
> often cause problems, so we might not know from successful runs.

The Python web output should help here as it shows the classpath contributions.

S.


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

Reply via email to