Skip to content

Commit

Permalink
Creation of Forge addons is functional, including addition of install…
Browse files Browse the repository at this point in the history
…ed addon dependencies
  • Loading branch information
gastaldi committed Apr 11, 2013
1 parent d85ad1f commit 165c2a2
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public boolean install()
MavenPlugin forgeAddon = MavenPluginBuilder
.create()
.setCoordinate(CoordinateBuilder.create().setGroupId("org.apache.maven.plugins")
.setArtifactId("maven-compiler-plugin"))
.setArtifactId("maven-jar-plugin"))
.addExecution(
ExecutionBuilder
.create()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@
*/
package org.jboss.forge.addons;

import java.util.ArrayList;
import java.util.List;

import org.jboss.forge.projects.ProjectFacet;
import org.jboss.forge.projects.ProjectType;
import org.jboss.forge.projects.facets.DependencyFacet;
import org.jboss.forge.ui.wizard.UIWizardStep;

/**
Expand All @@ -35,8 +31,6 @@ public Class<? extends UIWizardStep> getSetupFlow()
@Override
public Iterable<Class<? extends ProjectFacet>> getRequiredFacets()
{
List<Class<? extends ProjectFacet>> result = new ArrayList<Class<? extends ProjectFacet>>();
result.add(DependencyFacet.class);
return result;
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,10 @@
import org.jboss.forge.container.Forge;
import org.jboss.forge.container.addons.AddonId;
import org.jboss.forge.container.repositories.AddonRepository;
import org.jboss.forge.dependencies.builder.CoordinateBuilder;
import org.jboss.forge.maven.plugins.ConfigurationBuilder;
import org.jboss.forge.maven.plugins.ConfigurationElementBuilder;
import org.jboss.forge.maven.plugins.ExecutionBuilder;
import org.jboss.forge.maven.plugins.MavenPlugin;
import org.jboss.forge.maven.plugins.MavenPluginBuilder;
import org.jboss.forge.maven.projects.MavenPluginFacet;
import org.jboss.forge.dependencies.builder.DependencyBuilder;
import org.jboss.forge.facets.FacetFactory;
import org.jboss.forge.projects.Project;
import org.jboss.forge.projects.dependencies.DependencyInstaller;
import org.jboss.forge.ui.context.UIBuilder;
import org.jboss.forge.ui.context.UIContext;
import org.jboss.forge.ui.context.UIValidationContext;
Expand All @@ -47,9 +43,15 @@ public class ForgeAddonSetupStep implements UIWizardStep
@Inject
private UISelectMany<AddonId> addons;

@Inject
private DependencyInstaller dependencyInstaller;

@Inject
private Forge forge;

@Inject
private FacetFactory facetFactory;

@Override
public UICommandMetadata getMetadata()
{
Expand Down Expand Up @@ -78,36 +80,38 @@ public void initializeUI(UIBuilder builder) throws Exception
}
}
addons.setValueChoices(choices);
builder.add(splitApiImpl).add(addons);
builder.add(addons);
}

@Override
public void validate(UIValidationContext validator)
{

}

@Override
public Result execute(UIContext context) throws Exception
{
Project project = (Project) context.getAttribute(Project.class);
MavenPluginFacet pluginFacet = project.getFacet(MavenPluginFacet.class);
MavenPlugin forgeAddon = MavenPluginBuilder
.create()
.setCoordinate(CoordinateBuilder.create().setGroupId("org.apache.maven.plugins")
.setArtifactId("maven-compiler-plugin"))
.addExecution(
ExecutionBuilder
.create()
.setId("create-forge-addon")
.setPhase("package")
.addGoal("jar")
.setConfig(
ConfigurationBuilder.create().addConfigurationElement(
ConfigurationElementBuilder.create().setName("classifier")
.setText("forge-addon"))));
pluginFacet.addPlugin(forgeAddon);
return Results.success("Forge project created");
ForgeAddonFacet facet = facetFactory.create(ForgeAddonFacet.class, project);

Result result;
if (project.install(facet))
{
for (AddonId addon : addons.getValue())
{
String[] mavenCoords = addon.getName().split(":");
DependencyBuilder dependency = DependencyBuilder.create().setGroupId(mavenCoords[0])
.setArtifactId(mavenCoords[1])
.setVersion(addon.getVersion().getVersionString()).setClassifier("forge-addon");
dependencyInstaller.installManaged(project, dependency);
}
result = Results.success("Forge project created");
}
else
{
result = Results.fail("Failure while installing the Forge facet");
}
return result;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public class ForgeSimpleAddonFacet extends AbstractFacet<Project> implements Pro
@Override
public boolean install()
{
installer.install(getOrigin(), forgeApi);
return true;
}

Expand Down

0 comments on commit 165c2a2

Please sign in to comment.