Re: missing extension-point behaviour

2010-06-24 Thread Stefan Bodewig
On 2010-06-23, Danny Yates wrote:

 Also, I'd really like it so that I don't have to subant (or ant or
 antcall or whetever) into the service-specific scripts, because there are
 (will be) a large number of touch points, and I don't want to have to go and
 find each of them whenever a new service is added.

This is how I understood it.  You are using wildcard imports and
extension-ppoints as an alternative to subant where you have to know all
callable targets upfront.  Given that subant is way more heavyweight
than import and plain dependencies I can understand you want to avoid
subant.

Stefan

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-23 Thread Stefan Bodewig
On 2010-06-22, Danny Yates wrote:

 OK, so no feedback. Consider this to be me nagging :-)

Consider me nagged.

I've taken your patch and modified it locally so the attribute is now
named onMissingExtensionPoint (and the value error has been renamed to
fail).  I've also added constants for the three possible attribute
values to ProjectHelper.

All of this is still open for debate.

It should pop up inside Ant's svn trunk once the current infrastructure
hickups have been resolved (the European svn server seems to be in
trouble right now).

Many thanks for the very complete patch which even addressed the
antstructure task.

Stefan

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-23 Thread Danny Yates
That's awesome. Thanks Stefan.

I take it this will be in 1.8.2 then? Is there a schedule for release?


On 23 June 2010 11:34, Stefan Bodewig bode...@apache.org wrote:

 On 2010-06-22, Danny Yates wrote:

  OK, so no feedback. Consider this to be me nagging :-)

 Consider me nagged.

 I've taken your patch and modified it locally so the attribute is now
 named onMissingExtensionPoint (and the value error has been renamed to
 fail).  I've also added constants for the three possible attribute
 values to ProjectHelper.

 All of this is still open for debate.

 It should pop up inside Ant's svn trunk once the current infrastructure
 hickups have been resolved (the European svn server seems to be in
 trouble right now).

 Many thanks for the very complete patch which even addressed the
 antstructure task.

 Stefan

 -
 To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
 For additional commands, e-mail: dev-h...@ant.apache.org




Re: missing extension-point behaviour

2010-06-23 Thread Stefan Bodewig
On 2010-06-23, Danny Yates wrote:

 I take it this will be in 1.8.2 then?

Yes.

 Is there a schedule for release?

Not even a tentative one so far.

Stefan

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-23 Thread Dominique Devienne
On Wed, Jun 23, 2010 at 5:34 AM, Stefan Bodewig bode...@apache.org wrote:
 I've taken your patch and modified it locally so the attribute is now
 named onMissingExtensionPoint (and the value error has been renamed to
 fail).  I've also added constants for the three possible attribute
 values to ProjectHelper.

 All of this is still open for debate.

I'm not sure I understand the problem at hand, and thus the need for
the proposed solution.

When a build file declares extensionOf=foo on a target, it is in
control and can easily make sure it imports the build file that does
declare the foo extension. I don't see why a build wouldn't in fact,
since it makes no sense IMHO to write extensionOf=foo if you don't.
What am I missing? I can't see the situation that would warrant such a
new feature, that a little refactoring of the builds couldn't solve by
splitting into separate common+build+deploy specific parts. Thanks,
--DD

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-23 Thread Danny Yates
So, we have two top-level Ant scripts: build.xml and deploy.xml. Our system
consists of a number of services and, right now, details of how to build,
package, deploy and start those services is scattered around these files
(and a handful of include/macro files too) which makes adding new services
and updating existing ones quite tricky.

In an effort to rationalise some of this, I am working on the concept of
service descriptors which will describe services - how to build, package,
deploy, start, etc.

To get this working, in both deploy.xml and build.xml we have:

