You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@gump.apache.org by Sebastian Bazley <Se...@london.sema.slb.com> on 2004/01/06 22:57:58 UTC
Meaning of "runtime" (was: [PATCH] HttpClient HEAD dependencies)
----- Original Message -----
From: "Adam R. B. Jack" <aj...@trysybase.com>
To: "Gump code and data" <gu...@jakarta.apache.org>
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.
Re: Meaning of "runtime" (was: [PATCH] HttpClient HEAD
dependencies)
Posted by Stefan Bodewig <bo...@apache.org>.
On Tue, 6 Jan 2004, Sebastian Bazley
<Se...@london.sema.slb.com> wrote:
> I think I understand how the inherit relates to the runtime
> attribute - see above.
Yes.
> I don't understand how the runtime attribute is used *within* a
> project.
Not at all.
> 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"?
Only those you need to run JMeter.
Stefan