Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.duelengine.duel.staticapps.maven;
  
  import java.io.File;
  import java.net.URL;
 import java.util.List;
 
 
Base implementation of Mojo which loads a staticapps config file.
 
 public abstract class SiteMojo extends AbstractMojo {
 
 	// http://maven.apache.org/ref/3.0.4/maven-model/maven.html#class_build
 
The project currently being built.

Parameter:
default-value="${project}"
Required:
Readonly:
 
 	private MavenProject project;

The plugin descriptor

Parameter:
default-value="${descriptor}"
 
Location of the configuration settings

Parameter:
default-value="${project.basedir}/staticapp.json"
 
 	private String configPath;
 
 	public void setLog(Log log) {
 		super.setLog(log);
 
 		MavenLoggerAdapterFactory.setMavenLogger(log);
 	};
 
 	public void execute()
 
 		try {
 			SiteConfig config = loadConfig();
 
 			ClassLoader classLoader = getClassLoader();
 
 			execute(configclassLoader);
 
 		} catch (Exception ex) {
 			this.getLog().error(ex);
 			throw new MojoExecutionException(ex.getMessage(), ex);
 		}
 	}
 
 	protected abstract void execute(SiteConfig configClassLoader classLoader)
 			throws Exception;
 
 	protected SiteConfig loadConfig()
 			throws IOException {
 
 		File configFile = new File();
 		if (!configFile.isFile()) {
 			throw new FileNotFoundException(configFile.getPath());
 		}
 
 		// deserialize config
 		SiteConfig config = new ObjectMapper().reader(SiteConfig.class).readValue(configFile);
 
 		// ensure paths are relative from config
 		if (config.sourceDir() != null) {
 			config.sourceDir(new File(configFile.getParentFile(), config.sourceDir()).getPath());
 		}
 		if (config.targetDir() != null) {
 			config.targetDir(new File(configFile.getParentFile(), config.targetDir()).getPath());
 		}
 
 		return config;
	}
	protected ClassLoader getClassLoader() {
		Log log = this.getLog();
		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
		try {
			// http://stackoverflow.com/q/871708/43217
			log.info("adding build dependencies and target to classPath");
			List<StringruntimeClasspathElements = .getRuntimeClasspathElements();
			List<URLruntimeUrls = new ArrayList<URL>(runtimeClasspathElements.size());
			for (String element : runtimeClasspathElements) {
				try {
					URL elementURL = FileUtil.getCanonicalFile(element).toURI().toURL();
					runtimeUrls.add(elementURL);
					if (realm != null) {
						realm.addURL(elementURL);
					}
catch (MalformedURLException ex) {
					log.error(ex);
				}
			}
			classLoader = new URLClassLoader(runtimeUrls.toArray(new URL[runtimeUrls.size()]), classLoader);
			Thread.currentThread().setContextClassLoader(classLoader);
			log.error(ex);
		}
		return classLoader;
	}
New to GrepCode? Check out our FAQ X