On 2 May 2001, at 14:23, Stefan Bodewig wrote:

> Michael McCallum <[EMAIL PROTECTED]> wrote:
> 
> > On Wednesday 02 May 2001 08:31, you wrote:
> >> Michael McCallum <[EMAIL PROTECTED]> wrote:
> 
> >> > The sql patch does not do anything execpt add a call to
> >> > filterset.replaceTokens( sql )
> >>
> >> Why use filters instead of property substitution for this?
> >
> > Because the substitution occurs for all sql statements even those
> > coming from file.
> 
> Why couldn't you do this with properties?  I think we are consistently
> using property expansions except when copying files and I'd like to
> keep it this way.
I see what you are saying. But you still need some way of specifying which set 
of properties you 
wish to use. Just saying do a property expansion is not enough as i may want ot 
expand X 
tokens in file A and X + C tokens in file B.

It is not enough either to just use expansion of ${foobar} it has to be 
flexible. ie need to be able 
to replace @foobar@ and #foobar# and anything else you might consider.
> 
> When you invoke filterset.replaceTokens(sql), how is this different
> from ProjectHelper.replaceProperties(project, sql, project.getProperties()) 
> - from the point of functionality, you are replacing one pattern with another.
> 
> I guess, I'm missing something obvious.
no good point.

> 
> > I do not believe that property replacement should be carried out on
> > file loaded sql.
Yes it should it is absolutely necessary when running the scripts using other 
tools like sqlplus 
they have their own file substitution patterns that ant needs to be flexible 
enough to work with.
> 
> Why not?  To me filters are restricted to the filtered copying of
> files - and I'm even thinking about removing them for this purpose as
> well, like
I guess what Im saying is the the use of a token replacement mechanism should 
be standard. 
Which we could use properties for (I just thought that the filter task was 
hackish so improved it).

Using property sets in a token replacement mechanism would be fine.

> 
> <copy ...>
>   <filterset>
>     <property name="prop1" />
>     <property name="prop2" />
>   </filterset>
> </copy>
> 
> where each occurrence of @prop1@ would be replaced with the expanded
> ${prop1}.  This is just a random thought.
Thats fine, as long as the power is there. ie must have the ability to specifu 
@ and @.
You would need to be able to group all filters that came from a file as one set 
as well.

> 
> Here we are getting at the point where my main concern with your
> filterset patch originates from.  We have decided to give people more
> control over the filtering that happens when copying files - we've not
> decided how we would do that yet.  
> 
> If we add filtersets in Ant 1.4 but decide to drop filters completely,
> change the concept in some other way, we are going to confuse users
> more than we need to do.  I'd simply prefer to see how we are going to
> change it in Ant2 - and I'd like to take your filterset concept as one
> proposal to achieve it.
I think that the users have the idea that they will need to do a little bit of 
rethinking before they 
move to Ant 2. I always believe that too much information can never hurt and if 
they have to 
backtrack a little or find something works the same but is now called something 
different they 
will get there and benefit from finding the way. 
One thing I cant stand is spoon feeding. I require that people always think 
about the process 
and if a little confusion makes them think a little more next time well thats 
all good.

Plus you have a solution that may not be perfect but people will get to try it 
out and give 
feedback. So you can either improve the concept or discard it for Ant2. But 
sitting the code on 
the fence does not achieve anything except we sit around and discuss it merits 
and then the 
users use it in completely unexpected way later.

> 
> >> > I could split it all up into patches for Project, copy,
> >> > DefaultCompilerAdapter, Filter, SQLExec etc if you would like.
> 
> I've just browsed over the original patch to find out what you've been
> doing with <javac> here (as filtering has gone away with the copying
> of support files in Ant 1.2).
> 
> You want to apply filtering to the output from javac?  Why?  I'd
> prefer to see what an error message really looks like 8-)
Because if I copy files from root /usr/local/src/foobar to 
/usr/local/build/foobar and then there are 
compile errors all ides i have seen will let me easily open the file in 
/usr/local/build/foobar and 
not the file in /usr/local/src/foobar.
So i made a replacement of the /usr/local/build with /usr/local/src/ possible 
with the filtersets.
Ok its hacky but it solved my problem. Anyone trying to build a subset of a 
source tree will have 
problems like I did with compilers dragging in sources not specfied for 
compilation and without 
dependencies. (just decided they were in a package so should be compiled as 
well. I have seen 
javac and jikes do this.)


Michael

Reply via email to