Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [platform-ant-dev] org.apache.ant's dependencies?


Thanks for explaining your situation.

I don't think attempting to use an Ant task to update the preferences will work. The AntClassloader is created with the current set of URLs before the start of the Ant build. Changing the URLs during the build will only effect subsequent builds.
Another option is you could distribute a plugin that contains the JARs you want on the classpath and have that plugin use the extraClasspathEntries extension point to always add these JARs to the classpath for all builds.

Your suggestion for the Eclipse strategy should be logged as a bug report...but I will comment here as well :-)
Eclipse is not tied to any single Ant distribution.  The user can point to any install they would like to use.
We provide org.apache.ant for an out of the box experience. Providing all of the JARs to satisfy the dependencies for the ant.jar tasks would "bloat" the SDK and not be a solvable problem as Ant moves forward and is on a different release cycle than Eclipse.

Note that even Apache Ant does not come with Xalan by default. There are lots of tasks in ant.jar which most users might never use (I have never used the style or xslt task myself except for testing). Note that you do get Xerces as org.apache.ant requires the org.apache.xerces plugin. This provides the same base set of JARs that is provided by default with an Apache Ant install.

We really appreciate your feedback and this is just my feedback.  Please do not hesitate to log feature requests such as these.

Thanks
Darins



"Sikha, Naresh" <Naresh.Sikha@xxxxxxxxxx>
Sent by: platform-ant-dev-admin@xxxxxxxxxxx

02/07/03 03:56 PM
Please respond to platform-ant-dev

       
        To:        "'platform-ant-dev@xxxxxxxxxxx'" <platform-ant-dev@xxxxxxxxxxx>
        cc:        
        Subject:        RE: [platform-ant-dev] org.apache.ant's dependencies?



Darin,
 
We're just making sure that the set of custom ant tasks we provide and public tasks available in ant have their dependencies satisfied. We're not particularly concerned about how our customers setup their ant class path because our tasks are always available via the antTask extension in org.eclipse.ant.core.
 
Now the only problem area left is if our ant tasks and/or buildfiles invoke an ant task in ant.jar/optional.jar. Namely the style task (we use XSL to generate more scripts). The style task is dependent on a valid transformer. It is also important to note that the style task is in ant.jar not in optional.jar. The JUnit task is in the optional.jar yet the Eclipse platform delivers JUnit (org.junit plugin).
 
Here is the strategy I've just formulated to get around this issue.
 
- Deploy a plugin (prefix with my namespace to not conflict with apache or ibm or eclipse versions) of xalan
- Deploy a plugin with an ant task that can update ant preferences
- In any ant buildfile that we provide/generate, make the first task to execute the one that can maintain ant preferences to have xalan in the classpath
 
Allow me to propose a strategy for eclipse going forward.
 
- Maintain 2 plugins - one for ant (org.apache.ant) and one for ant optional (org.apache.ant.optional).
- Maintain as part of the eclipse platform, plugins that will successfully resolve all dependencies of the org.apache.ant plugin. Some examples are:
    - javax.xml.parsers.*  -> org.apache.xerces
    - javax.xml.transform.* -> org.apache.xalan
 
Thanks for your help!
 
-----Original Message-----
From:
Darin Swanson [mailto:Darin_Swanson@xxxxxxxxxx]
Sent:
Friday, February 07, 2003 1:34 PM
To:
platform-ant-dev@xxxxxxxxxxx
Subject:
RE: [platform-ant-dev] org.apache.ant's dependencies?


Naresh

You could do this by programmatically modifying the preferences:

       call AntCorePreferences.setCustomURLs(URL[] urls) where urls is the collection of pre-exising URLs (maybe none) plus the URLs for the JARs you wish to add to         the Ant runtime classpath.


I curious on how you are going to get closure on the set of JARs that your users will require...or is it just a best guess?


Darins


"Sikha, Naresh" <Naresh.Sikha@xxxxxxxxxx>
Sent by: platform-ant-dev-admin@xxxxxxxxxxx

02/07/03 03:08 PM
Please respond to platform-ant-dev

       
       To:        "'platform-ant-dev@xxxxxxxxxxx'" <platform-ant-dev@xxxxxxxxxxx>

       cc:        

       Subject:        RE: [platform-ant-dev] org.apache.ant's dependencies?




>
You can do this both programmatically...
 

Can you explain in more detail, or point to documentation?

 

Any solution that can obviate our customers' having to modify preferences is the favorable approach.

 

Running vanilla Ant on Unix (or a Windows network drive) allows a system administrator to provide dependent jars into the globally shared ${ant.home}/lib directory. :)

 

Thanks.

 

-Naresh

 

-----Original Message-----
From:
Darin Swanson [mailto:Darin_Swanson@xxxxxxxxxx]
Sent:
Friday, February 07, 2003 12:41 PM
To:
platform-ant-dev@xxxxxxxxxxx
Subject:
Re: [platform-ant-dev] org.apache.ant's dependencies?



You will need to set the runtime classpath for Ant.

You can do this both programmatically or from the Ant Runtime preferences (globally) or on a particular Ant launch configuration.


There are not plugins in Eclipse for all of the dependencies to satisfy the tasks in org.apache.ant.

It is up to the user (as it is from the Ant commandline) to set up the Ant runtime classpath to satisfy the dependencies for the tasks the user wishes to execute.


HTH

Darins


"Sikha, Naresh" <Naresh.Sikha@xxxxxxxxxx>
Sent by: platform-ant-dev-admin@xxxxxxxxxxx

02/07/03 02:23 PM
Please respond to platform-ant-dev

       
      To:        "'platform-ant-dev@xxxxxxxxxxx'" <platform-ant-dev@xxxxxxxxxxx>

      cc:        

      Subject:        [platform-ant-dev] org.apache.ant's dependencies?





Hello Ant Core.


How can I execute tasks in Ant such as <style/> within Eclipse? Here's my problem. It seems that any plugin that has a  task defined that has classpath dependencies needs to express dependencies on the appropriate plugin that has those classes.


Specifically <style/> needs xalan, correct? But the org.apache.ant plugin doesn't have a dependency upon a xalan project.


Your help in this matter is greatly appreciated.


Thanks.


-Naresh

Naresh Sikha
Senior Staff, Technology Solutions

Charles Schwab & Co., Inc.

215 Fremont Street / SF215FMT-06-274

San Francisco, CA 94105-2306

W: 415-667-8071

E:
naresh.sikha@xxxxxxxxxx
WARNING
: All email sent to this address will be received by the Charles Schwab & Co., Inc. corporate email system and is subject to archival and review by someone other than the recipient.


Back to the top