Hi Again after 9 years

2013-11-13 Thread Gus Heck
Don't know if any1 remembers me but I contributed some tasks and fixes back
in 2003-2004 (1.4 - 1.6 days) I'm thinking of writing a task to pack .crx
files for chrome extensions. I have the following questions:


   1. Is there interest for such a task to be contributed? It seems that
   there are no pure java options out there so this would be useful.
   2. Are there any major changes in the way a task is written today vs
   1.6. You don't need to tell me things that are on here:
   http://ant.apache.org/manual/develop.html . Rather, I am looking for
   advice about what may have changed in ant that I may trip over.

What do folks think?

-Gus


-- 
http://www.the111shift.com


Re: macro and XML NS hell ;-)

2004-03-03 Thread Gus Heck
=The value of property foo is baz /
  /case
  default
ant:echo message=The value of property foo is not sensible /
  /default
/ac:switch
/project
However, in real use switch probably does more than just echo on each 
line and so this is of limited help.

Unless I am confused, in your example ant would wind up looking for 
ant:case, and when it didn't find it it would have to poll the 
containing elements for their name spaces and search those name spaces 
or just search all available name spaces for a matching element. (the 
latter of which obviously runs into problems).

If we do take a shortcut I think it would be better to do it like this:
project default=compile
switch value=${foo} xmlns=antlib:net.sf.antcontrib
  case value=bar
echo message=The value of property foo is bar /
  /case
  case value=baz
 echo message=The value of property foo is baz /
  /case
  default
echo message=The value of property foo is not sensible /
  /default
/ac:switch
/project
This version means that ant looks for an echo element in the antcontrib 
name space. Upon not finding an ant contrib echo it only has to look in 
ant core for an alternate echo element  and if it doesn't have either an 
antcontrib echo or an ant echo, it should fail. Basically what we have 
here is the condition that all antlibs inherit (but may overide) ant 
core tasks.

I like that one better, what do you think?
Gus
Peter
Gus Heck wrote:
Gus Heck wrote:

re given to the elements in the calling macro.
In ant 1.6.0+, the namespace of elements discovered by reflection take
the namespace uri of type/task that contains the element (Note this 
is the
uri and not the localname).

The enclosed patch will allow the namespace of nested elements to be
either the ant uri or the namespace of the containing type/task.
I am quite possibly confused but I thought xml namespaces required 
that the namespace be

1. The namespace indicated by the specified prefix
2. If there is no prefix, then the current default namespace must be 
used. (defined on some containing element, be it the top element or 
some other containing element with an xmlns=some uri).

If an unprefixed element is taking on a namespace not declared with 
xmlns=some uri (which is different from xmlns:foo=some uri) 
aren't we blowing it in implementing namespaces correctly?

-Gus
Was I wrong? Confused? or just ignored?
-Gus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

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


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

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


Re: macro and XML NS hell ;-)

2004-03-02 Thread Gus Heck
Gus Heck wrote:

re given to the elements in the calling macro.
In ant 1.6.0+, the namespace of elements discovered by reflection take
the namespace uri of type/task that contains the element (Note this 
is the
uri and not the localname).

The enclosed patch will allow the namespace of nested elements to be
either the ant uri or the namespace of the containing type/task.
I am quite possibly confused but I thought xml namespaces required 
that the namespace be

1. The namespace indicated by the specified prefix
2. If there is no prefix, then the current default namespace must be 
used. (defined on some containing element, be it the top element or 
some other containing element with an xmlns=some uri).

If an unprefixed element is taking on a namespace not declared with 
xmlns=some uri (which is different from xmlns:foo=some uri) aren't 
we blowing it in implementing namespaces correctly?

-Gus
Was I wrong? Confused? or just ignored?
-Gus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

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


Re: BugID 27282 Misspelling: s/occured/occurred/g

2004-03-02 Thread Gus Heck
Perhaps we need to appoint a committee to research spellings and 
spelling variants. Then we could foot note all words with variants for 
clarity.

Honestly we should pick a single reference and a single locale and 
standardize on that. That way when a bug like this comes in we check the 
reference, and say yeah or nay without 6-10 emails of discussion. Given 
this discussion and the earlier mis pelt (my spell checker objects 
without the space :) ) discussion, I think we should spend more time 
coding and less time spelling things out.

-Gus
wrote:
Not a native speaker either, but in possesion of an Oxford Advanced 
Learners Dictonary...

This states:
occur:  take place; happen: Don't let this ~ again
... An idea has ~red to me. ...
Since it usally lists differences for GB/UK, and doesn't mention
it here,
 'occurred'
is probably the only correct spelling for this one.
Regards,
Thomas
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

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


Re: [Ant Wiki] Updated: FrontPage

2004-03-02 Thread Gus Heck
All the wiki mails are comming to me with the date 12/31/1969... is this 
intentional? It looks like a bug in the setups somewhere.

[EMAIL PROTECTED] wrote:
  Date: 2004-03-01T10:19:22
  Editor: 66.80.4.221 
  Wiki: Ant Wiki
  Page: FrontPage
  URL: http://wiki.apache.org/ant/FrontPage
  no comment
Change Log:
--
@@ -1,7 +1,7 @@
##language:en
#pragma section-numbers off
-= Welcome to the Ant Wikis =
+= Welcome to the Ant Wiki =
The Ant Wiki has been migrated from its old home on nagoya.apache.org to part of the Apache Wiki Farm. If you find any issues, feel free to fix them up. 

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


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


Re: macro and XML NS hell ;-)

2004-02-24 Thread Gus Heck

re given to the elements in the calling macro.
In ant 1.6.0+, the namespace of elements discovered by reflection take
the namespace uri of type/task that contains the element (Note this is 
the
uri and not the localname).

The enclosed patch will allow the namespace of nested elements to be
either the ant uri or the namespace of the containing type/task.
I am quite possibly confused but I thought xml namespaces required that 
the namespace be

1. The namespace indicated by the specified prefix
2. If there is no prefix, then the current default namespace must be 
used. (defined on some containing element, be it the top element or some 
other containing element with an xmlns=some uri).

If an unprefixed element is taking on a namespace not declared with 
xmlns=some uri (which is different from xmlns:foo=some uri) aren't 
we blowing it in implementing namespaces correctly?

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


Re: something for you [new virus?]

2004-02-19 Thread Gus Heck
More likely, someone who's collected adresses includes both peter's 
address and this list  has the virus. Is it you? :)

-Gus
Alexey N. Solofnenko wrote:
Have you installed a new virus?
- Alexey.
[EMAIL PROTECTED] wrote:
you earn money
 


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

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

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


Re: Ant 1.7 (target access)

2004-02-18 Thread Gus Heck

In any case I am starting to think about ant 1.7 and further.
Here are the points which spring to my mind :
1) local properties,
2) roles,
3) get the xdocs proposal out,
4) think about virtual file system abstractions, and do something 
about them,
5) fix some popular bugs from bugzilla

How about access levels for targets too? In my patch to this effect (bug 
22020) I addressed this from the perspective of command line invocation, 
but it was suggested that it would be better to come up with a solution 
that also related to use of targets by imports, the ant task, etc... and 
that a change that large should wait till 1.7. Now would seem to be the 
time to start a discussion and figure out what is desired here.

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


Re: REGRESSION: Ant 1.6+ doesn't detect duplicate targets

2004-02-18 Thread Gus Heck
With a notion of target access levels we could flag a target as 
overridable, and leave the default as not overridable perhaps... kinda 
like java's final modifier only backwards.

-Gus
Dominique Devienne wrote:
From: Peter Reilly [mailto:[EMAIL PROTECTED]
I think it is used as a feature with the import task for target
overriding...
   

I thought that was the origin of the problem, but that doesn't make it less
of a bug I'd say. Not much sense in the same build file overriding its own
targets, no? It is a bug in one of my build file, and I'd like Ant to tell
me about it. It's already much more difficult to know that a build file is
correct with Ant 1.6+, since only executed tags are validated, so lets not
add to the confusion with allowing duplicate targets in build files, please.
Just yesterday I fixed yet another hidden bug in another build file, where
the content of an outofdate was executed for the first time in a long
while, because running in a newly checked out sandbox. I had the outofdate
in an xmlns=..., and the Ant targets in sequential could thus not be
found in the Ant-Contrib namespace...
This kind of hidden bugs would warrant UNIT tests for build files, to run
all possible targets, in all circumstances, with code coverage of the build
file code, etc... I liked the fail-fast behavior of Ant 1.5 better, even
though I'm aware of the technical reasons behind the changes to all UE. --DD
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: [VOTE] Include the Apache 2.0 License in ant 1.6.1

2004-01-27 Thread Gus Heck
If it doesn't go in 1.6.1 won't we be forced to do a 1.6.2 or 1.6.1p1 or 
something to update the licenses by March 1?

[EMAIL PROTECTED] wrote:
If there is time enough for that modifications, ok. Otherwise we should 
wait for the next release (may it be 1.6.2)

But we should put the result of this vote on the web site.
Jan
 


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


A path for Ant 2? (was Re: FYI: Blog Complex build systems need a real language found)

2004-01-22 Thread Gus Heck
This thread has somewhat stirred up my brain a bit and a thought that 
floated to the top goes like this:

We do want to be able to write simple declaritive build scripts for 
builds. I think this is a major virture of Ant. But clearly when one 
ventures into the system of builds and such there are people who feel 
they need a more programatic tool. Maybe what is happening here is that 
we are trying to make Ant do too much... feature creep in essence.

So the interesting (to me) part of the thought I had is this: Perhaps 
Ant is the tool for defining small declarative builds, or portions of a 
complex build system, and another more programatic tool should be 
created to take a series of Ant builds and coordinate them in large 
projects. While custom tasks are a great tool to have, and that option 
should always remain open, java is not a scripting language, it is an OO 
language, and one winds up with a fair bit of OO overhead (that's a fun 
one to say :) ). It takes some time and effort to learn where to find 
the things you need to write a custom task (like the use of 
DirectoryScanner, and the half dozen types of results it creates and the 
difference between getNotIncludedFiles, getExcludedFiles, and 
getDeselectedFiles).

Maybe this is the real role for Ant 2?  Ant 2 could use Ant 1 builds (or 
something close that can be autocreated from ant 1 builds) as atomic 
units, and provide a more comprehensive means of coordinating them, 
passing properties into them, etc.

We could promote it like like a movie sequel :) Ant II: The Colony
-Gus
Stefan Bodewig wrote:
On Wed, 21 Jan 2004, Jan Materne [EMAIL PROTECTED] wrote:
 

http://www.theserverside.com/news/thread.jsp?thread_id=23426
   

I don't read TSS and haven't followed the article, but Jon is the
build guy at ThoughtWorks, Martin Fowler's company.  Martin has
already blogged[1] about the same issue and my main comment[2] is that
it is true.  Complex builds need a real language and to me the real
language is Java - write tasks.
Stefan
Footnotes: 
[1]  http://martinfowler.com/bliki/BuildLanguage.html

[2]  http://stefanbodewig.blogger.de/stories/48048/
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: [VOTE] Bug Tracking System

