From 83e2d7c848e653669c8b7da51a1b5133f818b25c Mon Sep 17 00:00:00 2001 From: Kavoos Bojnourdi Date: Thu, 13 Aug 2015 21:17:40 +0200 Subject: [PATCH] - AttributeDAO - Fixed SQL - Work on tests --- .../GDE-ejb/nbproject/project.properties | 2 +- .../java/com/edf/gde/dao/AttributeDao.java | 35 ++++------- .../{MetadataEJB.java => AttributesEJB.java} | 2 +- .../java/com/edf/gde/entities/Attribute.java | 60 +++++++++++-------- .../com/edf/gde/entities/AttributeGroup.java | 7 ++- .../GDE-war/nbproject/project.properties | 2 +- .../edf/gde/services/AttributesService.java | 4 +- .../com/edf/gde/dao/AttributeDaoClient.java | 1 + .../edf/gde/test/dao/AttributeDaoTest.java | 50 +++++++++++++--- projects/GDE_App/nbproject/project.properties | 2 +- projects/GDE_App/src/GDE_DB_Init.sql | 17 +++--- 11 files changed, 109 insertions(+), 73 deletions(-) rename projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/{MetadataEJB.java => AttributesEJB.java} (98%) diff --git a/projects/GDE_App/GDE-ejb/nbproject/project.properties b/projects/GDE_App/GDE-ejb/nbproject/project.properties index 8a9dc37..41ec3c9 100644 --- a/projects/GDE_App/GDE-ejb/nbproject/project.properties +++ b/projects/GDE_App/GDE-ejb/nbproject/project.properties @@ -26,7 +26,7 @@ includes=** j2ee.compile.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/AttributeDao.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/AttributeDao.java index 200fae1..07f0b92 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/AttributeDao.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/dao/AttributeDao.java @@ -7,11 +7,8 @@ import com.edf.gde.entities.Attribute; import com.edf.gde.entities.AttributeGroup; import com.edf.gde.transferables.AttributeGroupTO; import com.edf.gde.transferables.AttributeTO; -import java.util.ArrayList; import java.util.Collection; -import java.util.List; import javax.persistence.EntityManager; -import javax.persistence.Query; /** * @@ -26,16 +23,19 @@ public class AttributeDao { } public AttributeTO createAttribute(AttributeTO ato) { - Attribute a = Attribute.fromAttributeTO(ato); + Attribute a = Attribute.fromAttributeTO(em,ato); em.persist(a); em.flush(); - if (a.getAttributeGroupId() != 0) { - Query q = em.createNativeQuery("INSERT INTO attribute_group_attribute (attributegroup_id,attribute_id) values (?,?)"); - q.setParameter(1, a.getAttributeGroupId()); + /* + if (a.getAttributeGroup()!= null) { + Query q = em.createNativeQuery("INSERT INTO attribute_group_attribute (attributeCollection_id,attribute_id) values (?,?)"); + q.setParameter(1, a.getAttributeGroup().getId()); q.setParameter(2, a.getId()); q.executeUpdate(); } + */ return a.toAttributeTO(); + } public void deleteAttribute(long attributeId) { @@ -44,7 +44,7 @@ public class AttributeDao { } public AttributeTO updateAttribute(AttributeTO ato) { - Attribute a = Attribute.fromAttributeTO(ato); + Attribute a = Attribute.fromAttributeTO(em,ato); Attribute up = em.merge(a); return up.toAttributeTO(); } @@ -83,22 +83,9 @@ public class AttributeDao { * @return */ public AttributeGroupTO createAttributeGroup(AttributeGroupTO agto) { - AttributeGroup group = AttributeGroup.fromAttributeGroupTO(agto); - AttributeGroupTO ret = new AttributeGroupTO(); + AttributeGroup group = AttributeGroup.fromAttributeGroupTO(em,agto); em.persist(group); - ret.setId(group.getId()); - - Collection l = agto.getAttributeCollection(); - List newAttributes = new ArrayList<>(); - - if (l != null) { - for (AttributeTO attributeTO : l) { - AttributeTO ato = createAttribute(attributeTO); - newAttributes.add(ato); - } - } - ret.setAttributeCollection(newAttributes); - return ret; + return group.toAttributeGroupTO(); } public void deleteAttributeGroup(long id) { @@ -109,7 +96,7 @@ public class AttributeDao { } public AttributeGroupTO updateAttributeGroup(AttributeGroupTO agto) { - AttributeGroup group = AttributeGroup.fromAttributeGroupTO(agto); + AttributeGroup group = AttributeGroup.fromAttributeGroupTO(em,agto); AttributeGroup up = em.merge(group); Collection attributeCollection = agto.getAttributeCollection(); diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/MetadataEJB.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/AttributesEJB.java similarity index 98% rename from projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/MetadataEJB.java rename to projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/AttributesEJB.java index 3fad94b..181396b 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/MetadataEJB.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/ejb/AttributesEJB.java @@ -17,7 +17,7 @@ import javax.persistence.PersistenceContext; */ @Stateless @LocalBean -public class MetadataEJB { +public class AttributesEJB { @PersistenceContext(unitName = "GDE-ejbPU") private EntityManager em; diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Attribute.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Attribute.java index 279fb31..8b3f599 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Attribute.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/Attribute.java @@ -7,13 +7,15 @@ import com.edf.gde.transferables.AttributeTO; import java.io.Serializable; import java.util.Objects; import javax.persistence.Basic; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.EntityManager; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; -import javax.persistence.NamedNativeQueries; -import javax.persistence.NamedNativeQuery; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.SequenceGenerator; @@ -35,9 +37,10 @@ import javax.xml.bind.annotation.XmlRootElement; @NamedQuery(name = "Attribute.findByName", query = "SELECT a FROM Attribute a WHERE a.name = :name"), @NamedQuery(name = "Attribute.findByType", query = "SELECT a FROM Attribute a WHERE a.type = :type"), @NamedQuery(name = "Attribute.findByValue", query = "SELECT a FROM Attribute a WHERE a.value = :value"), - @NamedQuery(name = "Attribute.findByGroupId", query = "SELECT a FROM Attribute a WHERE a.attributeGroupId = :attributeGroupId") + @NamedQuery(name = "Attribute.findByGroupId", query = "SELECT a FROM Attribute a WHERE a.attributeGroup.id=:attributeGroupId") }) public class Attribute implements Serializable { + private static final long serialVersionUID = 1L; @Id @Basic(optional = false) @@ -57,12 +60,25 @@ public class Attribute implements Serializable { private String value; @Column(name = "mandatory") private Boolean mandatory; - @Column(name = "attribute_group_id") - private long attributeGroupId; - + /* + @Column(name = "attribute_group_id") + private long attributeGroupId; + */ + @ManyToOne(optional = true) + @JoinColumn(name = "attribute_group_id", referencedColumnName = "id") + private AttributeGroup attributeGroup; + public Attribute() { } + public AttributeGroup getAttributeGroup() { + return attributeGroup; + } + + public void setAttributeGroup(AttributeGroup attributeGroup) { + this.attributeGroup = attributeGroup; + } + public Attribute(long id) { this.id = id; } @@ -107,25 +123,19 @@ public class Attribute implements Serializable { this.mandatory = mandatory; } - public long getAttributeGroupId() { - return attributeGroupId; - } - - public void setAttributeGroupId(long groupId) { - this.attributeGroupId = groupId; - } - - public static Attribute fromAttributeTO(AttributeTO ato) { + public static Attribute fromAttributeTO(EntityManager em, AttributeTO ato) { Attribute attribute = new Attribute(); attribute.id = ato.getId(); attribute.name = ato.getName(); attribute.type = ato.getType(); attribute.value = ato.getValue(); attribute.mandatory = ato.getMandatory(); - attribute.attributeGroupId = ato.getGroupId(); + if (ato.getGroupId() != 0) { + attribute.attributeGroup = em.find(AttributeGroup.class, ato.getGroupId()); + } return attribute; } - + public AttributeTO toAttributeTO() { AttributeTO ato = new AttributeTO(); ato.setId(this.id); @@ -133,10 +143,10 @@ public class Attribute implements Serializable { ato.setType(this.type); ato.setValue(this.value); ato.setMandatory(this.mandatory); - ato.setGroupId(this.attributeGroupId); + ato.setGroupId(attributeGroup == null ? 0 : attributeGroup.getId()); return ato; } - + @Override public String toString() { return "com.edf.gde.entities.Attribute[ id=" + id + " ]"; @@ -145,12 +155,12 @@ public class Attribute implements Serializable { @Override public int hashCode() { int hash = 3; - hash = 67 * hash + (int) (this.id ^ (this.id >>> 32)); - hash = 67 * hash + Objects.hashCode(this.name); - hash = 67 * hash + Objects.hashCode(this.type); - hash = 67 * hash + Objects.hashCode(this.value); - hash = 67 * hash + Objects.hashCode(this.mandatory); - hash = 67 * hash + (int) (this.attributeGroupId ^ (this.attributeGroupId >>> 32)); + hash = 89 * hash + (int) (this.id ^ (this.id >>> 32)); + hash = 89 * hash + Objects.hashCode(this.name); + hash = 89 * hash + Objects.hashCode(this.type); + hash = 89 * hash + Objects.hashCode(this.value); + hash = 89 * hash + Objects.hashCode(this.mandatory); + hash = 89 * hash + Objects.hashCode(this.attributeGroup); return hash; } diff --git a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/AttributeGroup.java b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/AttributeGroup.java index 5fe68e6..c62b657 100644 --- a/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/AttributeGroup.java +++ b/projects/GDE_App/GDE-ejb/src/java/com/edf/gde/entities/AttributeGroup.java @@ -13,6 +13,7 @@ import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.EntityManager; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -48,7 +49,7 @@ public class AttributeGroup implements Serializable { @Column(name = "id") private long id; - @OneToMany (fetch = FetchType.EAGER, orphanRemoval = true, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.REFRESH}) + @OneToMany (fetch = FetchType.EAGER, orphanRemoval = true, cascade = {CascadeType.ALL}) private Collection attributeCollection; public AttributeGroup() { @@ -75,14 +76,14 @@ public class AttributeGroup implements Serializable { this.attributeCollection = attributeCollection; } - public static AttributeGroup fromAttributeGroupTO(AttributeGroupTO agto) { + public static AttributeGroup fromAttributeGroupTO(EntityManager em, AttributeGroupTO agto) { AttributeGroup group = new AttributeGroup(); group.id = agto.getId(); Collection attributes = agto.getAttributeCollection(); if (attributes != null) { group.attributeCollection = new ArrayList<>(); for (AttributeTO ato : attributes) { - group.attributeCollection.add(Attribute.fromAttributeTO(ato)); + group.attributeCollection.add(Attribute.fromAttributeTO(em,ato)); } } return group; diff --git a/projects/GDE_App/GDE-war/nbproject/project.properties b/projects/GDE_App/GDE-war/nbproject/project.properties index 71d35c5..3a43454 100644 --- a/projects/GDE_App/GDE-war/nbproject/project.properties +++ b/projects/GDE_App/GDE-war/nbproject/project.properties @@ -34,7 +34,7 @@ j2ee.compile.on.save=true j2ee.copy.static.files.on.save=true j2ee.deploy.on.save=true j2ee.platform=1.7-web -j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/AttributesService.java b/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/AttributesService.java index cd10869..05d47a8 100644 --- a/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/AttributesService.java +++ b/projects/GDE_App/GDE-war/src/java/com/edf/gde/services/AttributesService.java @@ -3,7 +3,7 @@ */ package com.edf.gde.services; -import com.edf.gde.ejb.MetadataEJB; +import com.edf.gde.ejb.AttributesEJB; import com.edf.gde.ejb.PermissionsManagerEJB; import com.edf.gde.ejb.UserEJB; import com.edf.gde.tools.Credentials; @@ -36,7 +36,7 @@ public class AttributesService extends BaseService { @EJB private PermissionsManagerEJB pm; @EJB - private MetadataEJB mjb; + private AttributesEJB mjb; @Override public void processRequest(HttpServletRequest request, HttpServletResponse response) { diff --git a/projects/GDE_App/GDE-war/test/com/edf/gde/dao/AttributeDaoClient.java b/projects/GDE_App/GDE-war/test/com/edf/gde/dao/AttributeDaoClient.java index 2ae2449..6f94e03 100644 --- a/projects/GDE_App/GDE-war/test/com/edf/gde/dao/AttributeDaoClient.java +++ b/projects/GDE_App/GDE-war/test/com/edf/gde/dao/AttributeDaoClient.java @@ -72,6 +72,7 @@ public class AttributeDaoClient extends BaseDao { public AttributeGroupTO readAttributeGroup(long id) throws IOException { CommandTO commandTO = createCommand(READATTRIBUTEGROUP); + commandTO.setLong("attributeGroupId", id); return postCommand(commandTO, null, AttributeGroupTO.class); } diff --git a/projects/GDE_App/GDE-war/test/com/edf/gde/test/dao/AttributeDaoTest.java b/projects/GDE_App/GDE-war/test/com/edf/gde/test/dao/AttributeDaoTest.java index 30f44a1..f2e163d 100644 --- a/projects/GDE_App/GDE-war/test/com/edf/gde/test/dao/AttributeDaoTest.java +++ b/projects/GDE_App/GDE-war/test/com/edf/gde/test/dao/AttributeDaoTest.java @@ -7,6 +7,8 @@ import com.edf.gde.dao.AttributeDaoClient; import com.edf.gde.test.base.BaseTest; import com.edf.gde.transferables.AttributeGroupTO; import com.edf.gde.transferables.AttributeTO; +import java.util.ArrayList; +import java.util.List; import org.junit.After; import org.junit.AfterClass; import static org.junit.Assert.assertEquals; @@ -89,17 +91,49 @@ public class AttributeDaoTest extends BaseTest { testName("createAttributeGroup"); /* Create an instance of AttributeGroup*/ AttributeGroupTO attributeGroup = new AttributeGroupTO(); + AttributeTO ato = new AttributeTO(); + ato.setName("Test"); + ato.setType("string"); + ato.setValue("test"); + ato.setMandatory(false); + List l = new ArrayList<>(); + l.add(ato); + attributeGroup.setAttributeCollection(l); + AttributeGroupTO resultAttributeGroup = daoClient.createAttributeGroup(attributeGroup); + assertNotNull(resultAttributeGroup); assertTrue(resultAttributeGroup.getId() > 0); passed(); } - /* - try { - daoClient.deleteAttributeGroup(resultAttributeGroup.getId()); - } catch (Exception e) { - Assert.fail("Error deleting attribute group"); - } - - */ + + @Test + public void deleteAttributeGroup() throws Exception { + AttributeDaoClient daoClient = new AttributeDaoClient(); + testName("deleteAttributeGroup"); + /* Create an instance of AttributeGroup*/ + AttributeGroupTO attributeGroup = new AttributeGroupTO(); + AttributeGroupTO resultAttributeGroup = daoClient.createAttributeGroup(attributeGroup); + assertNotNull(resultAttributeGroup); + assertTrue(resultAttributeGroup.getId() > 0); + /* Delete it */ + daoClient.deleteAttributeGroup(resultAttributeGroup.getId()); + passed(); + } + + @Test + public void testReadAttributeGroup() throws Exception { + AttributeDaoClient daoClient = new AttributeDaoClient(); + testName("readAttributeGroup"); + /* Create an instance of AttributeGroup*/ + AttributeGroupTO attributeGroup = new AttributeGroupTO(); + AttributeGroupTO resultAttributeGroup = daoClient.createAttributeGroup(attributeGroup); + assertNotNull(resultAttributeGroup); + assertTrue(resultAttributeGroup.getId() > 0); + /* Read it */ + AttributeGroupTO newAttributeGroupTO = daoClient.readAttributeGroup(resultAttributeGroup.getId()); + assertNotNull(newAttributeGroupTO); + assertTrue(newAttributeGroupTO.getId()>0); + passed(); + } } diff --git a/projects/GDE_App/nbproject/project.properties b/projects/GDE_App/nbproject/project.properties index cd4eff4..8118174 100644 --- a/projects/GDE_App/nbproject/project.properties +++ b/projects/GDE_App/nbproject/project.properties @@ -13,7 +13,7 @@ j2ee.appclient.mainclass.args=${j2ee.appclient.tool.args} j2ee.compile.on.save=true j2ee.deploy.on.save=false j2ee.platform=1.7 -j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar diff --git a/projects/GDE_App/src/GDE_DB_Init.sql b/projects/GDE_App/src/GDE_DB_Init.sql index 10ecb16..fee15ea 100644 --- a/projects/GDE_App/src/GDE_DB_Init.sql +++ b/projects/GDE_App/src/GDE_DB_Init.sql @@ -26,6 +26,16 @@ CREATE TABLE USERGROUP ( ); create index usergroup_groupId_idx ON USERGROUP(groupId); +DROP TABLE IF EXISTS attribute_group_attribute CASCADE; +CREATE TABLE attribute_group_attribute +( + attributegroup_id bigint NOT NULL REFERENCES attribute (id) ON UPDATE NO ACTION ON DELETE NO ACTION, + attributecollection_id bigint NOT NULL REFERENCES attribute_group (id)ON UPDATE NO ACTION ON DELETE NO ACTION +); +create index attribute_group_attribute_idx1 on attribute_group_attribute(attributegroup_id); +create index attribute_group_attribute_idx2 on attribute_group_attribute(attributecollection_id); + + DROP TABLE IF EXISTS GROUPPERMISSIONS CASCADE; CREATE TABLE GROUPPERMISSIONS ( id bigint NOT NULL PRIMARY KEY, @@ -51,13 +61,6 @@ CREATE TABLE attribute ( mandatory boolean ); -DROP TABLE IF EXISTS attribute_group_attribute CASCADE; -CREATE TABLE attribute_group_attribute ( - attributegroup_id bigint REFERENCES attribute_group (id) on delete cascade, - attribute_id bigint REFERENCES attribute(id) on delete cascade -); -CREATE INDEX attribute_group_attribute_idx1 on attribute_group_attribute(attributegroup_id); -CREATE INDEX attribute_group_attribute_idx2 on attribute_group_attribute(attribute_id); /* DATA */ -- 2.39.2