ProjectHelper delegates for backward compat.
I deprecated some of the methods, easy to revert if you think they
are needed.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273712 13f79535-47bb-0310-9956-ffa450edef68
Project delegates to PropertyHelper ( for backward compatibility ).
As soon as the API is stable ( i.e. do we pass ns ? Object ? )
we can deprecate the methods in Project.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273711 13f79535-47bb-0310-9956-ffa450edef68
This is "slightly" different from embed - if dynamic properties will be
accepted in 1.6, it is better to do it right. Embed uses few hacks to
trick the ProjectHelper.
PropertyHelper includes all the code related with property manipulation
from Project (cut&paste). I added a very simple hook mechanism ( Filter/Valve
like ) for the most common operations.
The API is obviously far from final - someone who really understand "user"
and "inherited" properties should review it and make few changes.
In Project, all properties fields are private - so all can be removed.
The methods related with properties will just delegate to PropertyHelper.
From a user point of view - no visible change ( hopefully :-). Even grant
will continue to work ( but won't be able to use the new features ).
Benefits:
- cleanup of Project. Less code and better organised.
- Property handling will hopefully be cleaner too
- we get to add APIs for namespace support, and maybe support non-string
properties ( JSP-EL like - that needs to be disussed, but IMO it would
be very helpfull ). While refs are Objects, the main distinction is imutability.
Also:
- apps embeding or extending ant can fully customize _all_ aspects of
property processing, including ${} replacement and even the syntax.
- it should be very easy to hook a different storage mechanism ( i.e.
integrated with the embeding app, without requiring copy of properties ).
- it should be possible to avoid copy when creating execution frames
( by using a chain that keeps changes and delegates getters ).
- dynamic properties support ( my original itch :-)
Please wait few days before firing, it seems all tests are passing
and gump works - but I'm sure there are few problems :-)
( I'll commit the change in Project later today )
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273709 13f79535-47bb-0310-9956-ffa450edef68
support imports. The original helper won't work ( because of eval order ),
and embed will fail too ( since it can't use 1.6 features - one of the
goals is to work in ant1.5 ).
I'm ready to move the dynamic properties and the component hooks - I'll
porbably do it this weekend ( most people are in vacation, so fewer
will feel any breakage ). In any case [embed] should now used only
if you want to use (some) new features in ant1.5.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273707 13f79535-47bb-0310-9956-ffa450edef68
the SAX2 Attributes).
- import will use the normal entry point and will not depend on the sax
context. We know we are in an import by looking at the importStack,
that will set ignoreProjectTag flag and we'll reuse the context.
There are few more changes needed to clean up the context ( some fields
are no longer needed, and it needs to use proper getter/setters instead
of the fields ).
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273705 13f79535-47bb-0310-9956-ffa450edef68
The attributes are just stored in a Hashtable, you can construct the
UE/RC tree without using any SAX at all.
I added @deprecated tags to the SAX1 attributes as well.
Also added a (harmless - I hope ) Serializable interface to RC, and
transient to the fields that don't need to be serialized.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273704 13f79535-47bb-0310-9956-ffa450edef68
If importStack has more than one element, ProjectHelper implementations
should know they are inside an import. This can also be used to
display more informative error messages ( i.e. the include path to
a file with errors ).
Removed the SAX2 Attributes and deprecate the SAX1 Attributes methods.
I made a small change to RuntimeConfigurable to make it less SAX-dependent,
ProjectHelper2 will just use a simple Hashtable and RC/ProjectHelper will
be SAX-independent ( except the deprecated methods ). This would allow
better programmatic use of ant and maybe a DOM ProjectHelper.
One interesting note: while SAX is faster, using DOM or caching the
UE/RC tree will greatly optimize <antCall>, where the same file
is parsed on each call.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273703 13f79535-47bb-0310-9956-ffa450edef68
If one already exists, it'll be returned.
The method will register itself for projectEnd notifications.
( this avoids multiple IH and listeners )
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273702 13f79535-47bb-0310-9956-ffa450edef68
We only need the import stack to avoid loops and some
mechanism to let let the helper know we're processing an import.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273701 13f79535-47bb-0310-9956-ffa450edef68
I can't reproduce the error yet ( my gump works fine ), but
most likely this is the cause of the errors ( classloader changes
couldn't affect anything not using <classloader>).
I'll apply again the patch from Nicola, without making more
changes.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273695 13f79535-47bb-0310-9956-ffa450edef68
Added a small message to display the source of the class ( like the
verbose:class option )
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273690 13f79535-47bb-0310-9956-ffa450edef68
It'll create a new loader or add paths to an existing loader.
The main use is for the core loader - used to load ant regular
and optional tasks.
This is similar with embed, but 90% of the code is not needed for
ant1.6 ( due to the delayed task creation ).
For both import and classloader I changed the name of the class
so embed can still compile.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273688 13f79535-47bb-0310-9956-ffa450edef68
This is almost the same as in embed, except few simplifications
and cleanups.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273687 13f79535-47bb-0310-9956-ffa450edef68
I don't know how this can be included in the junit tests
( at least the part that loads optional tasks ) since the
test env already includes most classes.
In order to test - you need to run this without junit.jar
in ant/lib and to pass the path to junit.jar
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273686 13f79535-47bb-0310-9956-ffa450edef68
I still need to add the .java file and add tests for the
more advanced features.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273685 13f79535-47bb-0310-9956-ffa450edef68
revert sigfile to a String - does not make sense to be a File
Added a testcase with keystore for signjar
PR: 1284, 10754
Submitted by: Jonathan Keller
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273684 13f79535-47bb-0310-9956-ffa450edef68
email this weekend.
The code may still have a small problem - but the original had similar
issues. I'll try to move the fix in UE later this week.
I think getting to a consistent behavior is quite important - I wouldn't
mind having all elements converted to lowercase, and I don't remember
and design and explicit decision to have some lowercased and some not.
If you still see problems - switch back to the original PH.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273671 13f79535-47bb-0310-9956-ffa450edef68
the tree.
If ProjectHelperImpl is used - no differences should be visible.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273669 13f79535-47bb-0310-9956-ffa450edef68
If the original ProjectHelperImpl will be used, things will
work as before.
If not - Description will look into each target and do
whatever it is supposed to do.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273668 13f79535-47bb-0310-9956-ffa450edef68
retrieve the ordered list. This should eventually be included in
Project, but for now I added a small workaround in order to
support Description.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273667 13f79535-47bb-0310-9956-ffa450edef68
Changed ( at least for few now ) the default helper to the SAX2
processor.
The original processor can still be used using the system property,
and we can revert if we have see problems.
Description4 still fails - I'll add try to fix it later, I
don't think it's a big show-stopper.
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273656 13f79535-47bb-0310-9956-ffa450edef68
This is merged from RuntimeConfigurable2 ( sorry for the indentation
changes ).
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273654 13f79535-47bb-0310-9956-ffa450edef68
version of ProjectHelperImpl from embed, with all other extensions
removed. I also removed all code that supported the old eval
mode ( which reduced the size in 1/2 )
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273653 13f79535-47bb-0310-9956-ffa450edef68