You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by James Strachan <ja...@yahoo.co.uk> on 2002/08/12 12:14:24 UTC

[JJAR] using maven's repo...

Incidentally - after taking a fresh look at JJAR - it could be nice to
implement JJAR's Repository interface using Maven's physical repository.
Maven uses directories for each project/package, then seperate files for
each version, rather than a single XML doc for the whole repo.

So right now JJAR has RepositoryXML that implements Repository by parsing a
single XML doc. Writing a MavenRepository class should be pretty easy, that
could just use any Maven repo, such as the one here...

http://www.ibiblio.org/maven/

Then JJAR users could reuse Maven repositories if they wish.

James
-------
http://james.weblogger.com/

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by "Geir Magnusson Jr." <ge...@adeptra.com>.
On 8/12/02 10:28 AM, "Jason van Zyl" <ja...@zenplex.com> wrote:

> On Mon, 2002-08-12 at 10:22, Geir Magnusson Jr. wrote:
>> On 8/12/02 10:16 AM, "Jason van Zyl" <ja...@zenplex.com> wrote:
>> 
>>> On Mon, 2002-08-12 at 08:33, Geir Magnusson Jr. wrote:
>>> 
>>>> 2) You can insulate people who need dependency information from the format
>>>> of the project.xml - so you can change the project.xml format on a
>>>> per-project basis (i.e. Things can evolve rather than have to jump all at
>>>> once...) and the consumer of the repo don't need to know that.
>>> 
>>> Sure, then they are just dependent on another format. What's the
>>> difference really.
>> 
>> They are dependent upon a format specific to the need, a comprehensive
>> package and dependency format, rather than a format that is really meant for
>> something else, the Maven project description.
> 
> That's exactly what a Maven descriptor is except that it is more
> comprehensive given that it will take into dependencies that are non-JAR
> artifacts. Because all project information changes across versions,
> including dependencies, we will use each project.xml file used for a
> release to produce the graph where JJAR puts everything in one file.
> Same thing but I believe Maven's format will be easier to manage given
> that each project maintain's its own dependencies. But something JJAR
> could use would be actually manageable using a Reactor i.e. we can
> easily sweep across each project processing each descriptor used for
> each version to produce what JJAR needs.

That's exactly what I meant - just preprocess your Maven project
descriptors.  Then, if they ever change, anyone using the repo won't have to
know about it if you can keep the 'Uber descriptor' stable.

-- 
Geir Magnusson Jr. 
Research & Development, Adeptra Inc.
geirm@adeptra.com
+1-203-247-1713



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by Jason van Zyl <ja...@zenplex.com>.
On Mon, 2002-08-12 at 10:22, Geir Magnusson Jr. wrote:
> On 8/12/02 10:16 AM, "Jason van Zyl" <ja...@zenplex.com> wrote:
> 
> > On Mon, 2002-08-12 at 08:33, Geir Magnusson Jr. wrote:
> > 
> >> 2) You can insulate people who need dependency information from the format
> >> of the project.xml - so you can change the project.xml format on a
> >> per-project basis (i.e. Things can evolve rather than have to jump all at
> >> once...) and the consumer of the repo don't need to know that.
> > 
> > Sure, then they are just dependent on another format. What's the
> > difference really.
> 
> They are dependent upon a format specific to the need, a comprehensive
> package and dependency format, rather than a format that is really meant for
> something else, the Maven project description.

That's exactly what a Maven descriptor is except that it is more
comprehensive given that it will take into dependencies that are non-JAR
artifacts. Because all project information changes across versions,
including dependencies, we will use each project.xml file used for a
release to produce the graph where JJAR puts everything in one file.
Same thing but I believe Maven's format will be easier to manage given
that each project maintain's its own dependencies. But something JJAR
could use would be actually manageable using a Reactor i.e. we can
easily sweep across each project processing each descriptor used for
each version to produce what JJAR needs.
 
> -- 
> Geir Magnusson Jr. 
> Research & Development, Adeptra Inc.
> geirm@adeptra.com
> +1-203-247-1713
> 
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
-- 
jvz.

Jason van Zyl
jason@apache.org
http://tambora.zenplex.org

In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
  
  -- Jacques Ellul, The Technological Society


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by "Geir Magnusson Jr." <ge...@adeptra.com>.
On 8/12/02 10:16 AM, "Jason van Zyl" <ja...@zenplex.com> wrote:

> On Mon, 2002-08-12 at 08:33, Geir Magnusson Jr. wrote:
> 
>> 2) You can insulate people who need dependency information from the format
>> of the project.xml - so you can change the project.xml format on a
>> per-project basis (i.e. Things can evolve rather than have to jump all at
>> once...) and the consumer of the repo don't need to know that.
> 
> Sure, then they are just dependent on another format. What's the
> difference really.

