Re: Gump compatible ant tasks and data types

2004-06-16 Thread Nicola Ken Barozzi
Niclas Hedhman wrote:
On Wednesday 16 June 2004 06:43, Leo Simons wrote:

A further goal later on will probably be to have the
generation of the gump descriptors execute right before every gump run,
which will require a crontab change on brutus and or script change.
Really? Can't just the 'Gump Descriptor Generation' be another Gump project?? 
What Gump would need to support in such case is that the descriptors are 
re-parsed prior to the invocation, not only at the time of determining the 
dependency order.
In Centipede I had the same problem, and we come up with viprom, but it 
never really took off as an effort.

One possibility is that we add to the Gump descriptor extra elements 
with their namespace to declare the extra features needed, and then have 
Gump keep the tags.

In this way *any* other program can parse merge.xml and use those values 
with simple xpath.

Another possibility is to have Gump switch to using the Maven 
descriptor, or a namespaced superset of it...

--
Nicola Ken Barozzi   [EMAIL PROTECTED]
- verba volant, scripta manent -
   (discussions get forgotten, just code remains)
-
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Gump compatible ant tasks and data types

2004-06-15 Thread Leo Simons
I imagine for the gump people the below is as hard to read as it was for 
me. Spend some time on ICQ with Steve trying to figure out what he's on 
about. Basically he's whipped up a rather extensive object model (much 
more so than gump or maven), a superset of gumps object model.

This model is parsed by ant tasks and used to build stuff, populate 
maven-like repositories, etc.

I think the only viable option right now is to have this tool (magic) 
generate a gump descriptor. And because the way this project works 
implies doing more advanced classpath management than gump can feasibly 
do, the only viable option is to generate a descriptor which calls ant 
which calls ant with fork=true, to get back classloader control.

Something like
  project name=foo
ant target=gump
  property project=bar name=bar.jar reference=jar/
  property project=bar name=bar.meta
 path=../target/meta/bar.meta/
/ant
depend project=bar/
  /project
  project name=bar
ant target=gump
  depend property=log4j.jar project=log4j/
/ant
depend project=bar/
  /project
with in the antfile...
target name=gump
  antcall target=main fork=true/
/target
In other words, the problem comes down to figuring out how to set what 
properties. A further goal later on will probably be to have the 
generation of the gump descriptors execute right before every gump run, 
which will require a crontab change on brutus and or script change.

from the peanut gallery,
- LSD
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Gump compatible ant tasks and data types

2004-06-15 Thread Niclas Hedhman
On Wednesday 16 June 2004 06:43, Leo Simons wrote:

 A further goal later on will probably be to have the
 generation of the gump descriptors execute right before every gump run,
 which will require a crontab change on brutus and or script change.

Really? Can't just the 'Gump Descriptor Generation' be another Gump project?? 
What Gump would need to support in such case is that the descriptors are 
re-parsed prior to the invocation, not only at the time of determining the 
dependency order.

 from the peanut gallery,

We are all Code Monkeys :-D

Cheers
Niclas
-- 
   +--//---+
  / http://www.bali.ac/
 / http://niclas.hedhman.org / 
+--//---+


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



Re: Gump compatible ant tasks and data types

2004-06-14 Thread Niclas Hedhman
On Monday 14 June 2004 08:15, Stephen McConnell wrote:
 So - the questions is ... is there a nice small gump API I can build
 against that would enable the possibility for a totally integrated
 solution?

Gump is in Python, and I haven't heard of any Java-Gump binding...

If so, what more precisely do you expect?


Cheers
Niclas

-- 
   +--//---+
  / http://www.bali.ac/
 / http://niclas.hedhman.org / 
+--//---+


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



Gump compatible ant tasks and data types

2004-06-13 Thread Stephen McConnell
Hi guys!
Sorry - but this is a longish email.
I'm starting to entertain some thoughts concerning the integration of 
gump into a set of custom ant tasks and data types that I'm using to 
build Avalon.  Initially I was thinking about generating gump 
descriptors - but I'm starting to think that this is the wrong direction 
and that I should really be looking into task and datatype integration.

What I have in place is a small model that defines a project in terms of 
dependencies and plug-ins.  These description are sufficient to create 
six different path constructs required to build respective target project.

These path constructs include:
  1. main java compile classpath
  2. unit test classpath
  3. runtime api classpath
  4. runtime spi classpath
  5. runtime implementation classpath
  6. composite runtime (4+5+6)
This information is constructed from a small project descriptor.  The 
following example shows the avalon activation package which is itself a 
plugin within another package.

project basedir=../../runtime/activation/impl
  info
groupavalon/activation/group
nameavalon-activation-impl/name
version2.0.0/version
  /info
  dependencies
include key=avalon-util-lifecycle/
include key=avalon-util-i18n/
include key=avalon-util-defaults/
include key=avalon-repository-spi/
include key=avalon-composition-spi/
include key=avalon-composition-impl
   build=false test=true runtime=false/
include key=avalon-activation-api/
include key=avalon-test-components
   build=false test=true runtime=false/
include key=avalon-test-playground
   build=false test=true runtime=false/
  /dependencies
/project
In the above example an include/ element holds a key to another 
project or external resource definition.  For example, 
'avalon-util-lifecycle' is the key to another project that contains 
dependencies on 'avalon-framework-api'.  In turn, the framework api 
definition references the logkit project.  Logkit references a bunch of 
external resources including log4j, servletapi, mailapi and jms.

From the point of view of gump integration - all of the tasks that are 
used in this build solution use a common project model to establish any 
of the six principal path definitions.  For example, the following java 
source from a typical task implementation demonstrates how an ant path 
is constructed:

  ResourceRef ref = new ResourceRef( getKey() );
  Definition definition = getHome().getDefinition( ref );
  Path classpath = definition.getPath( project, Policy.BUILD );
The Definition.getPath(..) method is basically building an ant path 
based on the xml project descriptor shown above.  It seems to me that it 
would make a lot of sense for implementation of Definition.getPath(..) 
to link into a small Gump API when resolving the path values.

The essence of the getPath( .. ) method is :
  public Path getPath( Project project, int mode )
  {
  Path path = new Path( project );
  ResourceRef[] refs =
 getResourceRefs( mode, ResourceRef.ANY, true );
  for( int i=0; irefs.length; i++ )
  {
  ResourceRef ref = refs[i];
  Resource resource = getHome().getResource( ref );
  File file = resource.getArtifact( project );
  path.createPathElement().setLocation( file );
  }
  return path;
  }
From the above - the important lines with respect to Gump integration 
is the the following:

   Resource resource = getHome().getResource( ref );
   File file = resource.getArtifact( project );
   path.createPathElement().setLocation( file );
Currently, the getArtifact(..) operation pulls in resources from a local 
cache (backed by a number of repositories) based on resource identifier 
information include group, resource name and version.  My theory is that 
I should be able to call runtime gump and request the gump artifact for 
a particular group/name combination.

So - the questions is ... is there a nice small gump API I can build 
against that would enable the possibility for a totally integrated solution?

Cheers, Steve.
--
|---|
| Magic by Merlin   |
| Production by Avalon  |
|   |
| http://avalon.apache.org  |
|---|
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]