Re: [equinox-dev] Jetty and commons logging

2008-01-06 Thread Alex Blewitt
On Jan 6, 2008 1:18 AM, Jeff McAffer [EMAIL PROTECTED] wrote:

 I won't disagree and would certainly welcome anyone who wanted to
 create/maintain such a repo.  It seems that someone has done this at
 maven.org.  The Maven user community should encourage that person to
 continue doing the work.  I don't really see eclipse.org or the projects
 hosting another copy of all their bundles laid out in the standard Maven dir
 structure.  Our mirrors would be upset at the doubling in size and we have
 to maintain the update site structure for the Eclipse user community anyway.
 As I understand Maven, it is at least in theory possible to define different
 kinds of repos so, for example, Eclipse update sites could be directly
 accessed from Maven.  No idea what is involved in that but it feels like the
 right kind of direction.

The problem with the Eclipse downloads is that there's actually no
real way of knowing where to look for something. Quite apart from the
arbitrary tools/platform/technology project splits, each directory is
versioned in an S-3.4M2-200709210919 directory whose name is computed
based on the time that something was run, rather than anything
detectable. In order to provide my 'direct download links' I had to
manually grep for the random-date-string in order to update my links
each time a new drop was released.

Not only that, but eclipse.org doesn't provide any really useful way
of finding out what plugins are hosted, or even where. It also ends up
wasting a *heap* of bandwith; the -win32-win32-, -win32-wpf-,
-linux-gtk-, -linux-motif-, combos are all pretty much 95%+ the same,
with only a few native bits different from each of them. There's no
'one' place to download the individual plugins.

Even the update sites aren't helpful. You can't browse to them, and
even when you do (e.g. via a mirror) it's not clear as to which plugin
is stored in which location.

Lastly, there's no metadata available. One of the things which will
have been observed from the P2 work is that it is necessary to have a
(small) downloadable metadata file that can be downloaded without
needing to download the bits that the metadata refers to. In Maven,
this is the POM, and without it, a maven repo is just an HTTP store.

Whether the P2 work can be leveraged to have a Maven-P2 link (or vice
versa) is something that could be investigated, but the problem is
that if you rely on e.g. additions to the maven repository then they
are either done sporadically or erroneously. In the case of Eclipse,
several (different) people have uploaded variants of some of the core
Eclipse plugins, but then never get updated as newer versions are
available. If this process were baked into the Eclipse release
process, more people might be tempted to build upon OSGi systems than
they are at the moment.

For those that are interested in building OGSi with Maven, then take a
look at Pax Construct:
  http://wiki.ops4j.org/confluence/display/ops4j/Pax+Construct

There's also Pax Runner, which allows bundles to be launched inside
different OSGi engines, such as Equinox and Felix:
  http://wiki.ops4j.org/confluence/display/ops4j/Pax+Runner

Alex
___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Re: [equinox-dev] Jetty and commons logging

2008-01-06 Thread Thomas Hallgren

Alex Blewitt wrote:

Even the update sites aren't helpful. You can't browse to them, and
even when you do (e.g. via a mirror) it's not clear as to which plugin
is stored in which location.

  
While I agree that there's certainly room for improvement, I don't think 
it's that bad. You will find most things on the Europa update site (or 
the Ganymede staging site if you want to be bleeding edge). You can 
create a target platform suitable for your builds using the current 
update manager and/or you can make use of the Orbit map files. The 
structure is not perfect but its definitely usable for automating 
downloads and builds.



Lastly, there's no metadata available.
Yes there is. You have the site.xml in every update site. All features 
have a feature.xml and all OSGi bundles have a manifest.mf. Getting to 
that meta-data can sometimes be a pain since it's embedded but features 
are most often very small by nature. The manifest.mf is a bit more 
cumbersome though. A tool that does some caching of what it reads can do 
a fairly good job of resolving and downloading without wasting too much 
bandwidth.


- thomas

___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Re: [equinox-dev] Jetty and commons logging

2008-01-06 Thread Jeff McAffer
Hey Alex, 

Please note that I started my reply by saying I don't disagree.  The 
point is that the team available to do this sort of work is small and the 
diskspace/mirror capacity to do it is similarly restricted.  I'm not happy 
about it either.  As with many of these things, if there are folks in the 
community who care deeply about this and want to do the work/supply the 
space, we'd be happy to work with them.

