diff --git a/dukes-shipment/pom.xml b/dukes-shipment/pom.xml
index 750fb3f..5e4228f 100644
--- a/dukes-shipment/pom.xml
+++ b/dukes-shipment/pom.xml
@@ -15,6 +15,11 @@
dukes-shipment
+
+ ${project.groupId}
+ usecases-identity
+ ${project.version}
+
${project.groupId}
jpa-persistence
@@ -25,5 +30,10 @@
dukes-resources
${project.version}
+
+ ${project.groupId}
+ events
+ ${project.version}
+
diff --git a/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java b/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java
index a660454..5262bab 100644
--- a/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java
+++ b/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java
@@ -7,38 +7,43 @@
*/
package com.forest.shipment.session;
-import com.forest.entity.CustomerEntity;
-import com.forest.entity.PersonEntity;
+import javax.annotation.PostConstruct;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+
+import com.forest.entity.CustomerEntity;
+import com.forest.model.Customer;
+import com.forest.persitence.jpa.PersonPersistenceJPA;
+import com.forest.usecase.identity.AbstractBasePersonManager;
+import com.forest.usecase.identity.persistence.PersonPersistence;
/**
*
* @author markito
*/
@Stateless
-public class UserBean extends AbstractFacade {
-
- @PersistenceContext(unitName="forestPU")
- private EntityManager em;
- @Override
- protected EntityManager getEntityManager() {
- return em;
- }
+public class UserBean extends AbstractBasePersonManager {
+
+ @PersistenceContext(unitName="forestPU")
+ private EntityManager entityManager;
- public PersonEntity getUserByEmail(String email) {
- Query createNamedQuery = getEntityManager().createNamedQuery("Person.findByEmail");
-
- createNamedQuery.setParameter("email", email);
-
- return (PersonEntity) createNamedQuery.getSingleResult();
- }
+ private PersonPersistenceJPA personPersistance = new PersonPersistenceJPA();
- public UserBean() {
- super(CustomerEntity.class);
+
+ @PostConstruct
+ public void init() {
+ personPersistance.setEntityManager(entityManager);
}
+ public Customer newCustomerInstance() {
+ return new CustomerEntity();
+ }
+
+ @Override
+ protected PersonPersistence getPersonPersistence() {
+ return personPersistance;
+ }
+
}
diff --git a/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java b/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java
index 239c88a..182d323 100644
--- a/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java
+++ b/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java
@@ -27,6 +27,7 @@
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import com.forest.events.OrderEvent;
import com.forest.model.CustomerOrder;
import com.forest.shipment.ejb.OrderBrowser;
@@ -69,47 +70,30 @@ public void setOrders(Map orders) {
this.orders = orders;
}
- public enum Status {
-
- PENDING_PAYMENT(2),
- READY_TO_SHIP(3),
- SHIPPED(4),
- CANCELLED_PAYMENT(5),
- CANCELLED_MANUAL(6);
- private int status;
-
- private Status(final int pStatus) {
- status = pStatus;
- }
-
- public int getStatus() {
- return status;
- }
- }
-
- public String getEndpoint() {
+ public String getEndpoint() {
return SERVICE_ENDPOINT;
}
- public List listByStatus(final Status status) {
- List entity = (List) client.target(SERVICE_ENDPOINT)
- .queryParam("status", String.valueOf(status.getStatus()))
+ public List listByStatus(final int status) {
+ List entity = (List) client.target(SERVICE_ENDPOINT)
+ .queryParam("status", String.valueOf(status))
.request(MEDIA_TYPE)
- .get(new GenericType>() {
+ .get(new GenericType>() {
});
+
return entity;
}
- public void updateOrderStatus(final String messageID, final Status status) {
+ public void updateOrderStatus(final String messageID, final String status) {
// consume message
CustomerOrder order = orderBrowser.processOrder(messageID);
// call order service to update db in Store
Response response = client.target(SERVICE_ENDPOINT)
- .path("/" + order.getId())
+ .path("/shipping/" + order.getId())
.request(MEDIA_TYPE)
- .put(Entity.text(String.valueOf(status.getStatus())));
+ .put(Entity.text(String.valueOf(status)));
logger.log(Level.FINEST, "PUT Status response: {0}", response.getStatus());
}
@@ -129,7 +113,7 @@ public List getPendingOrders() {
}
}
- public List getCompletedOrders() {
- return listByStatus(Status.SHIPPED);
+ public List getCompletedOrders() {
+ return listByStatus(4);
}
}
diff --git a/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java b/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java
index ad5d823..7a76c80 100644
--- a/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java
+++ b/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java
@@ -15,7 +15,6 @@
import javax.enterprise.context.SessionScoped;
import javax.enterprise.inject.Produces;
import javax.faces.context.FacesContext;
-import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -38,8 +37,6 @@ public class UserController implements Serializable {
private static final long serialVersionUID = -7440104826420270291L;
- @Inject
- ShippingBean adapter;
Person user;
@EJB
@@ -59,7 +56,7 @@ public String login() {
request.login(this.getUsername(), this.getPassword());
- this.user = ejbFacade.getUserByEmail(getUsername());
+ this.user = ejbFacade.getPersonByEmail(getUsername());
this.getAuthenticatedUser();
if (isAdmin(user)) {
diff --git a/dukes-shipment/src/main/webapp/admin/index.xhtml b/dukes-shipment/src/main/webapp/admin/index.xhtml
index bd5e418..ea84bc5 100644
--- a/dukes-shipment/src/main/webapp/admin/index.xhtml
+++ b/dukes-shipment/src/main/webapp/admin/index.xhtml
@@ -57,7 +57,7 @@
-
+
@@ -74,10 +74,10 @@
-
+
-
+
diff --git a/dukes-store/src/main/java/com/forest/ejb/OrderBean.java b/dukes-store/src/main/java/com/forest/ejb/OrderBean.java
index 9d56fdd..b5743cf 100644
--- a/dukes-store/src/main/java/com/forest/ejb/OrderBean.java
+++ b/dukes-store/src/main/java/com/forest/ejb/OrderBean.java
@@ -8,6 +8,7 @@
package com.forest.ejb;
import java.io.Serializable;
+import java.util.LinkedList;
import java.util.List;
import javax.annotation.PostConstruct;
@@ -25,6 +26,7 @@
import com.forest.entity.CustomerOrderEntity;
import com.forest.entity.OrderDetailEntity;
import com.forest.entity.OrderDetailPKEntity;
+import com.forest.events.OrderEvent;
import com.forest.model.CustomerOrder;
import com.forest.model.OrderDetail;
import com.forest.persitence.jpa.OrderPersistenceJPA;
@@ -117,8 +119,20 @@ protected ShippingProvider getShippingProvider() {
@GET
@Produces({ "application/xml", "application/json" })
- public List getOrderByStatus(@QueryParam("status") int status) {
- return super.getOrderByStatus(status);
+ public List getOrderEventsByStatus(@QueryParam("status") int status) {
+
+ List result = new LinkedList();
+ for (CustomerOrder customerOrder: super.getOrderByStatus(status)) {
+ OrderEvent orderEvent = new OrderEvent();
+ orderEvent.setAmount(customerOrder.getAmount());
+ orderEvent.setCustomerID(customerOrder.getCustomer().getId());
+ orderEvent.setDateCreated(customerOrder.getDateCreated());
+ orderEvent.setOrderID(customerOrder.getId());
+ orderEvent.setStatusID(customerOrder.getOrderStatus().getId());
+ result.add(orderEvent);
+ }
+
+ return result;
}
@PUT
diff --git a/events/src/main/java/com/forest/events/OrderEvent.java b/events/src/main/java/com/forest/events/OrderEvent.java
index 71b19d3..766fe35 100644
--- a/events/src/main/java/com/forest/events/OrderEvent.java
+++ b/events/src/main/java/com/forest/events/OrderEvent.java
@@ -26,7 +26,8 @@ public class OrderEvent implements Serializable {
private double amount;
private Date dateCreated;
private int customerID;
- private int orderID;
+ private String customerName;
+ private int orderID;
private int statusID;
public int getCustomerID() {
@@ -69,6 +70,14 @@ public void setAmount(double amount) {
this.amount = amount;
}
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
public String toString() {
return "[OrderEvent] " + getCustomerID();
}