Skip to content

Commit

Permalink
Modified the addon to depend only on APIs not IMPLs
Browse files Browse the repository at this point in the history
The addon now depends on the RestGenerationContext and JPAFieldOperations
classes that are present in javaee-api.

Removed the javaee-impl dependency from the project POM.
  • Loading branch information
VineetReynolds committed May 16, 2014
1 parent ec3dde3 commit c215a73
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 19 deletions.
6 changes: 0 additions & 6 deletions pom.xml
Expand Up @@ -45,12 +45,6 @@
<version>${version.forge.descriptors}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>javaee-impl</artifactId>
<version>${version.furnace}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge.addon</groupId>
<artifactId>javaee</artifactId>
Expand Down
Expand Up @@ -51,7 +51,7 @@
import org.jboss.forge.addon.javaee.jpa.JPAFacet;
import org.jboss.forge.addon.javaee.jpa.ui.setup.JPASetupWizard;
import org.jboss.forge.addon.javaee.rest.RestFacet;
import org.jboss.forge.addon.javaee.rest.ui.setup.RestSetupWizard;
import org.jboss.forge.addon.javaee.rest.ui.RestSetupWizard;
import org.jboss.forge.addon.javaee.servlet.ServletFacet;
import org.jboss.forge.addon.javaee.servlet.ServletFacet_3_0;
import org.jboss.forge.addon.javaee.servlet.ServletFacet_3_1;
Expand Down
Expand Up @@ -16,9 +16,9 @@

import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.javaee.jpa.JPAFacet;
import org.jboss.forge.addon.javaee.rest.generation.RestGenerationConstants;
import org.jboss.forge.addon.javaee.rest.generation.RestGenerationContext;
import org.jboss.forge.addon.javaee.rest.generation.RestResourceGenerator;
import org.jboss.forge.addon.javaee.rest.generator.RestGenerationContextImpl;
import org.jboss.forge.addon.javaee.rest.generator.impl.EntityBasedResourceGenerator;
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.parser.java.resources.JavaResource;
import org.jboss.forge.addon.projects.Project;
Expand All @@ -42,6 +42,7 @@
import org.jboss.forge.addon.ui.result.Results;
import org.jboss.forge.addon.ui.util.Metadata;
import org.jboss.forge.addon.ui.wizard.UIWizardStep;
import org.jboss.forge.furnace.services.Imported;
import org.jboss.forge.roaster.model.source.JavaClassSource;
import org.jboss.shrinkwrap.descriptor.api.persistence.PersistenceCommonDescriptor;
import org.jboss.shrinkwrap.descriptor.api.persistence.PersistenceUnitCommon;
Expand All @@ -66,7 +67,7 @@ public class JSONRestResourceFromEntityCommand implements UIWizardStep
private UIInput<String> packageName;

@Inject
private EntityBasedResourceGenerator defaultResourceGenerator;
private Imported<RestResourceGenerator> resourceGenerators;

@Inject
private Inflector inflector;
Expand Down Expand Up @@ -111,6 +112,14 @@ public void initializeUI(UIBuilder builder) throws Exception
// TODO: May detect where @Path resources are located
packageName.setDefaultValue(javaSourceFacet.getBasePackage() + ".rest");

RestResourceGenerator defaultResourceGenerator = null;
for (RestResourceGenerator generator : resourceGenerators)
{
if (generator.getName().equals(RestGenerationConstants.JPA_ENTITY))
{
defaultResourceGenerator = generator;
}
}
generator.setDefaultValue(defaultResourceGenerator);
if (context.getProvider().isGUI())
{
Expand Down Expand Up @@ -154,7 +163,7 @@ public Result execute(final UIExecutionContext context) throws Exception
targets.add(javaClass);
}

RestGenerationContextImpl generationContext = createContextFor(uiContext);
RestGenerationContext generationContext = createContextFor(uiContext);
Set<JavaClassSource> endpoints = generateEndpoints(generationContext);
Project project = generationContext.getProject();
JavaSourceFacet javaSourceFacet = project.getFacet(JavaSourceFacet.class);
Expand All @@ -168,7 +177,7 @@ public Result execute(final UIExecutionContext context) throws Exception
return Results.success("Endpoint created");
}

private Set<JavaClassSource> generateEndpoints(RestGenerationContextImpl generationContext) throws Exception
private Set<JavaClassSource> generateEndpoints(RestGenerationContext generationContext) throws Exception
{
RestResourceGenerator selectedGenerator = generator.getValue();
Set<JavaClassSource> classes = new HashSet<>();
Expand All @@ -181,9 +190,9 @@ private Set<JavaClassSource> generateEndpoints(RestGenerationContextImpl generat
return classes;
}

private RestGenerationContextImpl createContextFor(final UIContext context)
private RestGenerationContext createContextFor(final UIContext context)
{
RestGenerationContextImpl generationContext = new RestGenerationContextImpl();
RestGenerationContext generationContext = new RestGenerationContext();
generationContext.setProject(getSelectedProject(context));
generationContext.setContentType(MediaType.APPLICATION_JSON);
generationContext.setPersistenceUnitName(persistenceUnit.getValue());
Expand Down
14 changes: 9 additions & 5 deletions src/test/java/org/jboss/forge/addon/angularjs/ProjectHelper.java
Expand Up @@ -32,6 +32,7 @@
import org.jboss.forge.addon.javaee.jpa.PersistenceOperations;
import org.jboss.forge.addon.javaee.servlet.ServletFacet_3_1;
import org.jboss.forge.addon.javaee.validation.ValidationFacet;
import org.jboss.forge.addon.parser.java.beans.FieldOperations;
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.parser.java.projects.JavaProjectType;
import org.jboss.forge.addon.parser.java.projects.JavaWebProjectType;
Expand Down Expand Up @@ -71,7 +72,10 @@ public class ProjectHelper
private PersistenceOperations persistenceOperations;

@Inject
private JPAFieldOperations fieldOperations;
private FieldOperations fieldOperations;

@Inject
private JPAFieldOperations jpaFieldOperations;

/**
* Creates a project installing the required facets from
Expand Down Expand Up @@ -198,31 +202,31 @@ public void createOneToOneField(Project project, JavaResource javaResource, Stri
String type, String inverseFieldName, FetchType fetchType, boolean required,
Iterable<CascadeType> cascadeTypes) throws FileNotFoundException
{
fieldOperations.newOneToOneRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
jpaFieldOperations.newOneToOneRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
required, cascadeTypes);
}

public void createManyToOneField(Project project, JavaResource javaResource, String fieldName,
String type, String inverseFieldName, FetchType fetchType, boolean required,
Iterable<CascadeType> cascadeTypes) throws FileNotFoundException
{
fieldOperations.newManyToOneRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
jpaFieldOperations.newManyToOneRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
required, cascadeTypes);
}

public void createOneToManyField(Project project, JavaResource javaResource, String fieldName,
String type, String inverseFieldName, FetchType fetchType,
Iterable<CascadeType> cascadeTypes) throws FileNotFoundException
{
fieldOperations.newOneToManyRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
jpaFieldOperations.newOneToManyRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
cascadeTypes);
}

public void createManyToManyField(Project project, JavaResource javaResource, String fieldName,
String type, String inverseFieldName, FetchType fetchType,
Iterable<CascadeType> cascadeTypes) throws FileNotFoundException
{
fieldOperations.newManyToManyRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
jpaFieldOperations.newManyToManyRelationship(project, javaResource, fieldName, type, inverseFieldName, fetchType,
cascadeTypes);
}

Expand Down

0 comments on commit c215a73

Please sign in to comment.