Skip to content

Commit

Permalink
FORGE-1824: More updates to address classpath isolation
Browse files Browse the repository at this point in the history
  • Loading branch information
lincolnthree committed May 15, 2014
1 parent 34a989b commit b2ddad8
Show file tree
Hide file tree
Showing 52 changed files with 421 additions and 120 deletions.
5 changes: 0 additions & 5 deletions addon-manager/tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,6 @@
<artifactId>maven</artifactId>
<classifier>forge-addon</classifier>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>maven-impl</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>projects</artifactId>
Expand Down
6 changes: 6 additions & 0 deletions addons/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@
<classifier>forge-addon</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>ui</artifactId>
<classifier>forge-addon</classifier>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>maven</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
/*
* 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.addon.addons.project;

import java.io.FileNotFoundException;

import org.jboss.forge.addon.dependencies.Dependency;
import org.jboss.forge.addon.facets.FacetNotFoundException;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.furnace.addons.Addon;
import org.jboss.forge.furnace.addons.AddonId;
import org.jboss.forge.furnace.versions.Version;

/**
* Creates Furnace Addon projects
*
* @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface AddonProjectConfigurator
{
/**
* Create a Furnace {@link Project} with the single project structure.
*/
public void setupSimpleAddonProject(Project project, Version forgeVersion, Iterable<AddonId> dependencyAddons)
throws FileNotFoundException, FacetNotFoundException;

/**
* Create a Furnace {@link Project} with the full structure (api,impl,tests,spi and addon)
*/
public void setupComplexAddonProject(Project project, Version forgeVersion, Iterable<AddonId> dependencyAddons)
throws FileNotFoundException, FacetNotFoundException;

/**
* Install the specified {@link Addon} instances into the given {@link Project}.
*/
public void installSelectedAddons(final Project project, Iterable<AddonId> addons, boolean managed);

/**
* Get a {@link Dependency} representing the given {@link AddonId}
*/
public Dependency toDependency(AddonId addon);

/**
* Checks if the {@link Project} depends on the provided {@link AddonId}
*/
public boolean dependsOnAddon(final Project project, AddonId addonId);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/**
* Copyright 2014 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.addon.addons.ui;

import org.jboss.forge.addon.dependencies.Dependency;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.ui.command.UICommand;
import org.jboss.forge.furnace.addons.Addon;

/**
* Adds an {@link Addon} {@link Dependency} to the current {@link Project}
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface AddAddonDependencyCommand extends UICommand
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* 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.addon.addons.ui;

import org.jboss.forge.addon.ui.annotation.Command;
import org.jboss.forge.addon.ui.command.UICommand;

/**
* Create a new annotation {@link UICommand} using the {@link Command} annotation.
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface NewAnnotatedUICommandWizard extends UICommand
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* Copyright 2014 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.addon.addons.ui;

import org.jboss.forge.addon.ui.command.UICommand;

/**
* Creates a Furnace Test case
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface NewFurnaceTestCommand extends UICommand
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/**
* Copyright 2014 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.addon.addons.ui;

import org.jboss.forge.addon.ui.command.UICommand;

/**
* Creates a Furnace Test case
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface NewFurnaceTestSetupCommand extends UICommand
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* 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.addon.addons.ui;

import org.jboss.forge.addon.ui.command.UICommand;

/**
*
* Create a new {@link UICommand}.
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
public interface NewUICommandWizard extends UICommand
{
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@
* Creates Furnace Addon projects
*
* @author <a href="mailto:ggastald@redhat.com">George Gastaldi</a>
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@SuppressWarnings("unchecked")
public class AddonProjectConfigurator
public class AddonProjectConfiguratorImpl implements AddonProjectConfigurator
{
private static final String FORGE_ADDON_CLASSIFIER = "forge-addon";

Expand All @@ -71,6 +71,7 @@ public class AddonProjectConfigurator
@Inject
private MavenBuildSystem buildSystem;

@Override
public void setupSimpleAddonProject(Project project, Version forgeVersion, Iterable<AddonId> dependencyAddons)
throws FileNotFoundException, FacetNotFoundException
{
Expand Down Expand Up @@ -100,6 +101,7 @@ public void setupSimpleAddonProject(Project project, Version forgeVersion, Itera
* @throws FacetNotFoundException
* @throws FileNotFoundException
*/
@Override
public void setupComplexAddonProject(Project project, Version forgeVersion, Iterable<AddonId> dependencyAddons)
throws FileNotFoundException, FacetNotFoundException
{
Expand Down Expand Up @@ -185,6 +187,7 @@ private void generateReadme(Project project)
child.setContents(readmeTemplate);
}

@Override
public void installSelectedAddons(final Project project, Iterable<AddonId> addons, boolean managed)
{
if (addons != null)
Expand All @@ -202,6 +205,7 @@ public void installSelectedAddons(final Project project, Iterable<AddonId> addon
}
}