You are also correct in observing that in the p2 work we did indeed decide 
to have separately downloadable repository (metadata and artifact) 
indexing.  Further our general approach has been to allow for individual 
bundle download/install rather than whole feature management.  These moves 
have been a big win and should go a long way towards addressing the valid 
usecases you point out.

I completley agree that the update site structure is lacking in these 
areas but disagree with you that Maven addresses the issues.  The POM file 
certainly can represent the metadata in a bundle but its primary focus is 
to drive the build.  So, for example, if the build generates the 
dependency information into the output manifest.mf (e.g., using bnd or 
mangen style processing) then that dependency info is not going to be in 
the POM.  The standard maven repo does not have an index so it still does 
not help you find something unless you know exact ids and version numbers. 
 If you have that information then you can get it from a Maven repo or 
Update site equally well. (yes, I realize that there is a Maven repo 
indexer.  This is akin to the update site digest but with a finer grain)

I don't mean to slam Maven at all.  It is a fine tool and many people like 
it.  In the course of the p2 work we have learned some things from Maven 
and a careful eye will observe some Mavenesque characteristics in p2.  The 
standard Maven repo structure however does not meet our requirements (we 
spent quite a bit of time with various Maven folks going over the 
possibilities here).   As a design point we opted out of defining one 
repo format in favour of allowing people to add their own.  This opens the 
door for people with a Maven (or other) bent to add the support they need. 
 Similarly, our default repo structure is not that complicated so someone 
in the Maven world should be able to write a Maven repo class to manage 
p2's simple repos or even use p2 API to write them (thus mapping onto any 
p2 repo).

Anyway, we are way off topic here.  It suffices to say that the orginal 
poster's problems were caused by someone creating and publishing a faulty 
commons.logging bundle.  I doubt that was created by the eclipse team or 
if it was, it was a prerelease version (the Europa version has the 
necessary dependency version numbers).  In the ideal world it would 
actually be the Apache folks who produced these bundles and we would all 
just consume them.  But I'm ahead of myself...

Jeff





Alex Blewitt [EMAIL PROTECTED] 
Sent by: [EMAIL PROTECTED]
01/06/2008 01:35 PM
Please respond to
Equinox development mailing list equinox-dev@eclipse.org


To
Equinox development mailing list equinox-dev@eclipse.org
cc

Subject
Re: [equinox-dev] Jetty and commons logging






On Jan 6, 2008 1:18 AM, Jeff McAffer [EMAIL PROTECTED] wrote:

 I won't disagree and would certainly welcome anyone who wanted to
 create/maintain such a repo.  It seems that someone has done this at
 maven.org.  The Maven user community should encourage that person to
 continue doing the work.  I don't really see eclipse.org or the projects
 hosting another copy of all their bundles laid out in the standard Maven 
dir
 structure.  Our mirrors would be upset at the doubling in size and we 
have
 to maintain the update site structure for the Eclipse user community 
anyway.
 As I understand Maven, it is at least in theory possible to define 
different
 kinds of repos so, for example, Eclipse update sites could be directly
 accessed from Maven.  No idea what is involved in that but it feels like 
the
 right kind of direction.

The problem with the Eclipse downloads is that there's actually no
real way of knowing where to look for something. Quite apart from the
arbitrary tools/platform/technology project splits, each directory is
versioned in an S-3.4M2-200709210919 directory whose name is computed
based on the time that something was run, rather than anything
detectable. In order to provide my 'direct download links' I had to
manually grep for the random-date-string in order to update my links
each time a new drop was released.

Not only that, but eclipse.org doesn't provide any really useful way
of finding out what plugins are hosted, or even where. It also ends up
wasting a *heap* of bandwith; the -win32-win32-, -win32-wpf-,
-linux-gtk-, -linux-motif-, combos are all pretty much 95%+ the same,
with only a few native bits different from each of them. There's no
'one' place to download the individual plugins.

Even the update sites aren't helpful. You can't 

[equinox-dev] Maven and all that [was: Jetty and commons logging]

2008-01-06 Thread Jeff McAffer
[redoing the subject to be more accurate as we are well and truly off the 
original topic...] 

That doc talks about releases but does not define the term.  Do you know 
what the expectation is?  One of our builds can be 200MB or so and we end 
up running at least one and sometimes multiple a day in some (unhappy) 
cases.  Last I knew ibiblio was not keen on this sort of publishing.  Our 
weekly integration builds would be a candidate though they might prefer 
only the 6week milestones.  Either way the process is the same.  We run 
several such builds during the integration/milestone week and in the end 
declare one of them as good and promote it.  We do not apriori know 
which build is going to be the one as a mess o' testing is done after 
the build (automated and manual).  A publishing step such as discussed 
here would have to be after the fact and so cannot be built into the build 
itself. 