2004-01-20 Thread Gus Heck
My non-non commiter vote:
[ ] +1 Bugzilla sucks - go to Jira
[x] -1 BugZilla rocks - if it ain't broke, don't fix it.
 

Doesn't it figure. I read a similar commons thread, and wrote a long 
email about why I think bugzilla is friendlier to the novice user than 
both JIRA and Scarab then I come here and see the same issue. Apparently 
I should have wrote it here... That is what I get for reading the other 
mail first :)  One of the biggest strengths of Ant (and any OSS project) 
is the user feedback from both experienced and novice users... Here is 
most of what I posted (minus a question that has already been answered 
there), which I think we should consider here too. (I don't beleive it 
is likely to have hit the archives yet or I would link it).

I sometimes think that there is an aspect of the ASF bug tracking 
systems that gets forgotten... How easy it is to learn to use them. As a 
contributer to Ant, and an operator of my own bugzilla, I have been very 
satisfied with bugzilla in this repsect. The first time I ever used 
bugzilla I had no trouble figuring out how to do a query, or fill in a 
bug form. The query form seemed a bit disorganized, but there were lots 
of explanatory links and with a little looking I found the submit button 
without too much trouble. I have not once had to explain details of how 
to use bugzilla to users of my bugzilla, nor have I recieved complaints 
about it. Some of the users are introductory programming students who 
have never used any bug tracker before.

In contrast, I don't like scarab. I have several times found issues in 
OJB (relating to JDO implementations), but they use Scarab. Scarab I 
regret to say is quite difficult to use (at least if you don't already 
know how to use it, or maybe only if you are used to using bugzilla, I 
don't know which). It entirely fails to document itself clearly. 
Bugzilla has explanitory links all over it's bug creation and query 
forms, which is something I beleive to be critical to a bug tracking 
system that will be accessed by users who are not already familiar with 
it. I have several times tried to use Scarab, and each time it has 
failed, or it has eaten all my plain text formatting by coalescing all 
the whtiespace (that makes stack traces really fun to read), or whatnot. 
I am sure it is user error on my part, but so far I really haven't had 
time to find out where to read up on how to properly use Scarab. Another 
annoyance is that after you sign up for an account with scarab it tells 
you you must request membership in a project, which seems to imply 
that you might be rejected. Really not a very welcoming start.

The systems used at apache should (IMHO) be transparent, user friendly 
and self explanitory. If they want users to report bugs in their 
software, it should be easy to learn the system. The current result with 
Scarab and me, is if I see that a project uses scarab, I only report 
bugs on their mailing list. I suppose if I decide I want to become a 
direct contriubuter to a project that uses Scarab, or I have some free 
time and think of it, I will take the time do the research to figure out 
how to enter bugs properly in Scarab.

So I wrote the above mostly based on the gut reaction, oh no not another 
bug system to fight with...

After looking at Jelly's JIRA as linked from their project pages 
(http://nagoya.apache.org/jira/secure/BrowseProject.jspa?id=10012), it 
is clear that there are some nice features, it looks nicer than both 
bugzilla and scarab and is and friendlier than scarab, but I do see one 
major usability glitch. Nowhere did I see a link for Entering a bug. 
This is the main reason people come to a bug database. How can there not 
be a link on the front page for it!?!? I have a strong suspeicion that 
such a link would have appeared had I created an account and logged in, 
but there was no link for that either... just a log in link. (now I 
think it is vairly likely if I followed the log in link it would 
eventually get me to an account creation link, but) Only my existing 
knowledge of how web apps and bug trackers tend to work tells me that. 
Nothing on the page helps you enter a bug. (unless I am blind or stupid, 
both of which happen occasionally). It could use more explanitory links 
too, but at least there was a help link (once I saw the really tiny 
bubble thing in the upper right) that led to a detailed manual (though 
that manual didn't have a Enter a bug section). I didn't have time to 
browse the manual deeply, but this is still inferior to links on the 
issue entry page, because the user must leave the page, and search the 
manual for the item they don't understand, rather than being taken 
directly to the item. It's hypertext man, take advantage of that!

The entry page is is a stark contrast to bugzilla where you are 
immediately provided with links to do each of the main tasks (quick 
search, detailed query, enter bug, get summaries, log in, create 
account). Whatever 

Re: a comment about xml namespace

2004-01-03 Thread Gus Heck
I have only followed this discussion peripherally at best, and I know it
has been going on for a while, so I am almost certainly be missing
information from previous posts, but here's what strikes me as
potentially reasonable... and thus represents my initial expectations of
what I will find when I do get around to exploring antlibs. It seems to
me that in an ant file of the future one might find:
1. There should be a name space URI that ant uses to identify it's
internal core components... the things we distribute that are not in
antlibs. This should be the default namespace for any element that does
not have a defined namespace. This could have a antcore:// or just
ant:// scheme part for recognizability, or be a http:// schemed URI with
the idea that it better identifies the source of the program intended to
process the xml. Since it is unique it could be mumblyfoo://barbazbam 
and still work (I think). This would also apply to tasks introduced with 
taskdef/.

2. The name space URIs that antlibs declare to identify their
components. Each of these is associated with user specified prefix. We 
probably should require these URI's to use the antlib:// scheme so that 
they are easily identified as xml elements that we _do_ need to pay 
attention to. Elements without a prefix that were not matched against 
the core could then be searched for among the antlibs to retain back 
compatability, but just as with classpaths it might matter what order 
the antlibs were in if there were conflicting elements. User specified 
antlibs would need to follow the ones we distributed in the search 
order. This is potentially hairy, but if it is to be possible for people 
to write and distribute thier own antlibs, then this is going to crop up 
no matter what we do. The URI should be defined IN the antlib, and might 
be associated with it's prefix directly in the ant xml (causing the main 
engine to look for an antlib in default and declared locations that 
declares itself as to have that URI and error out if an antlib:// scheme 
uri does not match an available antlib) or if the user wants to use only 
default name spaces and let ant figure out what lib to use antlib 
lib=foo/bar-antlib.jar/ or somesuch to tell ant to look there too for 
otherwise unrecognized elements.

It would seem reasonable that antlibs maintained by apache ant would
have a uri like:
  antlib://ant.apache.org/antlibs/tasks/optional/unix#
and the individual tasks could be identified as the fragment parts:
  antlib://ant.apache.org/antlibs/tasks/optional/unix/#symlink
  antlib://ant.apache.org/antlibs/tasks/optional/unix/#chgrp
This gives each task a URI of it's own, and would potentially allow us, 
custom task authors, or anlib authors to provide RDF metadata for tasks 
as well as RDF metadata in the build file. I'm not sure how such data 
would get used, but I'm sure someone will think of a use. Perhaps there 
will be an ontology to describe tasks to IDE's so that IDE's can attempt 
to integrate antlibs not known about by the IDE authors? like maybe this 
triple for a dependancyreasoner task

antlib://example.org/antlibs/#dependancyreasoner
http://ant.apache.org/ontologies/ant-ide-integration#contentType
http://www.w3.org/2002/07/owl#
The IDE could then ask itself (or some external entity) if it knew 
anything about OWL, and perhaps discover a means of validating the 
content as proper OWL (a web service? something like w3c's 
html-validator? download a lib from the ide vendor?) or warn the user 
that it doesn't know how to validate OWL. Ok so I can think of one... 
Imagine builds that think for themselves... scary :)

Antcontrib might have an antlib that was specified as:
  antlib://ant-contrib.sourceforge.net#
which of course has.
  antlib://ant-contrib.sourceforge.net#foreach
3. Other name space URI's associated with prefixes but not associated
with antlibs. If it isn't in the core and it is not an antlib, just
ignore it. If it is contained within a task, it should be available to
the task If the task requires (for example) valid RDF subelements, it
should look for elements that are associated with the rdf namespace(s),
and ignore others. Tasks requiring content that uses an external name
space should have a way of communicating this namespace to a list of
recognized name spaces.
Then one could run ant in 1 of 3 name space modes... -nsFail -nsWarn
-nsIgnore. I don't see typos as a big problem if things were done this
way, because URI's would be pulled from the libs and prefix typos can be
identified with warn or fail mode. If you typo from one prefix into
another... I don't think we can ever fix that problem. If you construct
your build in a way that regularly uses outside name spaces without a
task to register them as recognized, the ?ant-ignore uri=? seems
like a good way to still allow -nsFail to be useful, but if you do
  ?ant-ignore uri=http://www.w3.org/1999/02/22-rdf-syntax-ns#; ?
then you can't have a task that uses RDF subelements (unless 

Re: a comment about xml namespace

2004-01-02 Thread Gus Heck
This seems to be an incomplete version of what I wrote and does not 
match what I find in my sent folder. I will try again and hope I don't 
spam you all too much. my mail client seems to be acting funny. Appologies.

-Gus
Gus Heck wrote:
I have only followed this discussion peripherally at best, and I know 
it has been going on for a while, so I am almost certainly be missing 
information from previous posts, but here's what strikes me as 
potentially reasonable... and thus represents my initial expectations 
of what I will find when I do get around to exploring antlibs. It 
seems to me that in an ant file of the future one might find:

1. There should be a name space URI that ant uses to identify it's 
internal core components... the things we distribute that are not in 
antlibs. This should be the default namespace for any element that 
does not have a defined namespace. This could have a antcore:// or 
just ant:// scheme part for recognizability, or be a http:// schemed 
URI with the idea that it better identifies the source of the program 
intended to process the

2. The name space URI that a given antlib declares to identify it's 
components and is associated with user specified prefix.We probably 
should require these URI's to use the antlib:// scheme so that they 
are easily identified as xml elements that we do need to pay attention 
to. Elements without a prefix that were not matched against the core 
could then be searched for among the antlibs, but just as with 
classpaths it might matter what order the antlibs were in if there 
were conflicting elements. This is potentially hairy, but if it is to 
be possible for people to write and distribute thier own antlibs, then 
this is going to crop up no matter what we do. The URI should be 
defined IN the antlib, and might be associated with it's prefix 
directly in the ant xml (causing the main engine to look for an antlib 
in default and declared locations that declares itself as to have that 
URI and error out if an antlib:// scheme uri does not match an 
available antlib) or if the user wants to use only default name spaces 
and let ant figure out what lib to use antlib 
lib=foo/bar-antlib.jar/ or somesuch to tell ant to look there too 
for otherwise unrecognized elements.

It would seem reasonable that antlibs maintained by apache ant would 
have a uri like:

 antlib://ant.apache.org/antlibs/optional/unix
and the individual tasks could be identified (though I am not sure 
what use it is for ant, it would be genrally consistant with RDF and 
potentially allow us, custom task authors, or anlib authors to provide 
RDF metadata for tasks) as the fragment parts:

 antlib://ant.apache.org/antlibs/optional/unix/#symlink
 antlib://ant.apache.org/antlibs/optional/unix/#chgrp
antcontrib might have an antlib that was specified as..
 antlib://ant-contrib.sourceforge.net
which of course has.
 antlib://ant-contrib.sourceforge.net#foreach
3. Other name space URI's associated with prefixes but not associated 
with antlibs. If it isn't in the core and it is not an antlib, just 
ignore it. If it is contained within a task, it should be available to 
the task If the task requires (for example) valid RDF subelements, it 
should look for elements that are associated with the rdf 
namespace(s), and ignore others. Tasks requiring content that uses an 
external name space should have a way of communicating this namespace 
to a list of recognized name spaces.

Then one could run ant in 1 of 3 name space modes... -nsFail -nsWarn 
-nsIgnore. I don't see typos as a big problem if things were done this 
way, because URI's would be pulled from the libs and prefix typos can 
be identified with warn or fail mode. If you typo from one prefix into 
another... I don't think we can ever fix that problem. If you 
construct your build in a way that regularly uses outside name spaces 
without a task to register them as recognized, the ?ant-ignore 
uri=? seems like a good way to still allow -nsFail to be useful, 
but if you do

 ?ant-ignore uri=http://www.w3.org/1999/02/22-rdf-syntax-ns#; ?
then you can't have a task that uses RDF subelements (unless there is 
a way for tasks to un-ignore name spaces, or ignore without throwing 
away).