They are dependent upon a format specific to the need, a comprehensive
package and dependency format, rather than a format that is really meant for
something else, the Maven project description.

-- 
Geir Magnusson Jr. 
Research & Development, Adeptra Inc.
geirm@adeptra.com
+1-203-247-1713



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by Jason van Zyl <ja...@zenplex.com>.
On Mon, 2002-08-12 at 08:33, Geir Magnusson Jr. wrote:
> On 8/12/02 8:23 AM, "Stéphane MOR" <st...@yahoo.fr> wrote:
> 
> > I think that the repository will contain the project.xml file
> > for each of the projects. This way we could get each project's
> > dependencies easily. There is a goal in Maven called deploy:pom
> > which was done for this purpose, I believe.
> > 
> > An advantage of this is that you can tell that A depends on B,
> > and if B depends on C, you get that info from B's repository's
> > project.xml, and you get C for free. We've been talking about
> > that and refered to it as "direct dependencies" or "first level
> > dependencies", or again "inherited dependencies", which is
> > something that may be really helpful regarding the commons for
> > instance, where inter-dependency is quite high.
> 
> I think you should glom together into one place - maybe have some sort of
> sweeper that periodically (or upon checkin) rebuilds a single descriptor
> from the project.xml's that describes everything.

This is exactly what will be done with the share db of project
information. We could certainly produce an xml file in the jjar style.
That's not hard at all, but it will likely get large and I was going to
try and use JISP or Xindice to try and speed things up. This will
ultimately allow us to only specify direct dependencies in Maven, which
has been the plan all along.

> Why?
> 
> 1) It makes it easy to just take one file and digest it.

Yup.

> 2) You can insulate people who need dependency information from the format
> of the project.xml - so you can change the project.xml format on a
> per-project basis (i.e. Things can evolve rather than have to jump all at
> once...) and the consumer of the repo don't need to know that.

Sure, then they are just dependent on another format. What's the
difference really.
 
> 3) You can add other inputs into the dependency graph other than project.xml
> files, and again, the repo consumer doesn't need to know.

Sure, that's possible.

> > 
> > As for JJAR, I don't know how that sort of things could fit,
> > but I guess that both dependencies models can be merged / adapted
> > to each other so that JJAR users can use Maven repos and Maven
> > users can use JJAR repos...
> 
> I think that's easily possible.

Very easy I think.

> geir
> -- 
> Geir Magnusson Jr. 
> Research & Development, Adeptra Inc.
> geirm@adeptra.com
> +1-203-247-1713
> 
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
-- 
jvz.

Jason van Zyl
jason@apache.org
http://tambora.zenplex.org

In short, man creates for himself a new religion of a rational
and technical order to justify his work and to be justified in it.
  
  -- Jacques Ellul, The Technological Society


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by "Geir Magnusson Jr." <ge...@adeptra.com>.
On 8/12/02 8:23 AM, "Stéphane MOR" <st...@yahoo.fr> wrote:

> I think that the repository will contain the project.xml file
> for each of the projects. This way we could get each project's
> dependencies easily. There is a goal in Maven called deploy:pom
> which was done for this purpose, I believe.
> 
> An advantage of this is that you can tell that A depends on B,
> and if B depends on C, you get that info from B's repository's
> project.xml, and you get C for free. We've been talking about
> that and refered to it as "direct dependencies" or "first level
> dependencies", or again "inherited dependencies", which is
> something that may be really helpful regarding the commons for
> instance, where inter-dependency is quite high.

I think you should glom together into one place - maybe have some sort of
sweeper that periodically (or upon checkin) rebuilds a single descriptor
from the project.xml's that describes everything.

Why?

1) It makes it easy to just take one file and digest it.

2) You can insulate people who need dependency information from the format
of the project.xml - so you can change the project.xml format on a
per-project basis (i.e. Things can evolve rather than have to jump all at
once...) and the consumer of the repo don't need to know that.

3) You can add other inputs into the dependency graph other than project.xml
files, and again, the repo consumer doesn't need to know.

> 
> As for JJAR, I don't know how that sort of things could fit,
> but I guess that both dependencies models can be merged / adapted
> to each other so that JJAR users can use Maven repos and Maven
> users can use JJAR repos...

I think that's easily possible.
 
geir
-- 
Geir Magnusson Jr. 
Research & Development, Adeptra Inc.
geirm@adeptra.com
+1-203-247-1713



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by Stéphane MOR <st...@yahoo.fr>.
James Strachan wrote:

