ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Magesh Umasankar" <umag...@apache.org>
Subject addXXX related question
Date Sun, 03 Mar 2002 09:02:57 GMT
Hi,

In the FilterChain class of the sandbox/filterreader proposal,
I have the following:

public final void addClassConstants(final ClassConstants classConstants) {
    filterReaders.addElement(classConstants);
}

There are numerous other addXXX methods also.

ClassConstants invokes BCEL APIs.  This is the only
addXXX method that takes in as argument a class that
depends upon an external API, currently.

Now, consider this scenario:

<copy file=blah" tofile="foo">
    <filterchain>
        <replacetokens>
            <token key="FOO" value="BAR"/>
        </replacetokens>
    </filterchain>
</copy>

When Ant is invoked without bcel.jar anywhere
in Ant's classpath, I am not able to execute this,
eventhough the filter that I am using is not
dependent upon an external jar.

The problem seems to be in IntrospectionHelper/
ProjectHelper.  If the method name begins with
"add", IntrospectionHelper requires to be able to 
create an instance of the argument, whether 
it is used as an element in the build file or not.
If it does not find the class, it throws a 
NoClassDefFoundError.

Is this limitation intended?  If so, why?
I wish to be able to provide FilterChain.java with
addXXX methods that may depend upon external APIs.
However, that must not translate into the user
having to have all those ext jars irrespective
of whether she is going to be using those filters
(with ext. deps.) or not.

Cheers,
Magesh



--
To unsubscribe, e-mail:   <mailto:ant-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:ant-dev-help@jakarta.apache.org>


Mime
View raw message