How far are my expectations from what is actually in place? What are 
the flaws in my expectations (I am sure there will be plenty :) )?

-Gus
Jose Alberto Fernandez wrote:
From: Jim Fuller [mailto:[EMAIL PROTECTED]
I like the idea that Ant may understand what to do with other 
external namespaces like such as proposed with the html: example. 
And generally agree with how it is proposed how Ant deals with 
namespaces it 'knows' about.

  

I am going to become picky here because I think it is important
to understand the small details in this conversation.
There are several ways to understand what it means for ANT to know 
about a namespace:

1) ANT knows about any namespace declaration that there is in your 
buildfile. This may not seem too

Re: a comment about xml namespace

2004-01-02 Thread Gus Heck
I have only followed this discussion peripherally at best, and I know it
has been going on for a while, so I am almost certainly be missing
information from previous posts, but here's what strikes me as
potentially reasonable... and thus represents my initial expectations of
what I will find when I do get around to exploring antlibs. It seems to
me that in an ant file of the future one might find:
1. There should be a name space URI that ant uses to identify it's
internal core components... the things we distribute that are not in
antlibs. This should be the default namespace for any element that does
not have a defined namespace. This could have a antcore:// or just
ant:// scheme part for recognizability, or be a http:// schemed URI with
the idea that it better identifies the source of the program intended to
process the xml. Since it is unique it could be mumblyfoo://barbazbam
and still work (I think). This would also apply to tasks introduced with
taskdef/.
2. The name space URIs that antlibs declare to identify their
components. Each of these is associated with user specified prefix. We
probably should require these URI's to use the antlib:// scheme so that
they are easily identified as xml elements that we _do_ need to pay
attention to. Elements without a prefix that were not matched against
the core could then be searched for among the antlibs to retain back
compatability, but just as with classpaths it might matter what order
the antlibs were in if there were conflicting elements. User specified
antlibs would need to follow the ones we distributed in the search
order. This is potentially hairy, but if it is to be possible for people
to write and distribute thier own antlibs, then this is going to crop up
no matter what we do. The URI should be defined IN the antlib, and might
be associated with it's prefix directly in the ant xml (causing the main
engine to look for an antlib in default and declared locations that
declares itself as to have that URI and error out if an antlib:// scheme
uri does not match an available antlib) or if the user wants to use only
default name spaces and let ant figure out what lib to use antlib
lib=foo/bar-antlib.jar/ or somesuch to tell ant to look there too for
otherwise unrecognized elements.
It would seem reasonable that antlibs maintained by apache ant would
have a uri like:
   antlib://ant.apache.org/antlibs/tasks/optional/unix#
and the individual tasks could be identified as the fragment parts:
   antlib://ant.apache.org/antlibs/tasks/optional/unix/#symlink
   antlib://ant.apache.org/antlibs/tasks/optional/unix/#chgrp
This gives each task a URI of it's own, and would potentially allow us,
custom task authors, or anlib authors to provide RDF metadata for tasks
as well as RDF metadata in the build file. I'm not sure how such data
would get used, but I'm sure someone will think of a use. Perhaps there
will be an ontology to describe tasks to IDE's so that IDE's can attempt
to integrate antlibs not known about by the IDE authors? like maybe this
triple for a dependancyreasoner task
antlib://example.org/antlibs/#dependancyreasoner
http://ant.apache.org/ontologies/ant-ide-integration#contentType
http://www.w3.org/2002/07/owl#
The IDE could then ask itself (or some external entity) if it knew
anything about OWL, and perhaps discover a means of validating the
content as proper OWL (a web service? something like w3c's
html-validator? download a lib from the ide vendor?) or warn the user
that it doesn't know how to validate OWL. Ok so I can think of one...
Imagine builds that think for themselves... scary :)
Antcontrib might have an antlib that was specified as:
   antlib://ant-contrib.sourceforge.net#
which of course has.
   antlib://ant-contrib.sourceforge.net#foreach
3. Other name space URI's associated with prefixes but not associated
with antlibs. If it isn't in the core and it is not an antlib, just
ignore it. If it is contained within a task, it should be available to
the task If the task requires (for example) valid RDF subelements, it
should look for elements that are associated with the rdf namespace(s),
and ignore others. Tasks requiring content that uses an external name
space should have a way of communicating this namespace to a list of
recognized name spaces.
Then one could run ant in 1 of 3 name space modes... -nsFail -nsWarn
-nsIgnore. I don't see typos as a big problem if things were done this
way, because URI's would be pulled from the libs and prefix typos can be
identified with warn or fail mode. If you typo from one prefix into
another... I don't think we can ever fix that problem. If you construct
your build in a way that regularly uses outside name spaces without a
task to register them as recognized, the ?ant-ignore uri=? seems
like a good way to still allow -nsFail to be useful, but if you do
   ?ant-ignore uri=http://www.w3.org/1999/02/22-rdf-syntax-ns#; ?
then you can't have a task that uses RDF subelements (unless there is a
way for tasks to 

Re: [VOTE] macrodef - do attributes as properties or substitutions

2003-11-19 Thread Gus Heck
My (non-committer) oppion coincides with Stefan here,  with a slight 
preference for

@{x}
because it looks like put the substitution AT this location when I 
read it to myself.

However I can understand that $ escaping is already done and well tested 
so reusing that code has value. $(x) is good enough for me if that is a 
priorety (you will note I am not offering to code @{x} :) ). 

(or we could make it (:x:) so that mozilla can turn them all into 
smilies when we paste it to the list :) )

-Gus
Stefan Bodewig wrote:
On Mon, 17 Nov 2003, peter reilly [EMAIL PROTECTED] wrote:
 

OK, how do we want to implement macrodef attributes:
 current
[ ] as textual substitution~ 4
[ ] as real Ant properties   ~ 2
undecided   ~ 1
   

only counting the binding votes would result in 1/2/1, so neither
choice has received enough binding votes by now.  Dominique, Jose
Alberto and Steve know that I'm not ignoring their votes, but
technically they are non-binding.
 

If macrodef attribute are to be implements as substitutions, what
should be the notation? (where x is the attribute name)
[ ] as ${x} (look like ant properties)
   

-1, too confusing.
 

[ ] as @x
   

-1 doesn't work if you want to concatenate an expanded attribute and
some other text, i.e.
attribute name=foo/
attribute name=foobar/
is @foobarbaz the expansion of foo plus the literal text barbaz or is
it the attribute foobar plus the literal text baz - or something
completely different?
 

[ ] as ${attribute:x}
   

-1 - still looks too much like a property and collides with existing
properties that's name starts with attribute: (unlikely but
possible).
 

[ ] as $(x) 
[ ] as @{x}
   

either one works for me - as well as [EMAIL PROTECTED]
Stefan
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: Brent Rector on Msbuild vs Ant

2003-11-13 Thread Gus Heck

now, they dont have to care what I say, but we do have the option of 
pulling all .NET support from ant1.6...we will just have to see if 
that matters to them. It'll be an interesting test of conflict of the 
tactical 'get .net developers today' over the strategic 'own the 
developers forever'.

I think they would cheer if we took out .net support. It would give them 
another selling point for msbuild. The thing they hate most is 
competition. Leave it in and they will be more annoyed :).

-Gus

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


Re: [ANTidote] possibly needs to be renamed!

2003-10-16 Thread Gus Heck
I don't know much about trademark law, but doesn't it matter if their 
trademark precedes our usage? I'm pretty sure I can't declare Red to 
be my trademark and then tell certain linux distributors that they must 
cease associating their product with mine... can I?

-Gus
Christoph Wilhelms wrote:
Hi all!
I just want to tell you, that the President of the company Druide
http://www.druide.com Eric Brunelle infomed me, that his company own the (not 
shure
if just French or international) trademarks for the name Antidote in
relation to computer software products. If I understand correctly the purpose of
this software (http://www.antidote.info) it is a spellchecking and thesaurus
software for general purpose and has nothing in common with our ANTidote.
I proposed to let everything like it is, linking his URL from out Antidote
project page to redirect the users of the other Antidote...
Anyways: If we have to rename it, I propose to use a simple and gereic name
like Ant GUI.
Additionally: Renaming sounds like a not too bad idea, because I found
(using Google) some virus detection programs called Antidote...
Thoughts!?!
Christoph
 


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


Re: [ANTidote] possibly needs to be renamed!

2003-10-16 Thread Gus Heck
Hmm I have this suspicion that we are just an ancillary target, these 
people probably really want to sue the virus software people who likely 
have some money to sue for. The problem is that if they don't pursue 
everyone, they probably can't go after the big one and have the courts 
beleive them. They might well accept a simple cheap workaround like the 
Apache Antidote name, as it aquiesses to thier trademark in name at 
least, and then they don't have to spend money chasing us.

Also, if there is no trademark on file at the USPTO, we could of course 
get the trademark and tell them to stop using ours, but that might not 
be the peaceful easy and cheap way out

-Gus
Steve Loughran wrote:
Adam R. B. Jack wrote:
You may be right, because antidote is a commonly used word, but I am
with Stefan here and I feel playing save can't be bad :-).

What are the chances that the new name isn't a clash with somebody else
somewhere? How far/wide do you search? Do you change again in a while 
when
somebody surfaces? When does it end?

when we bring a real product to market we pay lots of people for 
branding, user acceptance queries, etc. Even so, when you look at the 
global naming space, there are many cases of misnamed products. e.g 
The vauxhall/opel nova translated to 'no go' in spanish for example, 
which isnt good naming for a car, even though in the 1.1L version it 
was pretty apt.


I think typically folks w/ name clashes, who don't truly clash in
product/concept/marketing typically just learn to ignore it and 
coexist. The
Internet is too big for no clashes. Maybe call it 
org.apache.ant.idote or
something. ;-)

google for antidote and software:
Antidote for PC viruses
http://www.vintage-solutions.com/English/Antivirus/Super/
Antidote medical billing
http://www.donwalsh.com/antidote/antidote.html
Antidote computer services
http://www.antidotecomputer.com/
The PC virus one crops up all the time.
Also a search of the USPTO of use registrations (try under)
http://tess2.uspto.gov/bin/gate.exe?f=tessstate=vlg2jr.1.1
shows that only antidote computer services have a live US registration
The EU search engine 
http://oami.eu.int/search/trademark/la/en_tm_search.cfm
shows nothing; I dont know what that means.