>----- Original Message -----
>From: "Geir Magnusson Jr." <ge...@adeptra.com>
>  
>
>>On 8/12/02 6:14 AM, "James Strachan" <ja...@yahoo.co.uk> wrote:
>>
>>    
>>
>>>Incidentally - after taking a fresh look at JJAR - it could be nice to
>>>implement JJAR's Repository interface using Maven's physical repository.
>>>Maven uses directories for each project/package, then seperate files for
>>>each version, rather than a single XML doc for the whole repo.
>>>
>>>So right now JJAR has RepositoryXML that implements Repository by
>>>      
>>>
>parsing a
>  
>
>>>single XML doc. Writing a MavenRepository class should be pretty easy,
>>>      
>>>
>that
>  
>
>>>could just use any Maven repo, such as the one here...
>>>      
>>>
>>That was the idea, but how do you specify dependencies?
>>    
>>
>
>Right now each project has a project.xml that defines its dependencies on
>other things (jars typically). Then a Maven repository contains those
>things. Ultimately I think the repository also needs to also store the
>dependency information as well, whether inside the jar META-INF in some
>format, or as some XML document in the repository.
>
Hi,

I think that the repository will contain the project.xml file
for each of the projects. This way we could get each project's
dependencies easily. There is a goal in Maven called deploy:pom
which was done for this purpose, I believe.

An advantage of this is that you can tell that A depends on B,
and if B depends on C, you get that info from B's repository's
project.xml, and you get C for free. We've been talking about
that and refered to it as "direct dependencies" or "first level
dependencies", or again "inherited dependencies", which is
something that may be really helpful regarding the commons for
instance, where inter-dependency is quite high.

A few graphs on a set of projects showed that for instance, when
Velocity was specified on more than 12 projects (out of ~100),
with the dependency inheritence, it was really only needed by
2 of them, those "giving Velocity" to all the projects that
depended on them.
Log4j, Dom4J, commons-beanutils are other good examples of the
benefits of using this mecanism.

(You can find two comparison graphs here :
http://www.qmvmo.com/maven-dev/deps-graphs.tar.gz)

As for JJAR, I don't know how that sort of things could fit,
but I guess that both dependencies models can be merged / adapted
to each other so that JJAR users can use Maven repos and Maven
users can use JJAR repos...

>I think this is happening with the 'reactor' stuff in Maven though I don't
>know enough about it yet to go into much more detail. But I should think
>this is quite easy to do, maybe as a standard part of the Maven build/deploy
>process.
>  
>
Yep, that's definitely a Reactor thing, even if it needs to be a
little clearer (what should it do ? what does it already do ?).

Stéphane

>James
>-------
>http://james.weblogger.com/
>  
>

___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by James Strachan <ja...@yahoo.co.uk>.
----- Original Message -----
From: "Geir Magnusson Jr." <ge...@adeptra.com>
> On 8/12/02 6:14 AM, "James Strachan" <ja...@yahoo.co.uk> wrote:
>
> > Incidentally - after taking a fresh look at JJAR - it could be nice to
> > implement JJAR's Repository interface using Maven's physical repository.
> > Maven uses directories for each project/package, then seperate files for
> > each version, rather than a single XML doc for the whole repo.
> >
> > So right now JJAR has RepositoryXML that implements Repository by
parsing a
> > single XML doc. Writing a MavenRepository class should be pretty easy,
that
> > could just use any Maven repo, such as the one here...
>
> That was the idea, but how do you specify dependencies?

Right now each project has a project.xml that defines its dependencies on
other things (jars typically). Then a Maven repository contains those
things. Ultimately I think the repository also needs to also store the
dependency information as well, whether inside the jar META-INF in some
format, or as some XML document in the repository.

I think this is happening with the 'reactor' stuff in Maven though I don't
know enough about it yet to go into much more detail. But I should think
this is quite easy to do, maybe as a standard part of the Maven build/deploy
process.

James
-------
http://james.weblogger.com/


__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: [JJAR] using maven's repo...

Posted by "Geir Magnusson Jr." <ge...@adeptra.com>.
On 8/12/02 6:14 AM, "James Strachan" <ja...@yahoo.co.uk> wrote:

> Incidentally - after taking a fresh look at JJAR - it could be nice to
> implement JJAR's Repository interface using Maven's physical repository.
> Maven uses directories for each project/package, then seperate files for
> each version, rather than a single XML doc for the whole repo.
> 
> So right now JJAR has RepositoryXML that implements Repository by parsing a
> single XML doc. Writing a MavenRepository class should be pretty easy, that
> could just use any Maven repo, such as the one here...

That was the idea, but how do you specify dependencies?
 
> http://www.ibiblio.org/maven/
> 
> Then JJAR users could reuse Maven repositories if they wish.
> 

That's the idea...

-- 
Geir Magnusson Jr. 
Research & Development, Adeptra Inc.
geirm@adeptra.com
+1-203-247-1713



--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>