What is really needed is a tool that would take an Eclipse build (e.g., 
update site or download zip or ...) and fire it into the desired repo in 
the desired form.  This would accommodate the myriad of different build 
mechanisms/processes that exist today at Eclipse and allow anyone who 
wanted the content in another repo to do so without having to depend on 
the particular project build team/process.  With this in hand we could 
talk about getting particular build teams to call the tool when they 
promote a build.  Alternatively and more generally it would be interesting 
to have an RSS feed (forgive me Kim) for build promotions.  External 
parties can then start sucking content as soon as it is released. 

Jeff




Hal Hildebrand [EMAIL PROTECTED] 
Sent by: [EMAIL PROTECTED]
01/06/2008 09:08 PM
Please respond to
Equinox development mailing list equinox-dev@eclipse.org


To
Equinox development mailing list equinox-dev@eclipse.org
cc

Subject
Re: [equinox-dev] Jetty and commons logging






I guess I'm a little confused...  There's a few sites which will do the 
mirroring for you, like ibiblio.org.  Ibiblio, and the myriad of mirrors 
for the site, host a plethora of maven artifacts for projects all over. 
I'm not completely up on the mechanisms for publishing to these 
repositories - i.e. what are the protocols, contacts, etc - but 
considering that plenty of projects and code bases publish there means it 
can't be too hard to do.  Further, tools exist for Ant and Maven to make 
this publishing part of the build release process.  Or, at the very least, 
a target of the build which can be manually called when appropriate.

So, it seems like everyone could be happy.  Those actually build outside 
of Eclipse (strange, I know) could have access to Eclipse artifacts from a 
maven repository hosted by Ibiblio rather than having to provide your own 
space, and you Eclipse folks would have this folded into your build in a 
painless fashion.

This link has the Apache documentation on publishing to their site which 
is mirrored by Ibiblio: http://www.apache.org/dev/release-publishing.html
Although this wouldn't be what you'd be doing, I'm fairly certain the 
process would be similar.

Hope this helps all involved...

On Jan 6, 2008, at 5:29 PM, Jeff McAffer wrote:


Hey Alex, 

Please note that I started my reply by saying I don't disagree.  The 
point is that the team available to do this sort of work is small and the 
diskspace/mirror capacity to do it is similarly restricted.  I'm not happy 
about it either.  As with many of these things, if there are folks in the 
community who care deeply about this and want to do the work/supply the 
space, we'd be happy to work with them. 

You are also correct in observing that in the p2 work we did indeed decide 
to have separately downloadable repository (metadata and artifact) 
indexing.  Further our general approach has been to allow for individual 
bundle download/install rather than whole feature management.  These moves 
have been a big win and should go a long way towards addressing the valid 
usecases you point out. 

I completley agree that the update site structure is lacking in these 
areas but disagree with you that Maven addresses the issues.  The POM file 
certainly can represent the metadata in a bundle but its primary focus is 
to drive the build.  So, for example, if the build generates the 
dependency information into the output manifest.mf (e.g., using bnd or 
mangen style processing) then that dependency info is not going to be in 
the POM.  The standard maven repo does not have an index so it still does 
not help you find something unless you know exact ids and version numbers. 
 If you have that information then you can get it from a Maven repo or 
Update site equally well. (yes, I realize that there is a Maven repo 
indexer.  This is akin to the update site digest but with a finer grain) 

I don't mean to slam Maven at all.  It is a fine tool and many people like 
it.  In the course of the p2 work we have learned some things from Maven 
and a careful eye 

Re: [equinox-dev] Maven and all that [was: Jetty and commons logging]

2008-01-06 Thread Hal Hildebrand
I think the determination is entirely up to you.  Maven has the  
concept of SNAPSHOTS, which are incrementals of a release.  Myself, I  
wouldn't bother with these, as just having officially released  
artifacts would be enough to start with and given the prodigious  
output...  WRT your suggestion at the end, I think that's a great idea  
given what you point out about your process.  And it sounds like an  
excellent project for someone who wants to see the artifacts made  
available in Maven.  Myself, I'll see what I can do about  
investigating the building of such a tool.