If it were just me, I would tell whoever sent the letter to Christophe 
that our product is a separate product from theirs, and we don't think 
there will be any more confusion between them than say MS office and 
Star Office. But I dont want to escalate things too out of hand. 
Indeed, given you are meant to call Ooo OpenOffice.org to distinguish 
it from OpenOffice, you can get very close to a trademark and still be 
clear. But it is too early to escalate.

Perhaps we just make sure that we call it Apache ANTidote on all the 
web page  docs tonight, send him a letter saying we have made sure 
that we use the full name. If he insists then raise the stakes by 
asking for to see the USPTO registration as you cannot find it in the 
search engine.

finally, if we do to change the products name we ping the virus 
software vendors and ask if they have received the same emails  what 
their action will be. heh.


Surely Apache has run into this before, no?

probably. There is some kind of Apache perfume registered, I see.
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

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


Re: failonerror; general solution

2003-10-08 Thread Gus Heck

I'm not as eager to see the tasks in Ant proper as others, that's why
I haven't taken any initiative here (in Apache speak, that's the
difference between my +0 and the +1s that have been cast by others).
 

Are we talking about all ant-contrib tasks or just try/catch? I thought 
just try/catch...

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


Re: failonerror; general solution

2003-10-06 Thread Gus Heck
Dominique Devienne wrote:
-Original Message-
From: Steve Loughran [mailto:[EMAIL PROTECTED]
Sent: Friday, October 03, 2003 11:23 AM
To: Ant Developers List
Subject: Re: failonerror; general solution
Dale Anson wrote:
   

What's the difference in use case between this and the try/catch from
ant-contrib or antelope? I'd suggest grabbing the try/catch from either,
and making it a core task. Just judging from the e-mail that I get, the
try/catch task in antelope is one of the main reasons people download
 

it.
I am +1 to trycatch, because it gives you better failure modes than just
'ignore'; like the option to rollback or warn.
   

I'm +0 to trycatch, and +1 to enhancing sequential myself. --DD
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 

I see that both have their benefits. trycatch is slightly nicer in that 
you can do the catch right there, or set a property and use it the  way 
sequential would work... I think that that is true from looking at the 
examples posted. Sequential has the advantage of not needing to get the 
ant-contrib folks to give it to us (which I seem to remember was the 
sticking point b4)

If try-catch can be pulled in quick I'd be +1 for that +0 for 
sequential, and the oposite if it is going to take weeks to get try 
catch in Nothing prevents us from adding try catch later for 
additional functionality. If it isnt' going in 1.6 then I am for waiting 
on try/catch cause we probably have another year before 1.7 comes out :)

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


Re: DO NOT REPLY [Bug 23397] - Need attribute for target tag to indicate hidden/internal target

2003-09-25 Thread Gus Heck
Since bug 22020 has been duped twice (once before, and once since) and 
there is a patch available (mine of course :), though I did not report 
22020), what are the chances of geting it into 1.6 It was submitted 
months ago.

-Gus
[EMAIL PROTECTED] wrote:
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23397.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23397
Need attribute for target tag to indicate hidden/internal target
[EMAIL PROTECTED] changed:
  What|Removed |Added

Status|NEW |RESOLVED
Resolution||DUPLICATE

--- Additional Comments From [EMAIL PROTECTED]  2003-09-25 07:52 ---
*** This bug has been marked as a duplicate of 22020 ***
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: AW: DO NOT REPLY [Bug 23397] - Need attribute for target tag to indicate hidden/internal target

2003-09-25 Thread Gus Heck
Antoine Levy-Lambert wrote:
What you would like would be useful to prevent the wrong targets from
being called. But I wonder whether this change would not make ant
unnecessary complex.
 

The default (atribute omitted) state should behave as always. This is 
necessary for back compatability, and to keep the learning curve from 
getting too steep. The import task gives me the same sort of worry about 
complexity, but I keep reiminding myself... You don't have to use it if 
you don't want it ;). So at least from the user side, there is no 
obligatory complexity increase. The addition of another atribute in the 
documentation for target would be the only brain drain :)...

As for the development side, it may lead to increased complexity if we 
add access modifiers with more complex meanings. As it is now, however 
the only meaning of public/private is do we reject it when invoked from 
the command line and the only time we need to check that is already 
included in the patch.

I too would be interested to hear what other commiters think.
- Gus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: AW: DO NOT REPLY [Bug 23397] - Need attribute for target tag to indicate hidden/internal target

2003-09-25 Thread Gus Heck
In fact I would be even more interested to hear the opinons of both 
commiters and non-commiters :).

-Gus
Gus Heck wrote:
Antoine Levy-Lambert wrote:
What you would like would be useful to prevent the wrong targets from
being called. But I wonder whether this change would not make ant
unnecessary complex.
 

The default (atribute omitted) state should behave as always. This is 
necessary for back compatability, and to keep the learning curve from 
getting too steep. The import task gives me the same sort of worry 
about complexity, but I keep reiminding myself... You don't have to 
use it if you don't want it ;). So at least from the user side, there 
is no obligatory complexity increase. The addition of another atribute 
in the documentation for target would be the only brain drain :)...

As for the development side, it may lead to increased complexity if we 
add access modifiers with more complex meanings. As it is now, however 
the only meaning of public/private is do we reject it when invoked 
from the command line and the only time we need to check that is 
already included in the patch.

I too would be interested to hear what other commiters think.
- Gus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

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


Re: AW: DO NOT REPLY [Bug 23397] - Need attribute for target tag to indicate hidden/internal target

2003-09-25 Thread Gus Heck
How does a java application (other than ant) invoke an ant target (I 
can see using a task easily, but not a target) Can you give me an 
example where a target gets invoked by java code?

If you are talking about invocation from within ant, then I have 
difficulty imagining what parts of ant would hide targets from other 
parts of ant... Imported Files is about the only case that comes to 
mind, and to me that seems like an entirely different issue, but I have 
provided for that possiblity, by adding an isAccessibleFrom(String) 
method, which is used like this:

if (aTarget.isAccessibleFrom(command line)) { /* do stuff */ } 

Modification of this method to understand strings other than command 
line (such as importing build) and a check at the time of import 
would be something that could be added in the future I think. For now, 
this would eliminate the need to rely on command line behavior to hide 
targets from users, and pave the way towards smoother IDE integration.

I am perfectly happy to change the name of my access atribute to 
something like commandLine/noCommandLine or hidden/visible or 
entry/noEntry if that helps. I can see a good argument for reserving 
public/private for an alternate, deeper meaning than I have implemented, 
but it is a word pair that comes to mind easily and so that is what I 
have used for now.

-Gus
[EMAIL PROTECTED] wrote:
I don´t see the need for such an attribute. And if introduced it should work
not only from commandline. It should work too, if invoked by other java
applications.
Jan
 

-Original Message-
From: Gus Heck [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 25, 2003 5:58 PM
To: Ant Developers List
Subject: Re: AW: DO NOT REPLY [Bug 23397] - Need attribute for target
tag to indicate hidden/internal target
In fact I would be even more interested to hear the opinons of both 
commiters and non-commiters :).

-Gus
Gus Heck wrote:
   

Antoine Levy-Lambert wrote:
 

What you would like would be useful to prevent the wrong 
   

targets from
   

being called. But I wonder whether this change would not make ant
unnecessary complex.
   

The default (atribute omitted) state should behave as 
 

always. This is 
   

necessary for back compatability, and to keep the learning 
 

curve from 
   

getting too steep. The import task gives me the same sort of worry 
about complexity, but I keep reiminding myself... You don't have to 
use it if you don't want it ;). So at least from the user 
 

side, there 
   

is no obligatory complexity increase. The addition of 
 

another atribute 
   

in the documentation for target would be the only brain drain :)...
As for the development side, it may lead to increased 
 

complexity if we 
   

add access modifiers with more complex meanings. As it is 
 

now, however 
   

the only meaning of public/private is do we reject it when invoked 
from the command line and the only time we need to check that is 
already included in the patch.

I too would be interested to hear what other commiters think.
- Gus

 

-
   

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

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


 


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


Re: cvs commit: ant/src/script ant

2003-09-23 Thread Gus Heck
These changes arn't working for me.
See http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23358
-Gus
Knut Wannheden wrote:
These changes expand on Antoine's -lib code to support multiple -lib
   

options.
 

In addition, the -lib option can now name a directory containing jars and
   

all
 

jars in that directory will be added to Ant's launch classpath.
   

So I suppose it isn't possible to add a directory with classes in it as
a -lib option.  The classes need to be packed up in a jar, right?
--
knut

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


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


Re: Getting 1.6 out the door

2003-09-03 Thread Gus Heck
Costin Manolache wrote:
Dominique Devienne wrote:
 

As I've been saying all along, lets just introduce a new (unique) notion
for attribute/variable expansion (at use time rather than definition
time), which
is something new in Ant anyhow. No (or less?) backward compatibility
issues, and makes it plain and obvious what is what:
${name}   it's a property!
(@name)   it's an attribute/variable!!!
   

I think this is a bad idea. 

Chosing between macrodef and ant simplicity - I preffer the second. 
There are already a lot of complex rules in ant and antcall and
import, I think the last thing we need is a new syntax for macrodef
variables.

Costin
 

Is it simpler to add yet another complex rule to the meaning of  ${foo} 
or to attach the new rule to a new syntax that only needs to be learned 
for the use of macrodef only. Anyone who hasn't used macrodef will see 
the new syntax in a build and know there is something different going on 
with (@foo)  (or whatever).  By contrast, ${foo} will appear to be 
something the user has seen before, but produce unexpected behaviors... 
and perhaps bug reports? Furthermore, if the syntax is the same, then 
one needs both scoping/rules to identify the type of ${} and rules about 
it's behavior. If the syntax is different there is no need to 
distinguish it because it is already distinct.  One could make all their 
replace tokens look like properties too, but I suspect this is not a 
common thing to do for the similar reasons.

No context, no unnecessary brain cycles to figure out what is what.
I'll be just as glad as the next guy to use macrodef, I just don't want
that
power to come of the expanse of Ant's simplicitly and user-friendliness.
   



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


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


Re: Getting 1.6 out the door

2003-09-02 Thread Gus Heck
Nicola Ken Barozzi wrote:

peter reilly wrote, On 01/09/2003 20.10:
On Monday 01 September 2003 16:43, Dominique Devienne wrote:
...
It's not all about power, or one would use a real programming language
like Perl or Python. macrodef, although powerful, complexifies the 
rules
of Ant, namely the property expansion one, making it context dependent!

What she said :)
Never underestimate the power and simplicity of context/scope free 
rules.
Although Ant already has scopes with ant/antcall/subant, the 
property
expansion rules works the same everywhere, and I'd like this to stay 
the
same.

macrodef follows (I think) the same rules of properties as 
antcall with
inheritall=yes.

+1
Modeling after antcall...? I am wary of this as antcall is broken at the 
top level.
http://issues.apache.org/bugzilla/show_bug.cgi?id=22759 I certainly 
havn't looked at macrodef closely enough to know if it will be subject 
to the same problem, but it makes me wonder. It might even be the case 
that antcall should be deprecated and replaced with macrodef if macrodef 
works at the top level and can truely duplicate antcall's functionality.