@Override
public Dependency toDependency(AddonId addon)
{
String[] mavenCoords = addon.getName().split(":");
Expand All @@ -214,6 +218,7 @@ public Dependency toDependency(AddonId addon)
/**
* Checks if the {@link Project} depends on the provided {@link AddonId}
*/
@Override
public boolean dependsOnAddon(final Project project, AddonId addonId)
{
Dependency dependency = toDependency(addonId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import javax.inject.Inject;

import org.jboss.forge.addon.addons.facets.AddonClassifierFacet;
import org.jboss.forge.addon.addons.project.AddonProjectConfigurator;
import org.jboss.forge.addon.addons.project.AddonProjectConfiguratorImpl;
import org.jboss.forge.addon.facets.constraints.FacetConstraint;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
Expand Down Expand Up @@ -45,13 +45,13 @@
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
@FacetConstraint(AddonClassifierFacet.class)
public class AddAddonDependencyCommand extends AbstractProjectCommand
public class AddAddonDependencyCommandImpl extends AbstractProjectCommand implements AddAddonDependencyCommand
{
@Inject
private ProjectFactory projectFactory;

@Inject
private AddonProjectConfigurator configurator;
private AddonProjectConfiguratorImpl configurator;

@Inject
private Furnace furnace;
Expand All @@ -63,7 +63,7 @@ public class AddAddonDependencyCommand extends AbstractProjectCommand
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
final Set<AddonId> addonChoices = new TreeSet<AddonId>();
final Set<AddonId> addonChoices = new TreeSet<>();
Project project = getSelectedProject(builder);
for (AddonRepository repository : furnace.getRepositories())
{
Expand Down Expand Up @@ -117,7 +117,7 @@ protected boolean isProjectRequired()
@Override
public UICommandMetadata getMetadata(UIContext context)
{
return Metadata.forCommand(NewUICommandWizard.class)
return Metadata.forCommand(NewUICommandWizardImpl.class)
.name("Addon: Add Dependency")
.description("Adds the provided addon as a dependency to the selected project")
.category(Categories.create("Forge", "Setup"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ public void initializeUI(UIBuilder builder) throws Exception

private void configureAddonDependencies()
{
Set<AddonId> addonChoices = new TreeSet<AddonId>();
Set<AddonId> containerChoices = new TreeSet<AddonId>();
Set<AddonId> addonChoices = new TreeSet<>();
Set<AddonId> containerChoices = new TreeSet<>();
for (AddonRepository repository : furnace.getRepositories())
{
for (AddonId id : repository.listEnabled())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*
*/
public class NewAnnotatedUICommandWizard extends AbstractProjectCommand
public class NewAnnotatedUICommandWizardImpl extends AbstractProjectCommand implements NewAnnotatedUICommandWizard
{
@Inject
private ProjectFactory projectFactory;
Expand All @@ -52,7 +52,7 @@ public class NewAnnotatedUICommandWizard extends AbstractProjectCommand
@Override
public UICommandMetadata getMetadata(UIContext context)
{
return Metadata.forCommand(NewAnnotatedUICommandWizard.class)
return Metadata.forCommand(NewAnnotatedUICommandWizardImpl.class)
.name("Addon: New Annotated UI Command").description("Generates an annotated UICommand implementation")
.category(Categories.create("Forge", "Generate"));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@

/**
* Creates a Furnace Test case
*
*
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
public class NewFurnaceTestCommand extends AbstractProjectCommand
public class NewFurnaceTestCommandImpl extends AbstractProjectCommand implements NewFurnaceTestCommand
{

@Inject
Expand Down Expand Up @@ -87,8 +87,8 @@ public void initializeUI(UIBuilder builder) throws Exception

private void configureAddonDependencies()
{
Set<AddonId> addonChoices = new TreeSet<AddonId>();
Set<AddonId> containerChoices = new TreeSet<AddonId>();
Set<AddonId> addonChoices = new TreeSet<>();
Set<AddonId> containerChoices = new TreeSet<>();
for (AddonRepository repository : furnace.getRepositories())
{
for (AddonId id : repository.listEnabled())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
*
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
public class NewFurnaceTestSetupCommand extends AbstractProjectCommand
public class NewFurnaceTestSetupCommandImpl extends AbstractProjectCommand implements NewFurnaceTestSetupCommand
{

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
public class NewUICommandWizard extends AbstractJavaSourceCommand
public class NewUICommandWizardImpl extends AbstractJavaSourceCommand implements NewUICommandWizard
{
@Inject
@WithAttributes(label = "Command name", required = false)
Expand All @@ -52,7 +52,7 @@ public class NewUICommandWizard extends AbstractJavaSourceCommand
@Override
public UICommandMetadata getMetadata(UIContext context)
{
return Metadata.forCommand(NewUICommandWizard.class)
return Metadata.forCommand(NewUICommandWizardImpl.class)
.name("Addon: New UI Command").description("Generates a UICommand implementation")
.category(Categories.create("Forge", "Generate"));
}
Expand Down
5 changes: 0 additions & 5 deletions addons/tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,6 @@
<classifier>forge-addon</classifier>
</dependency>

<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>addons-impl</artifactId>
</dependency>

<dependency>
<groupId>org.jboss.forge.furnace.test</groupId>
<artifactId>furnace-test-harness</artifactId>
Expand Down
Loading

0 comments on commit b2ddad8

Please sign in to comment.