catalog for optional feature and layout discovery

2003-11-17 Thread aok123
Hello,

After reading a few of the conversations on the list I have come up with some 
ideas.

First Jason mentioned the use of decorations to embellish the functionality of 
the repository.  After some thought I will have to agree even though I did not 
at first.  Keeping the repository simple is a good thing.

Now there were discussions with Tim regarding the layout of the repository and 
how the URL was to be designed.  Then Steve talked about using meta data (the 
notion of associating attributes/properties with artifacts).  I think this can 
be used as meta data but that's one application of it.  I think these 
attributes can be used for just about any application.

So how do we enable a flexible repository that allows clients to discover the 
optional services/features implemented as decoration on the repository?  Also 
how do we enable any kind of regular repository structure so we do not have to 
restrict the layout of the repository?

If the repository published a simple manifest or catalog of sorts in a fixed 
location so client APIs (in any language) can access it, then we can use this 
to store the following:

1). List of optional decorations offered by the repository
2). List of directory structure and naming rules
3). Miscellaneous seed information required to negotiate with the repo

3 is just filler cuz I did not want to have just two points ;-).

Ok the list of decorative services, features or what have you describe the 
optional functionality offered by the repository.  One such feature may be the 
use of attributes for associating relational information with a repo artifact.  
The potential features are limited only by the imagination.  Just the other day 
I was using xdelta (the binary diff tool) and it occured to me that the 
repository could offer xdelta generation on the fly for applications that want 
to upgrade but use diffs instead of pulling down massive binaries.  This is 
just an idea and its here to show how pleasantly carried away we can get with 
decorations so don't interpret me as trying to add it to the repository ;-).

The point is with this catalog we can publish these features - the means to do 
that can be debates but we should not spend time on debating what features to 
add.  At the end of the day this is left to the discretion of the user.  We 
just need to allow for all the possibilities.

Now in terms of #2 we can make the structure of the repository and the naming 
conventions used user definable by including naming and structure rules for the 
directory layout of the repository.  These rules tell clients how to navigate 
the repository to get at the artifacts they may be interested in.  And the 
published decorations tell the client how it can take advantage of optional 
services offered by the repository.

I'm also trying to concieve of how client API's can selectively leverage these 
feature using plugable repository feature extensions.  Also trying to get a 
feel for what this might look like and the use cases.  

These are just some ideas that have sparked in my head as a consequence of the 
recent activity on the list.  Thought I'd put them out to be discussed.  
Thoughts? Comments?

Alex



Re: RE: Scope/Phasing

2003-11-09 Thread aok123
> [snip]
> > I don't intend to inflame anyone so please don't take it in the wrong 
> way 
> > but the Maven PMC sounds like a closed society to me.  The maven-new 
> details
> > 
> > are hidden pending some PMC conclusions.  The Wagon details are hidden 
> > as well again pending PMC conclusions.  There just seems to me to be an 
> > extreme amount of caution/secrecy with regard to involving the community 
> 
> > which counteracts the benefits of having one in the first place.
> [snip]
> 
> Can we please keep conjecture and flame-bait to private email?

Dion, this was certainly not my intention and I appologize for 
comming across that way - that was the reason for the disclaimer
at the begining.

Sincerely,
Alex 




Re: Re: Merging repository discussions

2003-11-07 Thread aok123
> I have been out of commission for the better part of this year but
> Plexus was slated to integrate Maven's repositories directly. Of late
> I've been discussing this with the Loom folk and ~10 people who have
> access to the Plexus-based version of Maven.

Yes, I remember checking out maven-new from the maven cvs repository.
If you remember, you told me of its eventual move to Codehaus.  So 
it's new home is there I take it?  Is there a way I can take a look 
at it?

Also I'm not thinking of the repository as only part of a component
container or just a Maven thing.  I'm concerned with creating a 
single free repository.  All the folks out there across projects 
can use it including Loom and Plexus at Codehaus.

It should not matter what project uses it.  The key is to make it
a standard and not have a dozen implementations out there causing
incompatibilities.