From Nicola Ken Barozzi:
Imports should be reusable bits of builds. But instead they carry the 
baggage
of targets. With macrodef I can finally *create tasks using Ant*.

And so Ant becomes an xml based programming language? Writing tasks in 
java seems preferable to me. I am not opposed to macrodef, but I want 
clear syntax that doesn't make atributes look like properties, and if we 
do have macrotemplates (which I still have some reservations about) I 
think they should have a backwards compatable syntax that is also 
clearly different from both properties and atributes. A clear syntax is 
my biggest gripe here.

-Gus

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


Re: Getting 1.6 out the door

2003-09-02 Thread Gus Heck
Steve Loughran wrote:
Gus Heck wrote:

I don't think there's such a thing as experimental stuff. It's 
either in or
not, and once in, it must be backward compatible.

I'm sorry so few people chimed in on the subject of overloading the 
meaning
of ${name} in Ant. If this could be changed, then I'd have an 
enthusiastic
+1, but as it stands, I'm -1 or maybe -0.

--DD
 

I agree 100%.
I also would like some feedback on my target access modifier patch, 
if possble
(see http://issues.apache.org/bugzilla/show_bug.cgi?id=22020)

I have mentioned this to a couple of people, including the friend who 
introduced me to ant in the first place and all thought the idea was 
good. I would like it to get in 1.6 if possible.

I am worried about the interaction between public/private and the 
inclusion mechanism. Will people expect object style access modifiers 
to  work with inclusion, such that targets marked private can not be 
called by included content?

I am similarly concerned and so I would like it considered before back 
compatablity constrains us with import etc. Personally, the private 
public distinction I have made (as I have implemented it) could be 
called non-user and user as easily as it only effects the ability to 
access things from the command line. I tried to write it in a way that 
other access tags could be used, to create a broader continum, though I 
havn't gone so far to set it up to handle independant flags. (such that 
user/non-user could be independant from import/no-import)

My patch is just a suggestion, and I am looking for feedback on how it 
could be improved, or made to play nicely with things like import.

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


Re: Getting 1.6 out the door

2003-08-28 Thread Gus Heck

I don't think there's such a thing as experimental stuff. It's either in or
not, and once in, it must be backward compatible.
I'm sorry so few people chimed in on the subject of overloading the meaning
of ${name} in Ant. If this could be changed, then I'd have an enthusiastic
+1, but as it stands, I'm -1 or maybe -0.
--DD
 

I agree 100%.
I also would like some feedback on my target access modifier patch, if 
possble
(see http://issues.apache.org/bugzilla/show_bug.cgi?id=22020)

I have mentioned this to a couple of people, including the friend who 
introduced me to ant in the first place and all thought the idea was 
good. I would like it to get in 1.6 if possible.

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


Re: [new tasks] presetdef and macrodef

2003-08-25 Thread Gus Heck

Templates appear to be something new, though I don't think I 
like them 
(see below)

   

(1) -- ${xyz}
(2) -- ${macroattr:xyz}
(3) -- ${macrotemplate:xyz}
 

Well, as I said I use those terms above just as examples, I am not
hookup in words, 
I was just looking for some identifier to describe them. Still the
concepts
I am expressing are very clasical ones, these are not things out of the
blue.

I would personally prefer a slightly more distinct syntax that didn't 
use ${} for things that arn't exactly properties. Looking at it another 
way: your suggestion is a half-magic property :) It reserves property 
names starting with macroattr: and macrotemplate: as special, and 
different from other properites.

If macro definitions are available to sub builds, then your 3rd case 
might occur, but I don't think it would be good to allow macros to be 
called across build file boundaries. builds would be almost 
unintelligible without tracking down the macros from other files.

   

This is all regular kosher ANT stuff, up to this day, taskdef/s get
inherited, they do not need to be redeclared for the task to be
available
during the antcall/. Are you proposing that we have a different,
special case,
semantics for macrodef?
 

I hadn't realized that taskdefs did this, but if it were up to me I 
wouldn't have designed it this way. I would prefer to see the taskdefs 
in each build file, so that I don't have to find out who's calling the 
buildfile to find out where to find out what the task does. Any time you 
get that many find-outs in a sentance it is clearly a royal pain in the 
making (imho). :).

In otherwords, I would have prefered the simple rule, if it isn't part 
of the standard distro of ant, there will be a taskdef in the build to 
tell you what it is. I don't think saving a few extra lines of typing 
(or cut/paste) for the taskdefs is really worth making the build 
unreadable without reference to another build (which won't be known 
unless it appears in a comment).

I havn't followed the antlib topic closely enough (I havn't followed it 
at all really because of the sheer volume of mail on those threads, and 
the need to get some of my own work done :) ), but I get the impression 
that antlib might reasonably eliminate the taskdef stuff by creating a 
single place to look for definitions of things that arn't part of the 
standard distro. and that would be fine. I only object to having to 
having the builds depend on things defined in other builds with no 
pointer to the definition (or standard location for the definition).

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


Re: [new tasks] presetdef and macrodef

2003-08-25 Thread Gus Heck
Nicola Ken Barozzi wrote:
[returned from holiday, happy to read the list again :-) ]
Jose Alberto Fernandez wrote, On 22/08/2003 14.58:
From: Gus Heck [mailto:[EMAIL PROTECTED] 

...
If macro definitions are available to sub builds, then your 3rd case 
might occur, but I don't think it would be good to allow macros to 
be called across build file boundaries. builds would be almost 
unintelligible without tracking down the macros from other files.

This is all regular kosher ANT stuff, up to this day, taskdef/s get
inherited, they do not need to be redeclared for the task to be
available during the antcall/. 
...
We already have a solution for the case of taskdef I would just like
the behavior on both cases to be the same, so to reduce the leaarning
curve.

What about making them part of antlibs too?
How does a macro defined in the build become an antlib?
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [new tasks] presetdef and macrodef

2003-08-21 Thread Gus Heck
I'm not sure I buy your 3 things argument. In my mind there are 2 things 
in what is previously proposed...

properties and parameters
Templates appear to be something new, though I don't think I like them 
(see below)

 (1) -- ${xyz}
 (2) -- ${macroattr:xyz}
 (3) -- ${macrotemplate:xyz}
So for a definition like:
 property name=xyz value=true/
Now ${xyz} is true forevermore because properties are immutable
 macrodef name=abc
   attribute name=pqr/
   sequential
 javac debug=${xyz} ... /
This line ${xyz} should get replaced
 javac debug=${macroattr:pqr} ... /
 javac debug=${macrotemplate:xyz} ... /
   /sequential
 /macrodef
 

I'm not sure how you get a second level of expansion, or if it is desireable
After this definition the macro that is actually expanded will look
something like:
   attribute name=pqr/
   sequential
 javac debug=true ... /
 javac debug=${macroattr:pqr} ... /
 javac debug=${xyz} ... /
   /sequential
which will be further expanded in a call frangment, maybe inside an
ant call:
 property name=xyz value=false/
 abc pqr=true/
 abc pqr=false/
I'm not sure this makes sense (to me at least) if it is part of an 
ant call, then the macrodef should be in the build file used in the 
antfile atribute...  in which case your first javac might also come out 
with debug=false (assuming inheritall=false, and the property definition 
was before the macro definition) or debug=${xyz} (unexpanded, and 
causing the build to fail because it wasn't defined yet, if the property 
isn't before the macro definition, as you have shown). If the task does 
property replacement at invocation time, then you still should get
debug=false for your first javac since the property won't have been 
expanded yet.

If macro definitions are available to sub builds, then your 3rd case 
might occur, but I don't think it would be good to allow macros to be 
called across build file boundaries. builds would be almost 
unintelligible without tracking down the macros from other files.

It would also bring up yet another scoping issue for 2 files that 
defined macros with the same name and then one called the other. Granted 
this might be an xml namespaces thing, but the more parts of ant that 
require namespaces the steeper the learning curve for new users.

To effectively finish executing the following ANT fragment:
   property name=xyz value=false/
   sequential
 javac debug=true ... /
 javac debug=true ... /
 javac debug=${xyz} ... /
   /sequential
   sequential
 javac debug=true ... /
 javac debug=false ... /
 javac debug=${xyz} ... /
   /sequential
So, as long as we can acomplish something like this, and we do not add a
bunch
of new machinery in the process, I think it is a wonderful feature.
Jose Alberto
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: [new tasks] presetdef and macrodef

2003-08-20 Thread Gus Heck

I stopped arguing this point, as I was the only one concerned apparently,
but since Jose Alberto brings it up again...
Having ${NAME} not evaluate to the value, if any, of the NAME property, at
the time the task it's used in (macrodef is this case) is executed, is
REALLY REALLY BAD in my sincere opinion. Maybe foreach does it, but that
 

I agree with you on this... I had to use foreach for the first time 
recently and was astounded that it had been written that way. It 
completely confuses the issue of property immutability, and makes the 
parameter hard to find. You need to know what the argument is before you 
look for it. Think about explaining property imutability to someone... 
${foo.bar} can never change... exept when it isn't a property... how do 
I know it isn't a property? they ask... The answer would be you just 
have to know the tasks where ${foo.bar} might not be a property, and 
check what the parameter name is.  At that point the person you are 
explaining this to rolls their eyes and says Ugh. That is annoying :)

I think macrodef should not duplicate this problem and if foreach ever 
came into ant it should have a namechange and new parameter system.

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


Re: [new tasks] presetdef and macrodef

2003-08-20 Thread Gus Heck
Jose Alberto Fernandez wrote:
Dominique,
As its name indicates macrodef/ is a MACRO. And macros are macros are
macros
and they are suppose to be textually replaces at the point on
invocation.
 

Of course the parameters need to be replaced. The point is they 
shouldn't look like properties. This way they can't be confused with 
properties.  An alternate form to ${foo} is all that is needed. Just 
search for a diferent pattern... [EMAIL PROTECTED] or (@foo) or @{foo} or %{foo} or 
$[foo] or really anything that isn't ${foo}. Dominique did also point 
out that (@foo) and [EMAIL PROTECTED] are already commonly used in other contexts 
that build authors will be familliar with.

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


Re: PropertyHelper (was: Re: beating the dead Ant 1.6 horse)

2003-08-14 Thread Gus Heck
Yes. PropertyHelper is a property interceptor, and it simply rocks.
In essence, you register a helper with Ant. Then, at each request for 
a property, each registered helper is asked for the property value in 
turn; the first one that has it, returns it.
Completely not following this property helper discussion up to this 
point so I may be repeating something, (forgive me if I am) but this 
sounds like the results of the request for a property could change if a 
new property helper gets added... Does this break immutability? It may 
be that the value of a property object never changes, but if the value 
of ${foo} is one thing and then becomes another when a helper is 
added I suspect whatever you have done is not going to cause this, 
but what about someone writing a custom task that intentionally adds and 
removes property helpers. What happens if someone writes a setproperty 
task built on this idea? what happens if the property helper intercepts 
built in things like ${basedir}? Sounds like the basis for a possible 
chdir task :). Sounds highly abusable to me...

If you have set it up so ant doesn't accept new property helpers after 
it starts executing the file, then this probably isn't an issue...

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