+1 on the RSS feed.  That would be bitchin'.

On Jan 6, 2008, at 6:45 PM, Jeff McAffer wrote:



[redoing the subject to be more accurate as we are well and truly  
off the original topic...]


That doc talks about releases but does not define the term.  Do  
you know what the expectation is?  One of our builds can be 200MB or  
so and we end up running at least one and sometimes multiple a day  
in some (unhappy) cases.  Last I knew ibiblio was not keen on this  
sort of publishing.  Our weekly integration builds would be a  
candidate though they might prefer only the 6week milestones.   
Either way the process is the same.  We run several such builds  
during the integration/milestone week and in the end declare one of  
them as good and promote it.  We do not apriori know which build  
is going to be the one as a mess o' testing is done after the  
build (automated and manual).  A publishing step such as discussed  
here would have to be after the fact and so cannot be built into the  
build itself.


What is really needed is a tool that would take an Eclipse build  
(e.g., update site or download zip or ...) and fire it into the  
desired repo in the desired form.  This would accommodate the myriad  
of different build mechanisms/processes that exist today at Eclipse  
and allow anyone who wanted the content in another repo to do so  
without having to depend on the particular project build team/ 
process.  With this in hand we could talk about getting particular  
build teams to call the tool when they promote a build.   
Alternatively and more generally it would be interesting to have an  
RSS feed (forgive me Kim) for build promotions.  External parties  
can then start sucking content as soon as it is released.


Jeff



Hal Hildebrand [EMAIL PROTECTED]
Sent by: [EMAIL PROTECTED]
01/06/2008 09:08 PM
Please respond to
Equinox development mailing list equinox-dev@eclipse.org

To
Equinox development mailing list equinox-dev@eclipse.org
cc
Subject
Re: [equinox-dev] Jetty and commons logging





I guess I'm a little confused...  There's a few sites which will do  
the mirroring for you, like ibiblio.org.  Ibiblio, and the myriad of  
mirrors for the site, host a plethora of maven artifacts for  
projects all over.  I'm not completely up on the mechanisms for  
publishing to these repositories - i.e. what are the protocols,  
contacts, etc - but considering that plenty of projects and code  
bases publish there means it can't be too hard to do.  Further,  
tools exist for Ant and Maven to make this publishing part of the  
build release process.  Or, at the very least, a target of the build  
which can be manually called when appropriate.


So, it seems like everyone could be happy.  Those actually build  
outside of Eclipse (strange, I know) could have access to Eclipse  
artifacts from a maven repository hosted by Ibiblio rather than  
having to provide your own space, and you Eclipse folks would have  
this folded into your build in a painless fashion.


This link has the Apache documentation on publishing to their site  
which is mirrored by Ibiblio: http://www.apache.org/dev/release-publishing.html
Although this wouldn't be what you'd be doing, I'm fairly certain  
the process would be similar.


Hope this helps all involved...

On Jan 6, 2008, at 5:29 PM, Jeff McAffer wrote:


Hey Alex,

Please note that I started my reply by saying I don't disagree.   
The point is that the team available to do this sort of work is  
small and the diskspace/mirror capacity to do it is similarly  
restricted.  I'm not happy about it either.  As with many of these  
things, if there are folks in the community who care deeply about  
this and want to do the work/supply the space, we'd be happy to work  
with them.


You are also correct in observing that in the p2 work we did indeed  
decide to have separately downloadable repository (metadata and  
artifact) indexing.  Further our general approach has been to allow  
for individual bundle download/install rather than whole feature  
management.  These moves have been a big win and should go a long  
way towards addressing the valid usecases you point out.


I completley agree that the update site structure is lacking in  
these areas but disagree with you that Maven addresses the issues.   
The POM file certainly can represent the metadata in a bundle but  
its primary focus is to drive 

Re: [equinox-dev] Maven and all that [was: Jetty and commons logging]

2008-01-06 Thread David M Williams
With the discussion of meta data, I'm surprised no one mentioned OSGi 
repositories ... is there a reason for that?  (Other than me missing the 
whole point from quickly scanning this mailing list :) 

It's not heavily advertised, I guess, but we actually produce OSGi 
repository meta data for our yearly releases, such as 

http://download.eclipse.org/releases/europa/repository.zip 

And this in turn becomes part of the (browsable) OSGi repository at 

http://www2.osgi.org/obr/browse?_xml=1cmd=repository

Just FYI, FWIW

___
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev