/*
* Copyright 2013 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Eclipse Public License version 1.0, available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jboss.forge.maven.plugin;
import java.io.File;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.jboss.forge.addon.manager.AddonManager;
import org.jboss.forge.addon.manager.impl.AddonManagerImpl;
import org.jboss.forge.addon.maven.dependencies.FileResourceFactory;
import org.jboss.forge.addon.maven.dependencies.MavenContainer;
import org.jboss.forge.addon.maven.dependencies.MavenDependencyResolver;
import org.jboss.forge.furnace.Furnace;
import org.jboss.forge.furnace.FurnaceImpl;
import org.jboss.forge.furnace.addons.AddonId;
import org.jboss.forge.furnace.repositories.AddonRepositoryMode;
/**
* Goal which installs addons to a specified directory
*
* @goal addon-install
*
* @phase prepare-package
*/
public class AddonInstallMojo extends AbstractMojo
{
/**
* Addon repository file location
*
* @parameter property="forge.repository"
* @required
*/
private File addonRepository;
/**
* Addon IDs to install
*
* @parameter property="forge.addonIds"
* @required
*/
private String[] addonIds;
@Override
public void execute() throws MojoExecutionException, MojoFailureException
{
Furnace forge = new FurnaceImpl();
if (!addonRepository.exists())
{
addonRepository.mkdirs();
}
forge.addRepository(AddonRepositoryMode.MUTABLE, addonRepository);
AddonManager addonManager = new AddonManagerImpl(forge, new MavenDependencyResolver(
new FileResourceFactory(), new MavenContainer()));
for (String addonId : addonIds)
{
AddonId id = AddonId.fromCoordinates(addonId);
addonManager.install(id).perform();
}
}
}