Re: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java

2003-08-12 Thread Gus Heck
Antoine,
Since you have recently been playing with symlinks/FTP what are your 
thoughts on bug 14320?

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14320
-Gus
Stefan Bodewig wrote:
On Wed, 6 Aug 2003, Antoine Levy-Lambert [EMAIL PROTECTED] wrote:
 

1) concerning the inclusion of  in includedDirectories
   1a) change the implementation of RM_DIR
   in order not to delete the root dir of the fileset
   or
   1b) revert the inclusion of  in includedDirectories and change
   the tests + document the difference with DirectoryScanner
   

or our all time backwards compatibility saving option
1c) add a new attribute to ftp that controls the behavior.
I'm not sure it's worth it, no real opinion other than we shouldn't
break backwards compatibility just to fix something that hasn't been
perceived as broken so far.
 

2) Concerning the symbolic links
   2a) keep the code change and simply mention it in WHATSNEW.
   Then users who do not want to download symbolic link directories
   can
simply set thecorresponding attribute to false.
or
   2b) add a flag in DirectoryScanner#setFollowSymlinks to record
   the fact that follow symlinks has been explicitly set to true,
   and only follow symlinks if the user mentioned it explicitly ?
   

or
2c) call setFollowSymlinks(false) in FTPDirectoryScanner's
constructor.  I.e. change the default value of the attribute and
document it that way.
I'd be in favor of 2c).
Stefan
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java

2003-08-12 Thread Gus Heck
Antoine,
Since you have recently been playing with symlinks/FTP what are your 
thoughts on bug 14320?

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14320
-Gus
Stefan Bodewig wrote:
On Wed, 6 Aug 2003, Antoine Levy-Lambert [EMAIL PROTECTED] wrote:
 

1) concerning the inclusion of  in includedDirectories
   1a) change the implementation of RM_DIR
   in order not to delete the root dir of the fileset
   or
   1b) revert the inclusion of  in includedDirectories and change
   the tests + document the difference with DirectoryScanner
   

or our all time backwards compatibility saving option
1c) add a new attribute to ftp that controls the behavior.
I'm not sure it's worth it, no real opinion other than we shouldn't
break backwards compatibility just to fix something that hasn't been
perceived as broken so far.
 

2) Concerning the symbolic links
   2a) keep the code change and simply mention it in WHATSNEW.
   Then users who do not want to download symbolic link directories
   can
simply set thecorresponding attribute to false.
or
   2b) add a flag in DirectoryScanner#setFollowSymlinks to record
   the fact that follow symlinks has been explicitly set to true,
   and only follow symlinks if the user mentioned it explicitly ?
   

or
2c) call setFollowSymlinks(false) in FTPDirectoryScanner's
constructor.  I.e. change the default value of the attribute and
document it that way.
I'd be in favor of 2c).
Stefan
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 


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


Re: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java

2003-08-12 Thread Gus Heck
Antoine Levy-Lambert wrote:
- Original Message -
From: Gus Heck [EMAIL PROTECTED]
Sent: Tuesday, August 12, 2003 4:10 PM
 

Antoine,
Since you have recently been playing with symlinks/FTP what are your
thoughts on bug 14320?
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14320
   

First the bad news : I do not have the time to work on this in the frame of
ant 1.6. I am concerned that this might open a large Pandora box. :-(
 

Fair enough :)
Once ant 1.6 is released, I would like to discuss again the topic of
Resource(s) and/or Jakarta-Common VFS. I would like to evaluate the use of
Jakarta-Common VFS in ant, so that ant does not need to reinvent the wheel
for everything. Just a thought at the moment, might be wrong.
 

hmm I should find out what Jakarta-Common VFS is :)
snip
Manipulating the symbolic link as a link is doable in a portable way for
packaging tasks (zip, jar, war, ear, tar). I am not sure what is the API to
find the target of the symbolic link (do an exec of ls -L and read the
result, or go the JNI route ?) ...
 

Parsing command line output seems dicey and brittle.
*** We need another attribute for filesets and directoryscanner called
preservesymlinks. ***
GUS
I can imagine that one could add an atribute that caused an OS check and if
we
it is a *nix set a flag that caused copy to use FileUtils.isSymbolicLink to
identify symlinks. symlinks could then be reproduced in either absolute form
or
minimum relative form or not reproduced in the destination directory based
on an
atribute such as copySymlinksAs=none|absolute|minRelative
I don't know how much time I can put into it, but I'd be willing to try that
if
it sounds like a good idea to anyone else.
/GUS
ANTOINE
Does minRelative mean relative to the root dir of the fileset ?
Maybe asis would be a good option too, to copy somelink - ../../foo/bar
as ../../foo/bar
/ANTOINE
 

/usr/local/storage/links/link2foo - /usr/local/storage/gus/baz/bar/foo
is also equivalent to the following
/usr/local/storage/links/lin2foo - 
../../../../user/local/storage/gus/baz/bar/foo
/usr/local/storage/links/lin2foo - ../../../local/storage/gus/baz/bar/foo
/usr/local/storage/links/lin2foo - ../../storage/gus/baz/bar/foo
/usr/local/storage/links/lin2foo - ../gus/baz/bar/foo

The last of these is what I call minRelative. (I don't know if there is 
a more standard term).
I currently convert all links in my website to this form by execing the 
linux command
(not the ant task): symlinks -rcs from the document root twice. The 
first invocation changes absolute to relative, and the second reduces 
the lenghthy links to minimal links. I do not know if this command is 
available on other *nix platforms.

It should also be possible to compare the canoniacal path of the dir the 
link is to be created in and the canonical path of the target of the 
link and calculate the minimum number of ../ 's needed to create the 
link and get minRelative that way.

Maintaining asis requires direct knowledge of which of the 4 
posibilities above was on the file system, and probably does require 
parsing output of ln or ls or whatever. minRelative links are of 
particular to me interest because they are the least likely to break 
when moving directories containing links around. The first of the 4 
relative links always breaks, if it gets moved up or down a level, but 
if I move /usr/local/storage to /usr/local/old/storage then the last two 
forms still work. My website build creates links in a tempdir before 
moving the whole thing to where the world can see it (assuming all went 
well).

This attribute would only be legal with followsymlinks=false (since true
means manipulate the objects pointed to by the links).
Then we need to define task by task how to use
preservesymlinks/copysimlinks=none|absolute|minRelative
AFAIK
ANT
Symbolic links do not exist in Windows (for ant's FileUtils#isSymbolicLink)
Symbolic links can be created via the symlink task, which relies on ln -s
available in the operating system
/ANT
agree
WINDOWS
.lnk files exist
non .lnk links exist
not aware of command line utility distributed with all versions of the OS to
do this
aware of ln.exe in cygwin
aware of shortcut.exe, a program which is part of the Windows NT resource
kit of Microsoft
/WINDOWS
lnk files have substantial functional differences. a .lnk to a directory 
cannot be included in the middle of a path as such: 
C:\projects\ant.lnk\src\main ... this won't work, but of course does 
work with symlinks. I have heard that there is something like symlinks 
out there called reparse points but I really don't know anything other 
than the name. (google searches a year ago wern't too fruitful on the 
topic, but this may have changed).

UNIX
the area where symbolic links support should be least problematic,
except for possible exceptions due to media not accepting symbolic links
/UNIX
/AFAIK
Apart from copy/,  packaging tasks are good candidates for having the
option of copying/preserving symbolic links

Re: CVS Commit with ANT

2003-07-16 Thread Gus Heck
I'm doing CVS commit from ant via the apply task currently. I needed to 
sudo out of root for this particular situation, so cvs wouldn't have 
worked and I havn't tried the cvs command directly for commits. Apply 
works great for me though.

This sort of question (How do I...?) is best asked on the ant users 
list. This list (the dev list) is mostly for people who are contributing 
code to be included in ant, discussing bugs, and their resolution, or 
trying to write code that involves with the ant internals.

-Gus
Vikas Phonsa wrote:
Hi
Does any one know if there is an Ant task to do CVS commit. I have seen the
CVS task being used of checkouts and updates but he arguments don't seem to
be working for a Commit.
Any one has attempted CVS commit with Ant.
Vik

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


Re: exec on openvms

2003-07-10 Thread Gus Heck


- The Ant exec task throws a BuildException if the exit code
is unequal zero.
Do you know how to get around that?  Should the Execute class, in
the case of VMS, map the exit status to what's common on Unix
systems?

Maybe we should provide a Execute.isFailure(int result) method that 
returns result != 0 on all platforms except OpenVMS (and 
result % 2 != 0 on OpenVMS).

So I read this and looked to my left at the Design Patterns book that 
was already open to the Adapter Pattern for other reasons...

Fate? It does seem that an adapter to the java.Runtime() class that was 
OS sensitive could be an option. One might even have different adapter 
implementations for each OS, and instantiate different implementations 
based on which OS ant is being run under so you didn't have to process a 
bunch of if(Os.isName(foo)) to execute anything.

Just a thought, perhaps not even a good one. You tell me :)
-Gus
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: Checkstyle Audit

2003-07-03 Thread Gus Heck
   minor: RedundantThrowsCheck: It complains about BuildException.
So is it prefered to eliminate the throws BuildException? or keep it? 
I'm willing to fix my code if I know what is actually desired here.

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


property from a flat file

2003-06-11 Thread Gus Heck
Is there already a known way to load the entire contents of a file into 
a property? I know someone that wrote a custom task for this (using it 
with replace) and at a quick look I didn't see this functionality 
anywhere. Should I convince him to add a valuefromfile atribute to 
property? or did I simply miss an existing feature?

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


import statements

2003-06-10 Thread Gus Heck
I was noticing that the file I am working on has it's imports in 
alphabetical order. Is this the standard, or are we free to organize our 
imports however we want in submissions?

I have noticed some that arn't quite alphabetical, and I actually prefer 
a different organization altogether

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


Re: Enhance chgrp/chown?

2003-05-22 Thread Gus Heck
Stefan Bodewig wrote:
On Wed, 21 May 2003, Gus Heck [EMAIL PROTECTED] wrote:
Stefan Bodewig wrote:
currently chmod has a fair number of additional features.
Which are?
dir, includes, excludes, defaultexcludes...

Please don't!  These attributes come from the pre-fileset time and are
only kept for backwards compatibility.  Please look at the special
case in Chmod's execute that is needed to keep the old behavior of the
dir attribute.

Ah glad I asked.
Another logicical addition to all 3 of them might be allowing
dirsets.

I think the type=dir attribute covers this, doesn't it?
I guess multiple ways of doing things just isn't popular with anyone 
around here. Makes me wonder why we have dirsets at all if we can't use 
them here, and only in a narrow way for subant...

I suppose type=dir is a pre-dirset feature on chmod, which I may have 
inadvertently propogated to my tasks because dirset was very new at the 
time I wrote them. (which was 4-5 months before they were commited due 
to the 1.5 release feature freezes).  These tasks are not yet released, 
so maybe they should take DirSets instead?

Granted that one would then need to supply a dirset and a fileset to get 
the both effect, but it would seem more consistant with the 
documentation of fileset which entirely fails to mention that 
directories are matched too. (unless you count the fact that /CVS is one 
of the default excludes).

