Java Mailing List Archive

http://www.junlu.com/

Subjects
Home
mod jk2 https
Donation of JAXP 1 3 Sources to Apache
R annoyances
RE: Finding out when the aspnet admin worker process has recycled
Favorite Linux Distribution
eigenvalues of a circulant matrix
Apache Install
Reachin apache from outside
Ant should have an ext directory
Warning: Documentroot doesn 't exist
Can this be Done?
RE: Multilanguage Application
RE: Simple Question On setting up Sub Domain site
Lack of independence in anova()
How to close connection instead of sending 403?
winning the case for ANT
Re: adding php
New Ant GUI 'Ant 's Nest '
Narrowing Down A Strange Problem
Ant Task: sshexec
R Graph Gallery : categorization of the graphs
I 've been hacked, I need some help please
RE: Anyone working with DotNetNuke?
RE: Exception Handling Opinion
hex format
RE: IIS stopped working :(
<for > Build Failed:problem
RE: Separation of Objects from Logic
RE: Tracking pages with long request execution time
sending email to multiple destination
Web Site
ant UI
Easy cut & paste from Excel to R?
Win32 Apache Restart
Improving Tasks
HELP! PLEASE!
RE: Adding Controls to a Page
read table
RE: ASPNET account doesn 't exist!
Best way to uninstall Apache2 on red hat
from win to linux how to web page
XMLParseException changes and creation of XMLLocator2
Re Post: rewrite backslash to forward slash
Target or macrodef?
Page display problem XPSP2
Authentication problems
Dynamic Dictionary Data Type?
Newbie unable access my www from outside
off topic question: Latex and R in industries
Conflict between xtable and Hmisc when using Sweave?
Very old problem without any new solution
mod rewrite help
Basic Authentication question
RE: Code Security
calling ant from java program
prevent double signing
Re: Controlling Copy/Paste/Print
Using R to illustrate the Central Limit Theorem
web server slow too much slow
access to user directories
Links
Home
Official R Project Site
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
calling ant from java program

calling ant from java program

2004-08-25       - By Olivier CROISIER
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

> How can I call a ant task from java program?
> Regds
> Ashutosh


Here is some code I wrote.
It allows you to run any ant target from within a regular Java app.
You'll need ant-launcher.jar and ant.jar for this class to compile.
Enjoy :)

BTW, any comment/idea/debug/fix welcome !



import org.apache.tools.ant.*;

import java.io.*;
import java.util.*;

/**
 * <PRE>
 *   This class is designed to call Ant targets from any Java application.
 *   1. Initialize a new Project by calling "init"
 *   2. Feed Ant with some properties by calling "setProperties" (optional)
 *   3. Run an Ant target by calling "runTarget"
 *
 *
 *   Example :
 *
 *   try
 *   {
 *       //init
 *       init("/home/me/build.xml","/home/me/");
 *       //properties
 *       HashMap m = new HashMap();
 *       m.put("event", "test");
 *       m.put("subject", "sujet java 3");
 *       m.put("message", "message java 3");
 *       setProperties(m, false);
 *       //run
 *       runTarget("test");
 *   } catch (Exception e) { e.printStackTrace(); }
 * </PRE>
 *
 * @(protected) croisier
 */


public class AntRunner
{
    private Project project;


    /**
     * Initializes a new Ant Project.
     * @(protected) _buildFile The build File to use. If none is provided, it will
be defaulted to "build.xml".
     * @(protected) _baseDir The project's base directory. If none is provided, will
be defaulted to "." (the current directory).
     * @(protected) Exception Exceptions are self-explanatory (read their Message)
     */
    public void init(String _buildFile, String _baseDir) throws Exception
    {
        // Create a new project, and perform some default initialization
        project = new Project();
        try { project.init(); }
        catch (BuildException e)
            { throw new Exception("The default task list could not be loaded."
); }

        // Set the base directory. If none is given, "." is used.
        if (_baseDir == null) _baseDir=new String(".");
        try { project.setBasedir(_baseDir); }
        catch (BuildException e)
            { throw new Exception("The given basedir doesn't exist, or isn't a
directory."); }

        // Parse the given buildfile. If none is given, "build.xml" is used.
        if (_buildFile == null) _buildFile=new String("build.xml");
        try { ProjectHelper.getProjectHelper().parse(project, new File(
_buildFile)); }
        catch (BuildException e)
            { throw new Exception("Configuration file "+_buildFile+" is
invalid, or cannot be read."); }
    }



    /**
     * Sets the project's properties.
     * May be called to set project-wide properties, or just before a target
call to set target-related properties only.
     * @(protected) _properties A map containing the properties' name/value couples
     * @(protected) _overridable If set, the provided properties values may be
overriden by the config file's values
     * @(protected) Exception Exceptions are self-explanatory (read their Message)
     */
    public void setProperties(Map _properties, boolean _overridable) throws
Exception
    {
        // Test if the project exists
        if (project == null) throw new Exception("Properties cannot be set
because the project has not been initialized. Please call the 'init' method
first !");

        // Property hashmap is null
        if (_properties == null) throw new Exception("The provided property
map is null.");

        // Loop through the property map
        Set propertyNames = _properties.keySet();
        Iterator iter = propertyNames.iterator();
        while (iter.hasNext())
        {
            // Get the property's name and value
            String propertyName =  (String) iter.next();
            String propertyValue = (String) _properties.get(propertyName);
            if (propertyValue == null) continue;

            // Set the properties
            if (_overridable) project.setProperty(propertyName, propertyValue);
            else project.setUserProperty(propertyName, propertyValue);
        }
    }



     /**
     * Runs the given Target.
     * @(protected) _target The name of the target to run. If null, the project's
default target will be used.
     * @(protected) Exception Exceptions are self-explanatory (read their Message)
     */
    public void runTarget(String _target) throws Exception
    {
        // Test if the project exists
        if (project == null) throw new Exception("No target can be launched
because the project has not been initialized. Please call the 'init' method
first !");

        // If no target is specified, run the default one.
        if (_target == null) _target = project.getDefaultTarget();

        // Run the target
        try { project.executeTarget(_target);  }
        catch (BuildException e)
        { throw new Exception(e.getMessage()); }
    }

}






--
CROISIER Olivier
Software Engineer
Thales IS - ANS
olivier.croisier@(protected)

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.