blob: aa0282745e6d76ebd1275d87a919c162bdf3cee2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 BEA Systems, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* jgarms@bea.com - initial API and implementation
*
*******************************************************************************/
package org.eclipse.jdt.apt.core.build;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
/**
* Commandline entry point for building a workspace using APT.
* Currently cleans and then builds the entire workspace.<P>
*
* Sample commandline invocation:
*
* %ECLIPSE_HOME%/eclipse -noupdate -application org.eclipse.jdt.apt.core.aptBuild -data %WORKSPACE%
*/
public class AptBuilder implements IApplication {
/**
* Runs this runnable with the given application context and returns a result.
* The content of the args is unchecked and should conform to the expectations of
* the runnable being invoked. Typically this is a <code>String</code> array.
* Applications can return any object they like. If an <code>Integer</code> is returned
* it is treated as the program exit code if Eclipse is exiting.
*
* @param context the given application context passed to the application
* @return the return value of the application
* @exception Exception if there is a problem running this runnable.
* @see #EXIT_OK
* @see #EXIT_RESTART
* @see #EXIT_RELAUNCH
*/
public Object start(IApplicationContext context) throws Exception {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IProgressMonitor progressMonitor = new SystemOutProgressMonitor();
workspace.build(IncrementalProjectBuilder.CLEAN_BUILD, progressMonitor);
workspace.build(IncrementalProjectBuilder.FULL_BUILD, progressMonitor);
return IApplication.EXIT_OK;
}
public void stop() {
// nothing to do
}
/**
* Sends all progress to StdOut
*/
private static class SystemOutProgressMonitor extends NullProgressMonitor {
public void beginTask(String name, int totalWork) {
if (name != null && name.length() > 0)
System.out.println(name);
}
public void subTask(String name) {
if (name != null && name.length() > 0)
System.out.println(name);
}
}
}