So what is the purpose of DirSet? Maybe fileset should have had a 
type=dir|file|both instead of having Dirsets. (of course with dirset 
released, it cant' be undone)

What direction should I be taking with chgrp/chown here?
Thinking out loud... It looks like we are not winding up with one way of 
doing things, but several ways that cannot be mixed between tasks. This 
will force the user to remember which flavor of file or directory 
specification a particular task finds tasty.

To put it another way, I think we want to make using ant as simple as 
possible. To me life is simplest when any logical answer will do, and 
failing that, simple if there is one answer that always works. The worst 
case is a hashtable of case specific answers. The hashtable is what we 
are in danger of here.

Given the constraints of back compatability, it seems that the only way 
to make life easy for the user is keep adding the new ways of 
referencing things (ie dirsets) to the old tasks in which they make 
sense. (much like has been done to chmod with filesets). This way at 
least, A dirset would always work and older ways you might or might not.

If my logic is correct, and the goal is to minimize the number of ways 
to acomplish the same thing, we should not release chgrp and chown with 
the old method (type=) but rather convert them to a DirSet accepting 
version. (and add dirsets to chmod). This change would break builds 
(like mine particularly), but hey it is an alpha version... such is life.

The pruning of things like chmod's dir atribute can be part of ant 2.0 
where back compatability is not one of our promises... Of course if 
dirset is prunable, then I have it all backwards :).


It has been a core task of Ant virtually since Ant exists, so
there is no way to move it from core to optional unless we
restructure the set of built-in tasks completely IMHO.

To clarify.  I don't think we should move any core task to optional at
all - until we restructure our task system completely, which I'd
expect to go along with antlibs, yes.  There are more tasks than just
chmod that are in core but don't really fit there (cvs for example).
ok I understand. Have you found out anything about tandem/nonstop and 
chgrp chown yet?

-Gus


Enhance chgrp/chown? (was: Re: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs Chmod.java ExecuteOn.java)

2003-05-21 Thread Gus Heck
Stefan Bodewig wrote:

currently chmod has a fair number of additional features.

Which are?
dir, includes, excludes, defaultexcludes...
chmod supports these with it's own internal fileset. I could duplicate 
it into my AbstractAccessTask (I think) to produce a similar effect in 
my tasks, but I hate duplicating code like that... it violates that 
whole DRY thing :).

Another logicical addition to all 3 of them might be allowing dirsets.
Finally, it seems a bit incongruous that chmod is not in
optional/unix/ (now that that package exists),

It has been a core task of Ant virtually since Ant exists, so there
is no way to move it from core to optional unless we restructure
the set of built-in tasks completely IMHO.
Do you mean that if we move one thing there will be demand to move lots 
of others, or do you mean that there is a fundamental code level 
blockage to this that I have yet to perceive? Or is it a facet of the 
upcomming antlib thing?


Of course moving a task to another package, brings up back
compatability questions at the api level

They can be solved by making the old class an (more or less) empty
subclass of the new task.  See Transform.java or SendEmail.java.
Ok, and if I do this, is there still a difficulty in moving the meat of 
the chmod class to where it can extend the same base as the others?


It doesn't seem like the sort of class that is likely to be extended
or used in other code,

I disagree with used.  I could easily imagine using Chmod for a
permission aware untar or unzip task for example.
Mmm yes I suppose that people might have done things like that with it.
So is worth my time to add the above mentioned features? (by that mean, 
would a reasonable implementation be likley to get committed?)

-Gus


Re: cvs commit: ant/src/main/org/apache/tools/ant/taskdefs Chmod.java ExecuteOn.java

2003-05-20 Thread Gus Heck
I noticed that this effects the chgrp and chown tasks... which also 
Extend ExcecuteOn and therefore now have the maxparallel atribute as 
well. I plan to patch the docs to reflect this and the fact that they 
seem to accept the verbose atribute as well.

Other things I have noticed is that a little while back chmod added 
support for Os.isFamily(tandem). Should this go into chmod/chgrp too? 
If someone verifies that non-stop supports chgrp and chown in the 
standard unixy way I'll be glad to patch it as well.

Furthermore, it seems that chgrp and chown really ought to support 
esentially the same feature set as chmod, but currently chmod has a fair 
number of additional features. I might flesh out chmod and chgrp, but 
since that takes more than a few minutes work, I would like to know if 
this is desired.

Finally, it seems a bit incongruous that chmod is not in optional/unix/ 
(now that that package exists), and the situation seems ripe for a bit 
of refactoring, such that AbstractAccessTask.java holds most of the 
support for these three tasks and each task holds the specific 
differences. Of course moving a task to another package, brings up back 
compatability questions at the api level so I am hoping for a discussion 
of the severity of problems likely from moving chmod. It doesn't seem 
like the sort of class that is likely to be extended or used in other 
code, but that might just be my lack of imagination (or need for another 
coffee).

Oh and do we have any idea when the target date for the first 1.6 beta 
release is... if this is to be done, I am sure we want the maximum 
ammount of user testing and feedback on it.

-Gus
[EMAIL PROTECTED] wrote:
bodewig 2003/05/19 05:18:10
  Modified:.WHATSNEW build.xml
   docs/manual/CoreTasks apply.html chmod.html
   src/main/org/apache/tools/ant/taskdefs Chmod.java
ExecuteOn.java
  Log:
  You can now limit the parallelism of apply and chmod by using the
  new maxparallel attribute.
  Submitted by:	Frank A. Hunleth fhunleth at cs dot wustl dot edu
  used in build.xml to fix PR: 17640
  
  With the new addsourcefile attribute, you can make apply ommit the
  source file names from the command line.
  PR: 13654
  
  apply and chmod now support nested filelists as well.
  PR: 15929
  
  apply and chmod will display a summary if you set the new verbose
  attribute to true.
  PR: 19883
  
  Revision  ChangesPath
  1.421 +12 -0 ant/WHATSNEW
  
  Index: WHATSNEW
  ===
  RCS file: /home/cvs/ant/WHATSNEW,v
  retrieving revision 1.420
  retrieving revision 1.421
  diff -u -r1.420 -r1.421
  --- WHATSNEW	16 May 2003 09:22:28 -	1.420
  +++ WHATSNEW	19 May 2003 12:18:07 -	1.421
  @@ -346,6 +346,18 @@
 that can be used to turn of Microsoft extensions while using the jvc
 compiler.  Bugzilla Report 19826.
   
  +* You can now limit the parallelism of apply and chmod by using the new
  +  maxparallel attribute.
  +
  +* With the new addsourcefile attribute, you can make apply ommit the
  +  source file names from the command line.  Bugzilla Report 13654.
  +
  +* apply and chmod now support nested filelists as well.
  +  Bugzilla Report 15929.
  +
  +* apply and chmod will display a summary if you set the new
  +  verbose attribute to true.  Bugzilla Report 19883.
  +
   Changes from Ant 1.5.2 to Ant 1.5.3
   ===
   
  
  
  
  1.377 +3 -2  ant/build.xml
  
  Index: build.xml
  ===
  RCS file: /home/cvs/ant/build.xml,v



Re: cvs commit: ant/docs/manual/CoreTasks subant.html

2003-05-14 Thread Gus Heck
You could include my patch for the behavior you described (see 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18391) or Andreas's 
patch (see http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18715) 
which includes my functionality plus some other stuff too.

-Gus
Dominique Devienne wrote:
This is incorrect, at least with my version. It will attempt to find a
build.xml in all the directories, and FAIL if one cannot be found. To
achieve what you describe, use a fileset:
subant target=
  property name=build.dir value=subant1.build/
  property name=not.overloaded value=not.overloaded/
  fileset dir=. includes=*/build.xml/
/subant
I understand you had failonerror=true, but then a build failure in any of
the build actually found would be ignored, so it's not a good example IMHO.
Regards, --DD

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 14, 2003 4:58 AM
To: [EMAIL PROTECTED]
Subject: cvs commit: ant/docs/manual/CoreTasks subant.html
antoine 2003/05/14 02:57:38
 Modified:docs/manual/CoreTasks subant.html
 Added:   proposal/xdocs/src/org/apache/tools/ant/taskdefs SubAnt.xml
 Log:
 added a merge point in xdocs for SubAnt and regenerated corresponding
manual page
 PR:19181 docs of subant task
 Revision  ChangesPath
 1.1
ant/proposal/xdocs/src/org/apache/tools/ant/taskdefs/SubAnt.xml
 Index: SubAnt.xml
 ===
 external
 description
 p
 iEXPERIMENTAL:/i This task is experimental and may be
under continual
 change till Ant1.6 ships; it may even be omitted from the
product.
 /p
 p
 Calls a given target for all defined sub-builds. This is an
extension
 of ant for bulk project execution.
 /p
 /description
 section anchor=examples name=Example
 pre
 lt;project name=subant default=subant1gt;
 lt;property name=build.dir value=subant.build/gt;
 lt;target name=subant1gt;
   lt;subant failonerror=false target=gt;
   lt;property name=build.dir
value=subant1.build/gt;
   lt;property name=not.overloaded
value=not.overloaded/gt;
   lt;dirset dir=. includes=*/gt;
   lt;/subantgt;
 lt;/targetgt;
 lt;/projectgt;
 /pre
 p
 this snippet build file will run ant in each subdirectory of
the project directory,
 where a file called build.xml can be found.
 /p
 /section
 /external
 1.2   +89 -39ant/docs/manual/CoreTasks/subant.html
 Index: subant.html
 ===
 RCS file: /home/cvs/ant/docs/manual/CoreTasks/subant.html,v
 retrieving revision 1.1
 retrieving revision 1.2
 diff -u -r1.1 -r1.2
 --- subant.html26 Mar 2003 17:55:37 -  1.1
 +++ subant.html14 May 2003 09:57:38 -  1.2
 @@ -34,7 +34,7 @@
tr
  td  valign=top align=left
 -  !-- Applying task/long-description --
 +  !-- Applying task/description --
  !-- Start Description --
  table border=0 cellspacing=0 cellpadding=2 width=100%
trtdnbsp;/td/tr
 @@ -46,7 +46,15 @@
/td/tr
trtdblockquote
 -iEXPERIMENTAL:/i This task is experimental and may be under
continual change till Ant1.6 ships; it may even be omitted from the
product. p Calls a given target for all defined sub-builds. This is an
extension of ant for bulk project execution.
 +p
 +iEXPERIMENTAL:/i This task is experimental and may be
under continual
 +change till Ant1.6 ships; it may even be omitted from the
product.
 +/p
 +p
 +Calls a given target for all defined sub-builds. This is an
extension
 +of ant for bulk project execution.
 +/p
 +
/blockquote/td/tr
  /table
 @@ -55,13 +63,11 @@
  !-- Start Attributes --
  table border=0 cellspacing=0 cellpadding=2 width=100%
trtdnbsp;/td/tr
 -
trtd bgcolor=#525D76
  font color=#ff face=arial,helvetica.sanserif
a name=attributes
strongParameters/strong/a/font
/td/tr
 -
trtdblockquote
  table
tr
 @@ -74,20 +80,27 @@
  td bgcolor=#cc valign=top align=left
