diff --git a/graph/api/src/main/java/org/jboss/windup/graph/model/resource/FileModel.java b/graph/api/src/main/java/org/jboss/windup/graph/model/resource/FileModel.java index 01b7500e40..67afa6d406 100644 --- a/graph/api/src/main/java/org/jboss/windup/graph/model/resource/FileModel.java +++ b/graph/api/src/main/java/org/jboss/windup/graph/model/resource/FileModel.java @@ -41,16 +41,14 @@ public interface FileModel extends ResourceModel String PARSE_ERROR = "parseError"; String ON_PARSE_ERROR = "onParseError"; - public static enum OnParseError { + enum OnParseError { IGNORE, WARN; OnParseError fromName(String name){ return EnumUtils.getEnum(OnParseError.class, StringUtils.upperCase(name)); - //return OnParseError.valueOf(StringUtils.upperCase(name)); } } - /** * Contains the File Name (the last component of the path). Eg, a file /tmp/foo/bar/file.txt would have fileName set to "file.txt" */ diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateConfigurationFileModel.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateConfigurationFileModel.java index 54b2e4dfc5..e444d9969f 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateConfigurationFileModel.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateConfigurationFileModel.java @@ -16,19 +16,19 @@ public interface HibernateConfigurationFileModel extends XmlFileModel { - public static final String HIBERNATE_SESSION_FACTORY = "hibernateSessionFactory"; - public static final String SPECIFICATION_VERSION = "specificationVersion"; - public static final String TYPE = "HibernateConfigurationFileModel"; + String HIBERNATE_SESSION_FACTORY = "hibernateSessionFactory"; + String SPECIFICATION_VERSION = "specificationVersion"; + String TYPE = "HibernateConfigurationFileModel"; @Property(SPECIFICATION_VERSION) - public String getSpecificationVersion(); + String getSpecificationVersion(); @Property(SPECIFICATION_VERSION) - public void setSpecificationVersion(String version); + void setSpecificationVersion(String version); @Adjacency(label = HIBERNATE_SESSION_FACTORY, direction = Direction.OUT) - public Iterable getHibernateSessionFactories(); + Iterable getHibernateSessionFactories(); @Adjacency(label = HIBERNATE_SESSION_FACTORY, direction = Direction.OUT) - public void addHibernateSessionFactory(HibernateSessionFactoryModel hibernateSessionFactor); + void addHibernateSessionFactory(HibernateSessionFactoryModel hibernateSessionFactor); } diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateEntityModel.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateEntityModel.java index 2c5bab291c..043e73cba3 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateEntityModel.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/HibernateEntityModel.java @@ -1,5 +1,6 @@ package org.jboss.windup.rules.apps.javaee.model; +import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.WindupVertexFrame; import org.jboss.windup.rules.apps.java.model.JavaClassModel; @@ -17,70 +18,83 @@ @TypeValue(HibernateEntityModel.TYPE) public interface HibernateEntityModel extends WindupVertexFrame { - public static final String CATALOG_NAME = "catalogName"; - public static final String SCHEMA_NAME = "schemaName"; - public static final String TABLE_NAME = "tableName"; - public static final String SPECIFICATION_VERSION = "specificationVersion"; - public static final String HIBERNATE_ENTITY_CLASS = "hibernateEntityClass"; - public static final String TYPE = "HibernateEntityModel"; + String CATALOG_NAME = "catalogName"; + String SCHEMA_NAME = "schemaName"; + String TABLE_NAME = "tableName"; + String SPECIFICATION_VERSION = "specificationVersion"; + String HIBERNATE_ENTITY_CLASS = "hibernateEntityClass"; + String TYPE = "HibernateEntityModel"; + String APPLICATION = "application"; + + /** + * Contains the application in which this Spring Bean was discovered. + */ + @Adjacency(label = APPLICATION, direction = Direction.OUT) + ProjectModel getApplication(); + + /** + * Contains the application in which this Spring Bean was discovered. + */ + @Adjacency(label = APPLICATION, direction = Direction.OUT) + void setApplication(ProjectModel projectModel); /** * Contains the specification version */ @Property(SPECIFICATION_VERSION) - public String getSpecificationVersion(); + String getSpecificationVersion(); /** * Contains the specification version */ @Property(SPECIFICATION_VERSION) - public void setSpecificationVersion(String version); + void setSpecificationVersion(String version); /** * Contains the table name */ @Property(TABLE_NAME) - public String getTableName(); + String getTableName(); /** * Contains the table name */ @Property(TABLE_NAME) - public void setTableName(String tableName); + void setTableName(String tableName); /** * Contains the schema name */ @Property(SCHEMA_NAME) - public String getSchemaName(); + String getSchemaName(); /** * Contains the schema name */ @Property(SCHEMA_NAME) - public void setSchemaName(String schemaName); + void setSchemaName(String schemaName); /** * Contains the catalog name */ @Property(CATALOG_NAME) - public String getCatalogName(); + String getCatalogName(); /** * Contains the catalog name */ @Property(CATALOG_NAME) - public void setCatalogName(String catalogName); + void setCatalogName(String catalogName); /** * Contains the entity class */ @Adjacency(label = HIBERNATE_ENTITY_CLASS, direction = Direction.OUT) - public void setJavaClass(JavaClassModel ejbHome); + void setJavaClass(JavaClassModel entityClass); /** * Contains the entity class */ @Adjacency(label = HIBERNATE_ENTITY_CLASS, direction = Direction.OUT) - public JavaClassModel getJavaClass(); + JavaClassModel getJavaClass(); } diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/SpringBeanModel.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/SpringBeanModel.java index 9ecf4adbb5..87a022d4d6 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/SpringBeanModel.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/model/SpringBeanModel.java @@ -19,48 +19,48 @@ @TypeValue(SpringBeanModel.TYPE) public interface SpringBeanModel extends WindupVertexFrame { - public static final String TYPE = "SpringBeanModel"; - public static final String SPRING_BEAN_TO_JAVA_CLASS = "springBeanToJavaClass"; - public static final String SPRING_CONFIGURATION = "springConfiguration"; - public static final String SPRING_BEAN_NAME = "springBeanName"; - public static final String APPLICATION = "application"; + String TYPE = "SpringBeanModel"; + String SPRING_BEAN_TO_JAVA_CLASS = "springBeanToJavaClass"; + String SPRING_CONFIGURATION = "springConfiguration"; + String SPRING_BEAN_NAME = "springBeanName"; + String APPLICATION = "application"; /** * The name of this spring bean */ @Indexed @Property(SPRING_BEAN_NAME) - public String getSpringBeanName(); + String getSpringBeanName(); /** * The name of this spring bean */ @Property(SPRING_BEAN_NAME) - public String setSpringBeanName(String springBeanName); + String setSpringBeanName(String springBeanName); /** * The Spring configuration file in which this Spring Bean was defined. */ @Adjacency(label = SPRING_CONFIGURATION, direction = Direction.IN) - public SpringConfigurationFileModel getSpringConfiguration(); + SpringConfigurationFileModel getSpringConfiguration(); /** * The Spring configuration file in which this Spring Bean was defined. */ @Adjacency(label = SPRING_CONFIGURATION, direction = Direction.IN) - public void setSpringConfiguration(SpringConfigurationFileModel springConfiguration); + void setSpringConfiguration(SpringConfigurationFileModel springConfiguration); /** * This points to the @{link JavaClassModel} referenced by this Spring Bean */ @Adjacency(label = SPRING_BEAN_TO_JAVA_CLASS, direction = Direction.OUT) - public JavaClassModel getJavaClass(); + JavaClassModel getJavaClass(); /** * This points to the @{link JavaClassModel} referenced by this Spring Bean */ @Adjacency(label = SPRING_BEAN_TO_JAVA_CLASS, direction = Direction.OUT) - public void setJavaClass(JavaClassModel m); + void setJavaClass(JavaClassModel m); /** * Contains the application in which this Spring Bean was discovered. diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateHibernateReportRuleProvider.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateHibernateReportRuleProvider.java index fde464f9ea..8ae7942b96 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateHibernateReportRuleProvider.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateHibernateReportRuleProvider.java @@ -100,14 +100,16 @@ private void createHibernateReport(GraphContext context, ProjectModel projectMod HibernateEntityService hibernateEntityService = new HibernateEntityService(context); GraphService listService = new GraphService<>(context, WindupVertexListModel.class); - WindupVertexListModel hibernateConfigList = listService.create(); - for (HibernateConfigurationFileModel hibernateConfig : hibernateConfigurationFileService.findAll()) + @SuppressWarnings("unchecked") + WindupVertexListModel hibernateConfigList = listService.create(); + for (HibernateConfigurationFileModel hibernateConfig : hibernateConfigurationFileService.findAllByApplication(projectModel)) { hibernateConfigList.addItem(hibernateConfig); } - WindupVertexListModel entityList = listService.create(); - for (HibernateEntityModel entityModel : hibernateEntityService.findAll()) + @SuppressWarnings("unchecked") + WindupVertexListModel entityList = listService.create(); + for (HibernateEntityModel entityModel : hibernateEntityService.findAllByApplication(projectModel)) { entityList.addItem(entityModel); } diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateSpringBeanReportRuleProvider.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateSpringBeanReportRuleProvider.java index bf43db823e..5810cbfd13 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateSpringBeanReportRuleProvider.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/CreateSpringBeanReportRuleProvider.java @@ -88,8 +88,8 @@ public String toString() private void createSpringBeanReport(GraphContext context, ProjectModel projectModel) { SpringBeanService springBeanService = new SpringBeanService(context); - List models = springBeanService.findAllByApplication(projectModel); - if (models.isEmpty()) + Iterable models = springBeanService.findAllByApplication(projectModel); + if (!models.iterator().hasNext()) { return; } @@ -106,7 +106,9 @@ private void createSpringBeanReport(GraphContext context, ProjectModel projectMo applicationReportModel.setTemplateType(TemplateType.FREEMARKER); GraphService listService = new GraphService<>(context, WindupVertexListModel.class); - WindupVertexListModel springBeanList = listService.create(); + + @SuppressWarnings("unchecked") + WindupVertexListModel springBeanList = listService.create(); springBeanList.addAll(models); Map additionalData = new HashMap<>(2); diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/DiscoverHibernateMappingRuleProvider.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/DiscoverHibernateMappingRuleProvider.java index 827d618b78..bc4767993e 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/DiscoverHibernateMappingRuleProvider.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/rules/DiscoverHibernateMappingRuleProvider.java @@ -139,6 +139,7 @@ public void perform(GraphRewrite event, EvaluationContext context, DoctypeMetaMo // create the hibernate facet. HibernateEntityModel hibernateEntity = hibernateEntityService.create(); hibernateEntity.setSpecificationVersion(versionInformation); + hibernateEntity.setApplication(xml.getApplication()); hibernateEntity.setJavaClass(clz); hibernateEntity.setTableName(tableName); hibernateEntity.setSchemaName(schemaName); diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileService.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileService.java index ca10568e58..174c9c1e59 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileService.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileService.java @@ -1,6 +1,10 @@ package org.jboss.windup.rules.apps.javaee.service; +import java.util.ArrayList; +import java.util.List; + import org.jboss.windup.graph.GraphContext; +import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.rules.apps.javaee.model.HibernateConfigurationFileModel; @@ -16,4 +20,20 @@ public HibernateConfigurationFileService(GraphContext context) { super(context, HibernateConfigurationFileModel.class); } + + /** + * Gets an {@link Iterable} of {@link HibernateConfigurationFileModel}s for the given {@link ProjectModel}. + */ + public Iterable findAllByApplication(final ProjectModel application) + { + List results = new ArrayList<>(); + + for (HibernateConfigurationFileModel model : findAll()) + { + ProjectModel modelApp = model.getApplication(); + if (modelApp != null && modelApp.equals(application)) + results.add(model); + } + return results; + } } diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityService.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityService.java index 12df8cc87d..28967dd86c 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityService.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityService.java @@ -1,6 +1,12 @@ package org.jboss.windup.rules.apps.javaee.service; +import com.thinkaurelius.titan.core.attribute.Text; +import com.tinkerpop.blueprints.Vertex; +import com.tinkerpop.frames.structures.FramedVertexIterable; +import com.tinkerpop.gremlin.java.GremlinPipeline; import org.jboss.windup.graph.GraphContext; +import org.jboss.windup.graph.model.ProjectModel; +import org.jboss.windup.graph.model.WindupVertexFrame; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.rules.apps.javaee.model.HibernateEntityModel; @@ -16,4 +22,16 @@ public HibernateEntityService(GraphContext context) { super(context, HibernateEntityModel.class); } + + /** + * Gets an {@link Iterable} of {@link }s for the given {@link ProjectModel}. + */ + public Iterable findAllByApplication(ProjectModel application) + { + GremlinPipeline pipeline = new GremlinPipeline<>(application.asVertex()); + pipeline.in(HibernateEntityModel.APPLICATION); + pipeline.has(WindupVertexFrame.TYPE_PROP, Text.CONTAINS, HibernateEntityModel.TYPE); + + return new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline, HibernateEntityModel.class); + } } diff --git a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanService.java b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanService.java index d4606703cf..6bf4332772 100644 --- a/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanService.java +++ b/rules-java-ee/addon/src/main/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanService.java @@ -4,8 +4,14 @@ import java.util.Collections; import java.util.List; +import com.thinkaurelius.titan.core.attribute.Text; +import com.tinkerpop.blueprints.Vertex; +import com.tinkerpop.frames.structures.FramedVertexIterable; +import com.tinkerpop.gremlin.java.GremlinPipeline; +import org.jboss.forge.roaster._shade.org.eclipse.core.internal.resources.Project; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.graph.model.ProjectModel; +import org.jboss.windup.graph.model.WindupVertexFrame; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.rules.apps.javaee.model.SpringBeanModel; @@ -28,20 +34,16 @@ public Iterable findAllBySpringBeanName(String name) } /** + * Gets an {@link Iterable} of {@link SpringBeanModel}s for the given {@link ProjectModel}. * - * @param application - * @return an unmodifiable list of SpringBeanModel entries for the given application + * @return an iterable of SpringBeanModel entries for the given application */ - public List findAllByApplication(ProjectModel application) + public Iterable findAllByApplication(ProjectModel application) { - List models = new ArrayList<>(); - for (SpringBeanModel model : findAll()) - { - if (application.equals(model.getApplication())) - { - models.add(model); - } - } - return models.isEmpty() ? Collections. emptyList() : Collections.unmodifiableList(models); + GremlinPipeline pipeline = new GremlinPipeline<>(application.asVertex()); + pipeline.in(SpringBeanModel.APPLICATION); + pipeline.has(WindupVertexFrame.TYPE_PROP, Text.CONTAINS, SpringBeanModel.TYPE); + + return new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline, SpringBeanModel.class); } } diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/AbstractTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/AbstractTest.java new file mode 100644 index 0000000000..57df80c970 --- /dev/null +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/AbstractTest.java @@ -0,0 +1,20 @@ +package org.jboss.windup.rules.apps.javaee; + +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.forge.arquillian.AddonDependencies; +import org.jboss.forge.arquillian.AddonDependency; +import org.jboss.forge.arquillian.archive.AddonArchive; +import org.jboss.shrinkwrap.api.ShrinkWrap; + +/** + * @author Jesse Sightler + */ +public class AbstractTest +{ + @Deployment + @AddonDependencies + public static AddonArchive getDeployment() + { + return ShrinkWrap.create(AddonArchive.class).addClass(AbstractTest.class).addBeansXML(); + } +} diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/EjbRemoteServiceModelServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/EjbRemoteServiceModelServiceTest.java index 5e8a0bdcb4..c284159ea8 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/EjbRemoteServiceModelServiceTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/EjbRemoteServiceModelServiceTest.java @@ -18,6 +18,7 @@ import org.jboss.windup.graph.service.ProjectService; import org.jboss.windup.rules.apps.java.model.JavaClassModel; import org.jboss.windup.rules.apps.java.service.JavaClassService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.EjbRemoteServiceModel; import org.junit.After; import org.junit.Assert; @@ -33,22 +34,8 @@ * @author Jesse Sightler */ @RunWith(Arquillian.class) -public class EjbRemoteServiceModelServiceTest +public class EjbRemoteServiceModelServiceTest extends AbstractTest { - @Deployment - @AddonDependencies({ - @AddonDependency(name = "org.jboss.windup.graph:windup-graph"), - @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), - @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), - @AddonDependency(name = "org.jboss.forge.furnace.container:cdi"), - }) - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileServiceTest.java new file mode 100644 index 0000000000..0511880445 --- /dev/null +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateConfigurationFileServiceTest.java @@ -0,0 +1,55 @@ +package org.jboss.windup.rules.apps.javaee.service; + +import javax.inject.Inject; + +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.windup.graph.GraphContext; +import org.jboss.windup.graph.GraphContextFactory; +import org.jboss.windup.graph.model.ProjectModel; +import org.jboss.windup.graph.service.ProjectService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; +import org.jboss.windup.rules.apps.javaee.model.HibernateConfigurationFileModel; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.google.common.collect.Iterables; + +/** + * @author Jesse Sightler + */ +@RunWith(Arquillian.class) +public class HibernateConfigurationFileServiceTest extends AbstractTest +{ + @Inject + GraphContextFactory factory; + + @Test + public void testHibernateConfigurationFindByProject() throws Exception + { + try (GraphContext context = factory.create()) + { + ProjectService projectService = new ProjectService(context); + ProjectModel app1 = projectService.create(); + app1.setName("app1"); + + ProjectModel app2 = projectService.create(); + app2.setName("app2"); + + HibernateConfigurationFileService service = new HibernateConfigurationFileService(context); + HibernateConfigurationFileModel bean1 = service.create(); + bean1.setProjectModel(app1); + + HibernateConfigurationFileModel bean2 = service.create(); + bean2.setProjectModel(app2); + + service.create(); + + Assert.assertEquals(3, Iterables.size(service.findAll())); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app1))); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app2))); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app1), bean1)); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app2), bean2)); + } + } +} diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityServiceTest.java new file mode 100644 index 0000000000..9a5f75ae43 --- /dev/null +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/HibernateEntityServiceTest.java @@ -0,0 +1,54 @@ +package org.jboss.windup.rules.apps.javaee.service; + +import com.google.common.collect.Iterables; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.windup.graph.GraphContext; +import org.jboss.windup.graph.GraphContextFactory; +import org.jboss.windup.graph.model.ProjectModel; +import org.jboss.windup.graph.service.ProjectService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; +import org.jboss.windup.rules.apps.javaee.model.HibernateEntityModel; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import javax.inject.Inject; + +/** + * @author Jesse Sightler + */ +@RunWith(Arquillian.class) +public class HibernateEntityServiceTest extends AbstractTest +{ + @Inject + GraphContextFactory factory; + + @Test + public void testHibernateEntityFindByProject() throws Exception + { + try (GraphContext context = factory.create()) + { + ProjectService projectService = new ProjectService(context); + ProjectModel app1 = projectService.create(); + app1.setName("app1"); + + ProjectModel app2 = projectService.create(); + app2.setName("app2"); + + HibernateEntityService service = new HibernateEntityService(context); + HibernateEntityModel bean1 = service.create(); + bean1.setApplication(app1); + + HibernateEntityModel bean2 = service.create(); + bean2.setApplication(app2); + + service.create(); + + Assert.assertEquals(3, Iterables.size(service.findAll())); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app1))); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app2))); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app1), bean1)); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app2), bean2)); + } + } +} diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxRSWebServiceModelServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxRSWebServiceModelServiceTest.java index f05d33483d..e6f3507d5c 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxRSWebServiceModelServiceTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxRSWebServiceModelServiceTest.java @@ -18,6 +18,7 @@ import org.jboss.windup.graph.service.ProjectService; import org.jboss.windup.rules.apps.java.model.JavaClassModel; import org.jboss.windup.rules.apps.java.service.JavaClassService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.JaxRSWebServiceModel; import org.junit.After; import org.junit.Assert; @@ -33,21 +34,8 @@ * @author Jesse Sightler */ @RunWith(Arquillian.class) -public class JaxRSWebServiceModelServiceTest +public class JaxRSWebServiceModelServiceTest extends AbstractTest { - @Deployment - @AddonDependencies({ - @AddonDependency(name = "org.jboss.windup.graph:windup-graph"), - @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), - @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), - @AddonDependency(name = "org.jboss.forge.furnace.container:cdi"), - }) - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxWSWebServiceModelServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxWSWebServiceModelServiceTest.java index c29cfc11f4..ae671dde1f 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxWSWebServiceModelServiceTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/JaxWSWebServiceModelServiceTest.java @@ -18,6 +18,7 @@ import org.jboss.windup.graph.service.ProjectService; import org.jboss.windup.rules.apps.java.model.JavaClassModel; import org.jboss.windup.rules.apps.java.service.JavaClassService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.JaxWSWebServiceModel; import org.junit.After; import org.junit.Assert; @@ -33,22 +34,8 @@ * @author Jesse Sightler */ @RunWith(Arquillian.class) -public class JaxWSWebServiceModelServiceTest +public class JaxWSWebServiceModelServiceTest extends AbstractTest { - @Deployment - @AddonDependencies({ - @AddonDependency(name = "org.jboss.windup.graph:windup-graph"), - @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), - @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), - @AddonDependency(name = "org.jboss.forge.furnace.container:cdi"), - }) - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/RMIServiceModelServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/RMIServiceModelServiceTest.java index 2ac30851a4..2a2896d139 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/RMIServiceModelServiceTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/RMIServiceModelServiceTest.java @@ -18,6 +18,7 @@ import org.jboss.windup.graph.service.ProjectService; import org.jboss.windup.rules.apps.java.model.JavaClassModel; import org.jboss.windup.rules.apps.java.service.JavaClassService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.RMIServiceModel; import org.junit.After; import org.junit.Assert; @@ -33,22 +34,8 @@ * @author Jesse Sightler */ @RunWith(Arquillian.class) -public class RMIServiceModelServiceTest +public class RMIServiceModelServiceTest extends AbstractTest { - @Deployment - @AddonDependencies({ - @AddonDependency(name = "org.jboss.windup.graph:windup-graph"), - @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), - @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), - @AddonDependency(name = "org.jboss.forge.furnace.container:cdi"), - }) - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanServiceTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanServiceTest.java new file mode 100644 index 0000000000..b376d51df2 --- /dev/null +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/service/SpringBeanServiceTest.java @@ -0,0 +1,56 @@ +package org.jboss.windup.rules.apps.javaee.service; + +import javax.inject.Inject; + +import com.google.common.collect.Iterables; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.forge.roaster._shade.org.eclipse.core.internal.resources.Project; +import org.jboss.windup.graph.GraphContext; +import org.jboss.windup.graph.GraphContextFactory; +import org.jboss.windup.graph.model.ProjectModel; +import org.jboss.windup.graph.service.ProjectService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; +import org.jboss.windup.rules.apps.javaee.model.SpringBeanModel; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * @author Jesse Sightler + */ +@RunWith(Arquillian.class) +public class SpringBeanServiceTest extends AbstractTest +{ + + @Inject + GraphContextFactory factory; + + @Test + public void testSpringFindByProject() throws Exception + { + try (GraphContext context = factory.create()) + { + ProjectService projectService = new ProjectService(context); + ProjectModel app1 = projectService.create(); + app1.setName("app1"); + + ProjectModel app2 = projectService.create(); + app2.setName("app2"); + + SpringBeanService service = new SpringBeanService(context); + SpringBeanModel bean1 = service.create(); + bean1.setApplication(app1); + + SpringBeanModel bean2 = service.create(); + bean2.setApplication(app2); + + service.create(); + + Assert.assertEquals(3, Iterables.size(service.findAll())); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app1))); + Assert.assertEquals(1, Iterables.size(service.findAllByApplication(app2))); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app1), bean1)); + Assert.assertTrue(Iterables.contains(service.findAllByApplication(app2), bean2)); + } + } +} diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/DiscoverEjbConfigurationTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/DiscoverEjbConfigurationTest.java index e3da2aa9dd..d6954747ec 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/DiscoverEjbConfigurationTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/DiscoverEjbConfigurationTest.java @@ -21,28 +21,15 @@ import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.resource.FileModel; import org.jboss.windup.graph.service.GraphService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.EjbMessageDrivenModel; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(Arquillian.class) -public class DiscoverEjbConfigurationTest +public class DiscoverEjbConfigurationTest extends AbstractTest { - - @Deployment - @AddonDependencies({ - @AddonDependency(name = "org.jboss.windup.config:windup-config"), - @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), - @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), - @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), - @AddonDependency(name = "org.jboss.forge.furnace.container:cdi") - }) - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - @Inject private WindupProcessor processor; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/EjbXmlParsingTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/EjbXmlParsingTest.java index 1b2a43c109..c8d013956c 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/EjbXmlParsingTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/EjbXmlParsingTest.java @@ -26,6 +26,7 @@ import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.resource.FileModel; import org.jboss.windup.graph.service.GraphService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.EjbMessageDrivenModel; import org.jboss.windup.rules.apps.javaee.model.EjbSessionBeanModel; import org.jboss.windup.rules.apps.javaee.model.EnvironmentReferenceModel; @@ -40,16 +41,8 @@ * @author Matej Briskar */ @RunWith(Arquillian.class) -public class EjbXmlParsingTest +public class EjbXmlParsingTest extends AbstractTest { - - @AddonDependencies - @Deployment - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - private static final String WEBLOGIC_TEST_EJB_XMLS = "../../test-files/ejb/weblogic-ejb-test"; private static final String WEBSPHERE_TEST_EJB_XMLS = "../../test-files/ejb/websphere-ejb-test"; private static final String JBOSS_TEST_EJB_XMLS = "../../test-files/ejb/jboss-ejb-test"; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateJBossEjbDescriptorTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateJBossEjbDescriptorTest.java index f9ed631e7a..75fd70a878 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateJBossEjbDescriptorTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateJBossEjbDescriptorTest.java @@ -16,6 +16,7 @@ import org.jboss.windup.graph.model.WindupConfigurationModel; import org.jboss.windup.graph.model.resource.FileModel; import org.jboss.windup.graph.service.GraphService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.EjbDeploymentDescriptorModel; import org.jboss.windup.rules.apps.javaee.model.WebXmlModel; import org.jboss.windup.rules.apps.javaee.rules.jboss.GenerateJBossEjbDescriptorRuleProvider; @@ -33,17 +34,8 @@ * Tests the {@link GenerateJBossEjbDescriptorRuleProvider} */ @RunWith(Arquillian.class) -public class GenerateJBossEjbDescriptorTest +public class GenerateJBossEjbDescriptorTest extends AbstractTest { - @Deployment - @AddonDependencies - public static AddonArchive getDeployment() - { - final AddonArchive archive = ShrinkWrap.create(AddonArchive.class) - .addBeansXML(); - return archive; - } - @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateWebDescriptorTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateWebDescriptorTest.java index 85cf68297f..d293701051 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateWebDescriptorTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/GenerateWebDescriptorTest.java @@ -13,6 +13,7 @@ import org.jboss.windup.graph.model.WindupConfigurationModel; import org.jboss.windup.graph.model.resource.FileModel; import org.jboss.windup.graph.service.GraphService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.EjbDeploymentDescriptorModel; import org.jboss.windup.rules.apps.javaee.model.WebXmlModel; import org.jboss.windup.rules.apps.javaee.rules.jboss.GenerateJBossEjbDescriptorRuleProvider; @@ -30,17 +31,8 @@ * Tests the {@link GenerateJBossWebDescriptorRuleProvider} */ @RunWith(Arquillian.class) -public class GenerateWebDescriptorTest +public class GenerateWebDescriptorTest extends AbstractTest { - @Deployment - @AddonDependencies - public static AddonArchive getDeployment() - { - final AddonArchive archive = ShrinkWrap.create(AddonArchive.class) - .addBeansXML(); - return archive; - } - @Inject private GraphContextFactory factory; diff --git a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/SpringDataSourceExtractionTest.java b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/SpringDataSourceExtractionTest.java index 73931ce279..c28e357948 100644 --- a/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/SpringDataSourceExtractionTest.java +++ b/rules-java-ee/tests/src/test/java/org/jboss/windup/rules/apps/javaee/tests/SpringDataSourceExtractionTest.java @@ -23,6 +23,7 @@ import org.jboss.windup.graph.model.ProjectModel; import org.jboss.windup.graph.model.resource.FileModel; import org.jboss.windup.graph.service.GraphService; +import org.jboss.windup.rules.apps.javaee.AbstractTest; import org.jboss.windup.rules.apps.javaee.model.DataSourceModel; import org.junit.Assert; import org.junit.Test; @@ -33,16 +34,8 @@ * au */ @RunWith(Arquillian.class) -public class SpringDataSourceExtractionTest +public class SpringDataSourceExtractionTest extends AbstractTest { - - @AddonDependencies - @Deployment - public static AddonArchive getDeployment() - { - return ShrinkWrap.create(AddonArchive.class).addBeansXML(); - } - private static String SPRING_XMLS = "../../test-files/spring-hibernate-jndi-test"; @Inject