> One of the the first tools to be released is something called Wagon
> which Michal has been refactoring since the first versions of the
> artifact handling mechanisms were checked into the maven-new repository.
> It's Michal's baby and I will definitely encourage him to join this
> list. Wagon was at first dependent on Plexus but that has now changed to
> be more PicoComponent-esque whereby it can be embedded or used in any
> Java tool or application. Michal has actually endeavoured to make Wagon
> work with Loom as Peter Donald will most likely get to using Wagon in
> Loom before I get to using it in Plexus.

So Wagon is a repository API implemented at Codehaus?



> Right, the Component Software nirvanna :-) If you haven't read Component
> Software by Syperski I highly recommend it. There are also a plethora of
> papers at citeseer on the topic of confederated repositories of
> components so really just artifacts in essence.

It's always nice to dream ;-). However outcome is not my primary 
goal.  I just want a standard repository API for all repo 
aware apps to use.  I also want to explore the use of directories
coupled with this idea.

> 
> > The ideas being discussed revolve around the notion of an attribute 
> > database to be used to centrally manage project related artifact 
> > attributes.  This way the repository becomes a queriable artifact directory 
> > as well as a artifact store.
> 
> I think as a decoration many things can be built on the notion of the

Yes the decorator pattern is what I was inferring to - good catch.  
What about putting the POM and potentially other related app specific
info extending the POM and keeping it allin a queriable centralized 
directory?

> repository. There is certainly no reason that hinting types of artifacts
> can't be introduced in order to enable the construction of large
> metadata repositories for querying.

Perhaps we want to get away from having properties files or XML 
files floating around just to mark up the repo with metadata.
Even thought this can server as a make shift solution for now.
We need to manage the relational info in a form that can be 
indexed and queried not one that requres it to be snarfed down 
and parsed et. cetera.  Without a database solution the repo
may become very difficult to manage with several metadata files
as it grows.

> 
> > Are these ideas appealing to the Maven community?
> 
> Most certainly and is definitely in sync with the component form that
> Maven will start to take in the next couple of months.

That's great to hear.  Is this maven-new you are referring to?
Is maven-new going to come back to Apache?  I took your advice
and chilled out rather than trying to componentize maven.  I'm
glad to see you've gotten so far with it.

Thanks,
Alex



Fwd: Re: [part due] What is an ArtifactDatabase?

2003-11-07 Thread aok123
Niclas,

Very sound advice and keen observations ... you're right!  Time will tell and 
we need to start making some baby steps in the right direction for now.  I 
think involvement with the Maven people in defining what a repository is for 
one single Apache repository is most important first.  

Extention of this repository with artifact attributes to enable the application 
based characterization of artifacts is the next step.  The POM can be stored 
there and so can other application specific deployment attributes if the Maven 
people want to go there.  The nice thing is if done right we can query for 
these artifacts based on their attributes to build a very powerful base to all 
platforms.
 
The ideas to come out of Maven and Merlin regarding a repository and its use 
are very powerful.  Maven invented it and Merlin showed us how to use it to 
manage an environment.  Both are very powerful innovations.

>From what I can see even Loom at jContainer is following that same route and 
>this proves the fact that a connection exists.  The biggest danger today is 
>the potential for community fragmentation.  Apache does not need two copies of 
>the same thing.

The technical details will come together but let's do it right as one 
community.  I think this is where the [EMAIL PROTECTED] list is going.  In the 
words of that great American hero, G.I. Joe, "that's half the battle."

Alex

