From 7f2316d61f45f1ef196e79d77a8f9ee2e3a630b0 Mon Sep 17 00:00:00 2001 From: Milen Dyankov Date: Sun, 15 Mar 2015 23:19:18 +0100 Subject: [PATCH] Workaround for "Jackson can't handle generic list" issue! --- .../main/java/com/forest/model/ProductList.java | 16 ++++++++++++++++ .../catalog-portlet/src/main/resources/view.jsp | 3 ++- .../catalog/AbstractBaseProductManager.java | 4 ++++ .../forest/usecase/catalog/ProductManager.java | 3 +++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 dukes-domain-model/src/main/java/com/forest/model/ProductList.java diff --git a/dukes-domain-model/src/main/java/com/forest/model/ProductList.java b/dukes-domain-model/src/main/java/com/forest/model/ProductList.java new file mode 100644 index 0000000..31cc477 --- /dev/null +++ b/dukes-domain-model/src/main/java/com/forest/model/ProductList.java @@ -0,0 +1,16 @@ +package com.forest.model; + +import java.util.LinkedList; +import java.util.List; + +public class ProductList extends LinkedList { + + + private static final long serialVersionUID = 5038778844017547797L; + + public static ProductList fromList (List list) { + ProductList result = new ProductList(); + result.addAll(list); + return result; + } +} diff --git a/portlet/catalog-portlet/src/main/resources/view.jsp b/portlet/catalog-portlet/src/main/resources/view.jsp index 5e75183..7777891 100644 --- a/portlet/catalog-portlet/src/main/resources/view.jsp +++ b/portlet/catalog-portlet/src/main/resources/view.jsp @@ -1,9 +1,10 @@ +<%@page import="com.forest.model.ProductList"%> <%@ include file="/init.jsp" %> <% ProductManager pm = (ProductManager)request.getAttribute("productManager"); - List products = pm.getAll(); + ProductList products = pm.getAsProductList(); %> diff --git a/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/AbstractBaseProductManager.java b/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/AbstractBaseProductManager.java index 294ba94..e6ff5cf 100644 --- a/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/AbstractBaseProductManager.java +++ b/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/AbstractBaseProductManager.java @@ -3,6 +3,7 @@ import java.util.List; import com.forest.model.Product; +import com.forest.model.ProductList; import com.forest.usecase.catalog.persistence.ProductPersistence; public abstract class AbstractBaseProductManager implements ProductManager { @@ -74,4 +75,7 @@ public List getAllInRange (int... range) { return getProductPersistence().findRange(range); } + public ProductList getAsProductList () { + return ProductList.fromList(getAll()); + } } diff --git a/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/ProductManager.java b/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/ProductManager.java index 4a22338..22a2514 100644 --- a/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/ProductManager.java +++ b/usecases/usecases-catalog/src/main/java/com/forest/usecase/catalog/ProductManager.java @@ -3,6 +3,7 @@ import java.util.List; import com.forest.model.Product; +import com.forest.model.ProductList; public interface ProductManager { @@ -22,5 +23,7 @@ public abstract List getProductsInCategory(int categoryId, public abstract List getAll(); public abstract List getAllInRange(int... range); + + public ProductList getAsProductList (); } \ No newline at end of file