font color=#00 size=-1
face=arial,helvetica,sanserifbType/b/font
  /td
 +td bgcolor=#cc valign=top align=left
 +  font color=#00 size=-1
face=arial,helvetica,sanserifbRequirement/b/font
 +/td
/tr
 -!-- Attribute --
 +!-- Attribute Group --
 +
 +!-- Attribute Group --
 +!-- Attribute --
  tr
  td bgcolor=#ee valign=top align=left
font color=#00 size=-1
face=arial,helvetica,sanserifantfile/font
  /td
  td bgcolor=#ee valign=top align=left
 -  font color=#00 size=-1

Re: Roles (was: antlib)

2003-05-08 Thread Gus Heck

Jose Alberto Fernandez wrote:
But ANT is not for experience XML users but for Java programmers
or C or .NET (with the new tasks). ANT is popular because
it is simple to use you do not have construccions that require
you to read a full spec to understand. I am not against NS, but
I am against forcing people to use them just because.
 

 

I had never touched xml when I  first encountered Ant. But rather than 
saying: Yuck, I have to learn XML, my reaction was rather, 
Excellent... I have been meaning to learn about XML anyway.

All this talk of namespaces gave me a good reason to go read up on them 
in case they do become part of ant. But if a custom solution is coded 
where can I go read up on it... where can I get a second book, or web 
info on it ifi the  manual doesn't seem adequate? If standards are used, 
then lots of information will be available to make sense of them.

I am in favor of using a standards based approach because it will save 
me work in the long run. Time spent learning namespaces is likely to be 
time well spent, useful elsewhere.  If I have to learn something I'd 
much rather learn something I might see again.

-Gus


Re: ant tutorial

2003-04-16 Thread Gus Heck
I agree. This is really cool. The section labeled Top Level Tasks 
seems to say that tasks on the top level are run at parse-time. Does 
this mean that the order of tasks at the top level is the order of 
execution, or do the old toplevel tasks still run first?

Gus
Craeg Strong wrote:
This tutorial is incredibly valuable, IMO.  
I would love to see this checked into CVS and given
a permanent home on the ant website, kind of like
ant in anger...

2c,
--Craeg

The first place was a very long time ago and there was a lot of history
for
why Ant is the way it is. You might be interested in a little tutorial I
wrote to try and explain this history:
http://codefeed.com/tutorial/ant_config.html

Slick. I like it.

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



Re: Ant task and dirset/fileset

2003-03-26 Thread Gus Heck
Hmm I notice that the source is marked as experimental and subject to 
change. Is this still true? To what extent. I am slightly leary of 
upgrading to an alpha branch for our builds, particularly if the 
compelling feature is going to be a moving target :)

Also in your example buildfile, I am not sure I understand how the 
targets work. It looks like clean, build reversion and rebuild all do 
the same thing?

-Gus
Dominique Devienne wrote:
No doc, no test :-(
Subant accept a buildpath, which is a regular path (accepts nested
fileset, dirset, etc...
Subant's buildpath can be specified either outside (and referenced using
buildpathref) or inside (subant contains an implicit buildpath, so you can
add a dirset or buildpathelement directly within subant).
All files all the build path (it's a path, so it's ordered) that is a
directory is appended build.xml, or the value of the 'antfile' attribute if
specified. By default, subant calls the target it's defined within
automatically, or the target explicitly defined in the 'target' attribute.
Supports all ant attributes (except 'dir' and 'output') and nested
elements, and adds the 'failonerror' attribute, and nested
fileset/filelist/buildpath/buildpathelement/dirset elements to
compose the build path within.
Hope that helps. --DD
-Original Message-
From: Gus Heck [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, March 25, 2003 4:07 PM
To: Ant Developers List
Subject: Re: Ant task and dirset/fileset

Ok I searched bugzilla and subant appears exactly once... but it says it 
is committed. Problem is I don't see it in the manual, where can I get 
some doc for it? (or do I need to go find that link to the xdocs that I 
forgot to bookmark?)

-Gus
Dominique Devienne wrote:
Yes ;-) Me, and other people too. There is in Ant's BugZilla one task
called
subant that was recently added to the HEAD (slightly modified) on an
experimental basis, and there's also a patch to ant along the same
lines.
There has been quite a bit of discussion about both (one vs. the other
even)
on ant-dev as well. You should look it all up.
As the original author and user of subant, I can tell you it's working
just fine for me. Here's one of my build files, for example. Should be
familiar to Makefile writers (it does build C++ libraries after all ;-)
?xml version=1.0?
project name=Gocad default=build
 taskdef resource=com/lgc/buildmagic/tasks.properties /
 typedef resource=com/lgc/buildmagic/types.properties /
 buildpath id=buildpath
   pathelement location=src/lib/utils/utils.xml /
   pathelement location=src/lib/math/math.xml /
   pathelement location=src/lib/geobase/geobase.xml /
   pathelement location=src/lib/lines/lines.xml /
   pathelement location=src/lib/surfaces/surfaces.xml /
   pathelement location=src/lib/volumes/volumes.xml /
   pathelement location=src/lib/tgobjs/tgobjs.xml /
   pathelement location=src/lib/appli/appli.xml /
   pathelement location=src/lib/ascii/ascii.xml /
   pathelement location=src/lib/archive/archive.xml /
   pathelement location=src/lib/gapi/gapi.xml /
 /buildpath
 target name=clean
   subant buildpathref=buildpath /
 /target
 target name=build
   subant buildpathref=buildpath /
 /target
 target name=reversion
   subant buildpathref=buildpath /
 /target
 target name=rebuild
   subant buildpathref=buildpath /
 /target
/project
-Original Message-
From: Gus Heck [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, March 25, 2003 3:34 PM
To: [EMAIL PROTECTED]
Subject: Ant task and dirset/fileset

Has anyone ever thought about or tried to make the ant task accept a 
fileset or dirset? I have a use for such functionality but, before I go 
writing myself a custom version, or writing a patch, I thought I might 
ask if this has been tried, is being tried, or has be explicitly decided 
against?

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


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



Ant task and dirset/fileset

2003-03-25 Thread Gus Heck
Has anyone ever thought about or tried to make the ant task accept a 
fileset or dirset? I have a use for such functionality but, before I go 
writing myself a custom version, or writing a patch, I thought I might 
ask if this has been tried, is being tried, or has be explicitly decided 
against?

-Gus


Re: Ant task and dirset/fileset

2003-03-25 Thread Gus Heck
Ok I searched bugzilla and subant appears exactly once... but it says it 
is committed. Problem is I don't see it in the manual, where can I get 
some doc for it? (or do I need to go find that link to the xdocs that I 
forgot to bookmark?)

-Gus
Dominique Devienne wrote:
Yes ;-) Me, and other people too. There is in Ant's BugZilla one task called
subant that was recently added to the HEAD (slightly modified) on an
experimental basis, and there's also a patch to ant along the same lines.
There has been quite a bit of discussion about both (one vs. the other even)
on ant-dev as well. You should look it all up.
As the original author and user of subant, I can tell you it's working
just fine for me. Here's one of my build files, for example. Should be
familiar to Makefile writers (it does build C++ libraries after all ;-)
?xml version=1.0?
project name=Gocad default=build
  taskdef resource=com/lgc/buildmagic/tasks.properties /
  typedef resource=com/lgc/buildmagic/types.properties /
  buildpath id=buildpath
pathelement location=src/lib/utils/utils.xml /
pathelement location=src/lib/math/math.xml /
pathelement location=src/lib/geobase/geobase.xml /
pathelement location=src/lib/lines/lines.xml /
pathelement location=src/lib/surfaces/surfaces.xml /
pathelement location=src/lib/volumes/volumes.xml /
pathelement location=src/lib/tgobjs/tgobjs.xml /
pathelement location=src/lib/appli/appli.xml /
pathelement location=src/lib/ascii/ascii.xml /
pathelement location=src/lib/archive/archive.xml /
pathelement location=src/lib/gapi/gapi.xml /
  /buildpath
  target name=clean
subant buildpathref=buildpath /
  /target
  target name=build
subant buildpathref=buildpath /
  /target
  target name=reversion
subant buildpathref=buildpath /
  /target
  target name=rebuild
subant buildpathref=buildpath /
  /target
/project
-Original Message-
From: Gus Heck [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, March 25, 2003 3:34 PM
To: [EMAIL PROTECTED]
Subject: Ant task and dirset/fileset

Has anyone ever thought about or tried to make the ant task accept a 
fileset or dirset? I have a use for such functionality but, before I go 
writing myself a custom version, or writing a patch, I thought I might 
ask if this has been tried, is being tried, or has be explicitly decided 
against?

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



Re: [VOTE] JDK 1.1 support

2003-03-19 Thread Gus Heck
Steve Loughran wrote:
I don't see reasons to try to back-port fixes made on 1.6 to the 1.5. 
Only
bugs identified by people running JDK 1.1 should make it to the 1.5 
branch.
This should be the only activity going on in that 1.5 branch.

to date we are putting fixes to the 1.5 branch into 1.5.x, both minor 
and major, the zip work being the biggest. If any of that work had been 
in Java1.2 style, we couldnt have back ported it. Some of the changes (I 
think of the weak reference stuff) did have extra work to get into 1.1 
compliance, incidentally.

Once 1.6 ships, then we can stop doing any work to the 1.5.x branch, so 
this issue of having to back port code into a java1.1. compatible branch 
 goes away. Except for people who want to maintain 1.1 support, and they 
get to do the work themselves.

So we should wait till after the release to refactor our code?
Given the above, there are no reasons to limit the 1.6 code base from 
*any*
change that's JDK 1.2 (Java 2) compatible. That includes moving 
everything
to the Java 2 Collections.

I dont see the java2 collections as the compelling reason for this. They 
are nice, I use them, but it is really things like classloader, security 
manager, weak references and other major system changes that are forcing 
the move.

I also see the reflection tests for existance of 1.2 methods as adding 
substantial clutter to the code. I think removing these is quite 
valuable to people trying to understand the flow of our code. I think 
these should be eliminated at a rate greater than slowly but surely :).

As I said before, 1.5.x is a damn good release (once 1.5.3 is out), and
should more than satisfy JDK 1.1 users (wherever they're hiding). The 
buck
has to stop somewhere, and from the votes, it's clear 1.6 should 
depend on
JDK 1.2. This should not prevent though JDK 1.2 to be fully used 
everywhere
it's possible.

Steve and Costin might as well -1 the move to JDK 1.2 with this kind of
thinking. --DD

I'm very happy with the move. I just don't think we should use this as 
an excuse to go s/Hashtable/HashMap/ s/Vector/ArrayList/ through all the 
I would agree that this type of conversion is of limmited value. It 
should probably happen, but it would be low on the priorety list I 
think. Use of Iterator rather than enumeration might be of some value, 
again from the standpoint of code clarity.

old code, of which there is a frighteningly large amount, just for the 
sake of it. I know this is at odds with 'refactor mercilessly', but as 
Conor's test coverage data shows, we dont have the test coverage to 
refactor mercilessly :(

Perhaps, rather than saying don't refactor until 1.7, (or will it be 
2.1?) we should say if you want to refactor it, and it doesn't have a 
test case write the testcases before refactoring it?