> >>From: Niclas Hedhman <[EMAIL PROTECTED]>
> >>Date: 2003/11/06 Thu PM 09:29:42 EST
> >>To: "Avalon Developers List" 
> >>Subject: Re: Repository, Bootstrapping and Embedding
> >>
> >>On Friday 07 November 2003 05:12, Stephen McConnell wrote:
> >>
> >>
> I believe apps are artifacts that can be kept in the repo with its
> dependencies.  There are no limitations.  Why treat application artifacts
> any differently?  
> 
> 
> >>I basically agree. And, yes, more "try and see" is probably required.
> >>
> >>
> >>
> >>>I'm mainly thinking here about the stuff that Niclas Hedhman has been
> >>>talking about.  Personally I think its a different viewpoint on the
> >>>component model and I'm still figuring out what that viewpoint
> >>>encompasses and what its relationship is to existing content and service.
> >>>  
> >>>
> >>Basically,
> >>almost ever single application needs something beyond "code" and 
> >>"resources" ( 
> >>resource as in ClassLoader.getResourceAsStream() ).
> >>
> >>At _application_ level, we have bunches of stuff that is pretty much 
> >>common, 
> >>for instance;
> >>
> >>1. Help system
> >>2. Installation instructions.
> >>3. Temporary storage.
> >>4. Configuration files.
> >>
> >>but no matter what list I produce, someone will say "and ...", so for the 
> >>moment, we just accept "stuff".
> >>
> >>Looking at the capability of installers, it is evident that there is a 
> >>great 
> >>deal of requirement surrounding "stuff", may it be due to platform, 
> >>language, 
> >>installation choices, or a dozen other conditions and combinations between 
> >>conditions. I think you get the picture.
> >>
> >>NOW, bringing this to our scenario;
> >>Often components are aware of many "conditions" in the deployment scenario, 
> >>and should (this is something new from head) expose not only the "stuff" 
> >>(artifacts) but the conditions for each such artifact.
> >>How this can be done? No clue at the moment, but FSM and/or scripting comes 
> >>to 
> >>mind.
> >>
> >>At the far end, one could imagine that a set of conditions are given, and 
> >>the 
> >>application self-assemble the "stuff" into a running application. Why not?
> >>What would that do to server (or client for that matter) management?
> >>
> >>We have a long way ahead, but even the longest journeys start with small 
> >>steps.
> >>
> >>
> >>Niclas




Re: RE: Proposals

2003-11-07 Thread aok123


> 
> Well, let's make sure that we get input from the httpd release folks before
> we re-design the layout of the library.  I just want to make sure that we
> have a consensus across projects that everyone can live with, not just Java
> projects, and which works for the full spectrum of projects.
> 
>   --- Noel

I totally second that.  The repository concept should support the entire gambit 
of artifacts that can be generated.  It must be language and application 
neutral hence very extensible.  There should be some caution when deciding upon 
a rigid repository structure that must have the artifact type as a path 
component.  Something tells me this could lead to trouble.

On a side note:

Taging artifacts using attributes can help acheive this as well.  It's another 
potential tool that could be very liberating to those designing the repository 
and its conventions.  I would try to keep the file structure very generic while 
using artifact attributes and some queriable engine to ask for the right kinds 
of artifacts.  

Both webdav/deltaV and directories can play a role here.  As you know you can 
associate properties/attributes with artifacts using webdav.  You can also 
acheive this by using a directory as the relational engine with a webserver as 
the artifact/content store.  Nice thing is, you can wrap the JNDI around it all 
too and switch URL schemes to do different things: use LDAP for relational 
queries on attributes and use http/ftp for content retrieval.  The neat thing 
is we can use the protocol that best suites the activity.

My $0.02

Alex



Merging repository discussions

2003-11-07 Thread aok123
Hi Jason,

> Just a note to any Maven developers who are interested in discussing the
> format of the future repository layout for Apache are welcome to join in
> at [EMAIL PROTECTED] I think we have lots to offer in this area so
> if you have some pop into the discussions.

Very cool you have good timing.  Have you had a chance to look at some of the 
discussions on the avalon-dev list regarding an API for building repository 
aware Avalon applications.

It would be nice to merge our discussions and these topics together as one 
community rather than fragmenting it.  For starters here are links to some of 
those related threads:

http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]&msgNo=22035

http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]&msgNo=22038

I separated it into two parts as two trails to track each peice separately.  I 
may have gotten too creative here ;-).  

Basically we're shooting for having a means to associate attributes with 
artifacts within the repository and have a generic API for repository aware 
and/or repository bootstrapping applications.

The ideas being discussed revolve around the notion of an attribute database to 
be used to centrally manage project related artifact attributes.  This way the 
repository becomes a queriable artifact directory as well as a artifact store.

Are these ideas appealing to the Maven community?

What can we do to consolidate our efforts?

Sincerely,
Alex Karasulu