ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marc Farrow" <marc.far...@gmail.com>
Subject Re: dev-list - Calling Ant within a servlet/webapp
Date Wed, 16 Aug 2006 13:49:18 GMT
I checked out the link.  Anthill is just "spawning" a process to run the Ant
Executable for the specified platform.  So they are not programmatically
using ant as I want to do.  I want my solution to be a Java solution.

Anyone else have any other ideas?

Thank you,

Marc


On 8/16/06, Marc Farrow <marc.farrow@gmail.com> wrote:
>
> Thanks for the tip Tom.  I will definitely check it out.
>
>
> On 8/16/06, Tom Cunningham <cunningt@mac.com> wrote:
> >
> >
> > Have you taken a look at Anthill (http://www.urbancode.com/projects/anthill/default.jsp
> > )?   There's an open source version which you can hack up, but it seems
> > like it does the same thing that you are trying to do here (kick off ant
> > from the web).     If you do need to do this, you might want to check the
> > code in their open source version for how they handle their classloaders.
> >
> > On Wednesday, August 16, 2006, at 08:27AM, Marc Farrow <
> > marc.farrow@gmail.com> wrote:
> >
> > >I have some servlet and I am trying to call an Ant script within the
> > class
> > >to compile a "project".  All of the references in the build script are
> > not
> > >relative, therefore some of the classpath references are not
> > correct.  I
> > >know I can change the properties, etc to fix this.  However, due to the
> >
> > >nature of our environment we do not want to do this.  With all that
> > being
> > >said, I do know that all the classpath entries that I need to compile
> > the
> > >needed classes are within my current servlet container (in my case
> > Tomcat).
> > >What can I do retrieve the correct classloader so that all the classes
> > are
> > >visible to the Ant script.  Below is a snippet of code I am using.  In
> > >comments, you will see the various ways I have tried to call the
> > >setCoreLoader method.
> > >
> > >Thank you,
> > >
> > >File buildfile = null;
> > >try {
> > >     buildfile = new File(this.workingDirectory.getPath() +
> > "/build.xml");
> > >     Project project = new Project();
> > >     project.setBaseDir(this.workingDirectory);
> > >     project.setName(this.project);
> > >     project.setUserProperty("ant.file", buildfile.getPath());
> > >     project.init();
> > >     ProjectHelper helper = ProjectHelper.getProjectHelper();
> > >     project.addReference("ant.projectHelper", helper);
> > >     helper.parse(project, buildfile);
> > >     Properties sysProps = System.getProperties();
> > >     for (Iterator it = sysProps.entrySet().iterator();it.hasNext();) {
> > >  Map.Entry entry = (Map.Entry) it.next();
> > >  project.setProperty(entry.getKey().toString(), entry.getValue
> > >().toString());
> > >     }
> > >     project.setProperty ("basedir", project.getBaseDir().getPath());
> > >     project.setProperty("ant.project.name", project.getName());
> > >     project.setProperty("ant.file ", buildfile.getPath());
> > >     project.setCoreLoader(Thread.currentThread
> > ().getContextClassLoader());
> > >//     project.setCoreLoader(null);
> > >//     project.setCoreLoader(this.getClass().getClassLoader());
> > >//     project.setCoreLoader(Thread.currentThread
> > >().getContextClassLoader().getParent());
> > >     project.execute("dist");
> > >} catch (Exception e) {
> > >     throw new RuntimeException(e);
> > >} finally {
> > >     project = null;
> > >     buildfile = null;
> > >}
> > >
> > >
> > >--
> > >Marc Farrow
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> > For additional commands, e-mail: dev-help@ant.apache.org
> >
> >
>
>
> --
>
> Marc Farrow
>



-- 
Marc Farrow

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message