import
fileset dir=${basedir}
includes=service-descriptors/*-descriptor.xml /
/import

And then we define a set of extension points (compile-services  build-jars
in build.xml and deploy-services  start-services in deploy.xml) that the
service descriptors can extend.

Of course, we're asking the service descriptors to extend extension points
from two different master scripts here, and that's where our trouble starts.
We cannot reverse the relationship such that the service descriptors
include/import the master scripts for two reasons:

1) On a deployed system outside of the dev environment, build.xml won't be
present
2) We don't want to just be able to start/stop/package a single service;
instead we want the master script(s) to import all descriptors that they
find and allow the descriptors to hook into points in the build/deploy
process.

We could, of course, write two descriptors for each service - one for build
and one for deploy, but there is a lot of shared stuff between the two -
properties, paths, etc. and that would lead us to having a third file for
each service which represents the common bits, and then we're getting away
from having a centralised definition of a service and not really
gaining/saving anything.

Hence my request to be able to say that if an extension point doesn't exist,
we just ignore that fact. When we're running the build, none of the deploy
extension points will be available, so, as things stand right now, the build
fails. Ditto the build extension points won't be available during a
deployment.

In essence, you describe the build file which uses extensionOf
importing/including the build file which has the extension-points, but we're
trying to work the other way around and throwing two master build files
into the mix!

I hope that's a bit clearer?

Thanks,

Danny.


On 23 June 2010 15:07, Dominique Devienne ddevie...@gmail.com wrote:

 On Wed, Jun 23, 2010 at 5:34 AM, Stefan Bodewig bode...@apache.org
 wrote:
  I've taken your patch and modified it locally so the attribute is now
  named onMissingExtensionPoint (and the value error has been renamed to
  fail).  I've also added constants for the three possible attribute
  values to ProjectHelper.
 
  All of this is still open for debate.

 I'm not sure I understand the problem at hand, and thus the need for
 the proposed solution.

 When a build file declares extensionOf=foo on a target, it is in
 control and can easily make sure it imports the build file that does
 declare the foo extension. I don't see why a build wouldn't in fact,
 since it makes no sense IMHO to write extensionOf=foo if you don't.
 What am I missing? I can't see the situation that would warrant such a
 new feature, that a little refactoring of the builds couldn't solve by
 splitting into separate common+build+deploy specific parts. Thanks,
 --DD

 -
 To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
 For additional commands, e-mail: dev-h...@ant.apache.org




Re: missing extension-point behaviour

2010-06-23 Thread Dominique Devienne
On Wed, Jun 23, 2010 at 2:17 PM, Danny Yates da...@codeaholics.org wrote:
 [...]
 In essence, you describe the build file which uses extensionOf
 importing/including the build file which has the extension-points, but we're
 trying to work the other way around and throwing two master build files
 into the mix!

 I hope that's a bit clearer?

That is clearer indeed, and the reason why I didn't get it, because
what you are trying to achieve is upside-down compared to my
thinking and I suspect the way extension-point where designed to be
used. I kinda understand your rational for doing it that way though,
even though I think I would have gone for a different design,
possibly:

1) merge build.xml and deploy.xml and be done with it. Somehow I
suspect the target sets are mostly orthogonal and the merge is
possible.
2) do exactly what you say you didn't want to do :) i.e. do it
right-side-up by having each service script import (now helper as
opposed to master) build(er).xml and deploy(er).xml. To build all
services, you'd subant into each service-specific script.

So I guess now I'm more +/-0 on this new feature, rather than plain -0.5. --DD

PS: You want fileset dir=service-descriptors
includes=*-descriptor.xml / to ensure you don't scan the whole of
${basedir}. Antoine's optimization probably recognize that case, but
it's always better to be as specific with the fileset's dir attribute
as you can.

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-23 Thread Danny Yates
Thanks for the pointer ref fileset

I'm not sure that merging the two builds is possible for various reasons.
Technically, yes; but for security reasons, no.

Also, I'd really like it so that I don't have to subant (or ant or
antcall or whetever) into the service-specific scripts, because there are
(will be) a large number of touch points, and I don't want to have to go and
find each of them whenever a new service is added. As I have it now, adding
a new service is as simple as dropping in a new service descriptor.

Cheers,

Danny.


On 23 June 2010 20:46, Dominique Devienne ddevie...@gmail.com wrote:

 On Wed, Jun 23, 2010 at 2:17 PM, Danny Yates da...@codeaholics.org
 wrote:
  [...]
  In essence, you describe the build file which uses extensionOf
  importing/including the build file which has the extension-points, but
 we're
  trying to work the other way around and throwing two master build files
  into the mix!
 
  I hope that's a bit clearer?

 That is clearer indeed, and the reason why I didn't get it, because
 what you are trying to achieve is upside-down compared to my
 thinking and I suspect the way extension-point where designed to be
 used. I kinda understand your rational for doing it that way though,
 even though I think I would have gone for a different design,
 possibly:

 1) merge build.xml and deploy.xml and be done with it. Somehow I
 suspect the target sets are mostly orthogonal and the merge is
 possible.
 2) do exactly what you say you didn't want to do :) i.e. do it
 right-side-up by having each service script import (now helper as
 opposed to master) build(er).xml and deploy(er).xml. To build all
 services, you'd subant into each service-specific script.

 So I guess now I'm more +/-0 on this new feature, rather than plain -0.5.
 --DD

 PS: You want fileset dir=service-descriptors
 includes=*-descriptor.xml / to ensure you don't scan the whole of
 ${basedir}. Antoine's optimization probably recognize that case, but
 it's always better to be as specific with the fileset's dir attribute
 as you can.

 -
 To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
 For additional commands, e-mail: dev-h...@ant.apache.org




Re: missing extension-point behaviour

2010-06-23 Thread Dominique Devienne
On Wed, Jun 23, 2010 at 4:27 PM, Danny Yates da...@codeaholics.org wrote:
 Thanks for the pointer ref fileset

 I'm not sure that merging the two builds is possible for various reasons.
 Technically, yes; but for security reasons, no.

 Also, I'd really like it so that I don't have to subant (or ant or
 antcall or whetever) into the service-specific scripts, because there are
 (will be) a large number of touch points, and I don't want to have to go and
 find each of them whenever a new service is added. As I have it now, adding
 a new service is as simple as dropping in a new service descriptor.

You already have these descriptor builds, so importing them all in 2
builds, or have them import 2 builds is not much different, and that's
the same number of touch points if you add a new service.

But I'll stop arguing, I don't know the specifics and you obviously
made these conscious choices for a reason. I'm still a bit on the
fence, but that doesn't matter, you already got buy in from Stefan, so
my guess is that you're mostly home free having this feature enabled
given that no other commiters chimed in ;) Cheers, --DD

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-22 Thread Danny Yates
OK, so no feedback. Consider this to be me nagging :-)


On 21 June 2010 13:37, Stefan Bodewig bode...@apache.org wrote:

 On 2010-06-21, Danny Yates wrote:

  Anything I can do to assist?

 Wait and answer questions/concerns as they arrise (if they arrise).

 Nag and become annoying if you feel it takes too long ;-)

 Stefan

 -
 To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
 For additional commands, e-mail: dev-h...@ant.apache.org




Re: missing extension-point behaviour

2010-06-21 Thread Stefan Bodewig
On 2010-06-19, Danny Yates wrote:

 I've made some changes to add an extension-point-missing attribute which
 takes values:

- error - the current behaviour (and default if the attribute is
missing)
- warn - log a warning and ignore (see next)
- ignore - don't stop or warn, and don't add the extension target as a
dependency of the (non-existent) extension point

Sounds reasonable - one could argue about the name and see whether there
is anything that better matches existing names in Ant, but that's a
different issue.

 I'd like to submit this patch for consideration for Ant 1.8.2. How do I go
 about doing that?

You've done everything exactly the way it should be: Prepare a patch
against svn trunk, ideally containing test cases and documentation, open
a bugzilla issue and attach it there.  Discuss your proposal on this
list.

Now let's wait to see whether any of the other developers has an opinion
on it as well.

Stefan

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org



Re: missing extension-point behaviour

2010-06-21 Thread Danny Yates
Thanks Stefan.

Anything I can do to assist?

Cheers,

Danny.

On 21 June 2010 07:59, Stefan Bodewig bode...@apache.org wrote:

 On 2010-06-19, Danny Yates wrote:

  I've made some changes to add an extension-point-missing attribute
 which
  takes values:

 - error - the current behaviour (and default if the attribute is
 missing)
 - warn - log a warning and ignore (see next)
 - ignore - don't stop or warn, and don't add the extension target as
 a
 dependency of the (non-existent) extension point

 Sounds reasonable - one could argue about the name and see whether there
 is anything that better matches existing names in Ant, but that's a
 different issue.

  I'd like to submit this patch for consideration for Ant 1.8.2. How do I
 go
  about doing that?

 You've done everything exactly the way it should be: Prepare a patch
 against svn trunk, ideally containing test cases and documentation, open
 a bugzilla issue and attach it there.  Discuss your proposal on this
 list.

 Now let's wait to see whether any of the other developers has an opinion
 on it as well.

 Stefan

 -
 To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
 For additional commands, e-mail: dev-h...@ant.apache.org




Re: missing extension-point behaviour

2010-06-21 Thread Stefan Bodewig
On 2010-06-21, Danny Yates wrote:

 Anything I can do to assist?

Wait and answer questions/concerns as they arrise (if they arrise).

Nag and become annoying if you feel it takes too long ;-)

Stefan

-
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org