shopizer-uncached

Fixed product creation

1/4/2017 2:04:14 PM

Changes

sm-shop/.project 4(+4 -0)

Details

diff --git a/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
index 9ad7209..78c925c 100644
--- a/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
+++ b/shopizer-canadapost/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-canadapost-module/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Fri Dec 23 10:43:40 EST 2016
+#Wed Jan 04 10:51:03 EST 2017
 version=2.0.5-SNAPSHOT
 groupId=com.shopizer
 m2e.projectName=shopizer-canadapost
diff --git a/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
index d4b9819..bb91ea5 100644
--- a/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
+++ b/shopizer-shipping-distance-module/target/classes/META-INF/maven/com.shopizer/shopizer-shipping-distance-processor/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Fri Dec 23 10:43:41 EST 2016
+#Wed Jan 04 10:51:03 EST 2017
 version=2.0.5-SNAPSHOT
 groupId=com.shopizer
 m2e.projectName=shopizer-shipping-distance-processor
diff --git a/sm-core/files/repos/FilesRepository.dat b/sm-core/files/repos/FilesRepository.dat
new file mode 100644
index 0000000..b2476e0
Binary files /dev/null and b/sm-core/files/repos/FilesRepository.dat differ
diff --git a/sm-core/files/store/StoreRepository.dat b/sm-core/files/store/StoreRepository.dat
new file mode 100644
index 0000000..096d86e
Binary files /dev/null and b/sm-core/files/store/StoreRepository.dat differ
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductService.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductService.java
index ecac334..6eb78ea 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductService.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductService.java
@@ -33,9 +33,6 @@ public interface ProductService extends SalesManagerEntityService<Long, Product>
 	ProductList listByStore(MerchantStore store, Language language,
 			ProductCriteria criteria);
 
-
-	void saveOrUpdate(Product product) throws ServiceException;
-
 	List<Product> listByStore(MerchantStore store);
 
 	List<Product> listByTaxClass(TaxClass taxClass);
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductServiceImpl.java
index 102afa4..dbe66f5 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/catalog/product/ProductServiceImpl.java
@@ -35,7 +35,6 @@ import com.salesmanager.core.model.catalog.product.ProductCriteria;
 import com.salesmanager.core.model.catalog.product.ProductList;
 import com.salesmanager.core.model.catalog.product.description.ProductDescription;
 import com.salesmanager.core.model.catalog.product.image.ProductImage;
-import com.salesmanager.core.model.catalog.product.relationship.ProductRelationship;
 import com.salesmanager.core.model.catalog.product.review.ProductReview;
 import com.salesmanager.core.model.content.FileContentType;
 import com.salesmanager.core.model.content.ImageContentFile;
@@ -249,15 +248,20 @@ public class ProductServiceImpl extends SalesManagerEntityServiceImpl<Long, Prod
 		searchService.index(product.getMerchantStore(), product);
 	}
 	
+	@Override
+	public void update(Product product) throws ServiceException {
+		this.saveOrUpdate(product);
+		searchService.index(product.getMerchantStore(), product);
+	}
 	
-	
-	@Override	
-	public void saveOrUpdate(Product product) throws ServiceException {
+
+	private void saveOrUpdate(Product product) throws ServiceException {
 		LOGGER.debug("Save or update product ");
 		Validate.notNull(product,"product cannot be null");
 		Validate.notNull(product.getAvailabilities(),"product must have at least one availability");
 		Validate.notEmpty(product.getAvailabilities(),"product must have at least one availability");
 		
+		
 		//List of original images
 		Set<ProductImage> originalProductImages = null;
 		
@@ -265,6 +269,10 @@ public class ProductServiceImpl extends SalesManagerEntityServiceImpl<Long, Prod
 			originalProductImages = product.getImages();
 		}
 		
+		/** save product first **/
+		super.save(product);
+
+		
 		/**
 		 * Image creation needs extra service to save the file in the CMS
 		 */
@@ -306,11 +314,8 @@ public class ProductServiceImpl extends SalesManagerEntityServiceImpl<Long, Prod
 			LOGGER.error("Cannot save images " + e.getMessage());
 		}
 		
-		/** End image handling **/
-		
-		super.save(product);
-		
-		//searchService.index(product.getMerchantStore(), product);
+
+
 	}
 	
 	/*	@Override	
diff --git a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
index 9c075ab..3ff68ee 100644
--- a/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
+++ b/sm-core/src/main/java/com/salesmanager/core/business/services/common/generic/SalesManagerEntityServiceImpl.java
@@ -51,7 +51,7 @@ public abstract class SalesManagerEntityServiceImpl<K extends Serializable & Com
 
 	
 	
-	public final void update(E entity) throws ServiceException {
+	public void update(E entity) throws ServiceException {
 		save(entity);
 	}
 	
diff --git a/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java b/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java
index cf7727d..c2c178d 100644
--- a/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java
+++ b/sm-core/src/test/java/com/salesmanager/test/catalog/ProductTest.java
@@ -1,10 +1,32 @@
 package com.salesmanager.test.catalog;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+
 import com.salesmanager.core.business.exception.ServiceException;
 import com.salesmanager.core.model.catalog.category.Category;
 import com.salesmanager.core.model.catalog.category.CategoryDescription;
 import com.salesmanager.core.model.catalog.product.Product;
-import com.salesmanager.core.model.catalog.product.attribute.*;
+import com.salesmanager.core.model.catalog.product.attribute.ProductAttribute;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOption;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionDescription;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionType;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValue;
+import com.salesmanager.core.model.catalog.product.attribute.ProductOptionValueDescription;
 import com.salesmanager.core.model.catalog.product.availability.ProductAvailability;
 import com.salesmanager.core.model.catalog.product.description.ProductDescription;
 import com.salesmanager.core.model.catalog.product.file.ProductImageSize;
@@ -22,18 +44,9 @@ import com.salesmanager.core.model.content.ImageContentFile;
 import com.salesmanager.core.model.content.OutputContentFile;
 import com.salesmanager.core.model.merchant.MerchantStore;
 import com.salesmanager.core.model.reference.language.Language;
+
 import junit.framework.Assert;
-import org.apache.commons.io.IOUtils;
-import org.junit.Ignore;
-import org.junit.Test;
 
-import java.io.*;
-import java.math.BigDecimal;
-import java.sql.Date;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
 
 
 @Ignore
@@ -367,7 +380,7 @@ public class ProductTest extends com.salesmanager.test.common.AbstractSalesManag
 		
 		
 		updatableProduct.setDateAvailable(new java.util.Date());
-		productService.saveOrUpdate(updatableProduct);
+		productService.create(updatableProduct);
 		
 		//go and get products again
 		products = productService.listByStore(store);
@@ -501,7 +514,7 @@ public class ProductTest extends com.salesmanager.test.common.AbstractSalesManag
 	    
 	    product.getAttributes().add(attribute);
 	    
-	    productService.saveOrUpdate(product);
+	    productService.update(product);
 		
 		
 	}
@@ -540,7 +553,7 @@ public class ProductTest extends com.salesmanager.test.common.AbstractSalesManag
         
         product.getImages().add(productImage);
         
-        productService.saveOrUpdate(product);//saves the ProductImage entity and the file on disk
+        productService.update(product);//saves the ProductImage entity and the file on disk
 		
 		
 	}
diff --git a/sm-core/src/test/java/com/salesmanager/test/order/InvoiceTest.java b/sm-core/src/test/java/com/salesmanager/test/order/InvoiceTest.java
index afede1f..c8aeceb 100644
--- a/sm-core/src/test/java/com/salesmanager/test/order/InvoiceTest.java
+++ b/sm-core/src/test/java/com/salesmanager/test/order/InvoiceTest.java
@@ -186,7 +186,7 @@ public class InvoiceTest extends com.salesmanager.test.common.AbstractSalesManag
 
 	    product.getAttributes().add(colorAttribute);
 	    
-	    productService.saveOrUpdate(product);
+	    productService.create(product);
 	    
 
 	    //1.2 create a Customer
diff --git a/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java b/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java
index f7891a5..c411dec 100644
--- a/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java
+++ b/sm-core/src/test/java/com/salesmanager/test/order/OrderTest.java
@@ -264,7 +264,7 @@ public class OrderTest extends com.salesmanager.test.common.AbstractSalesManager
 	    
 	    product.getAttributes().add(blackAttribute);
 
-	    productService.saveOrUpdate(product);
+	    productService.create(product);
 
 			
 
diff --git a/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java b/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java
index 9b56d70..ae58fb8 100644
--- a/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java
+++ b/sm-core/src/test/java/com/salesmanager/test/shoppingcart/ShoppingCartTest.java
@@ -220,7 +220,7 @@ public class ShoppingCartTest extends com.salesmanager.test.common.AbstractSales
 	    
 	    product.getAttributes().add(blackAttribute);
 
-	    productService.saveOrUpdate(product);
+	    productService.create(product);
 	    
 	    /** Create Shopping cart **/
 	    
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValue.java b/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValue.java
index 4ad5084..9b6914e 100644
--- a/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValue.java
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/attribute/ProductOptionValue.java
@@ -58,6 +58,9 @@ public class ProductOptionValue extends SalesManagerEntity<Long, ProductOptionVa
 	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "productOptionValue")
 	private Set<ProductOptionValueDescription> descriptions = new HashSet<ProductOptionValueDescription>();
 	
+	//@Transient
+	//private MultipartFile image = null;
+	
 	@Transient
 	private List<ProductOptionValueDescription> descriptionsList = new ArrayList<ProductOptionValueDescription>();
 
diff --git a/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/Product.java b/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/Product.java
index 28f00e8..790d36d 100644
--- a/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/Product.java
+++ b/sm-core-model/src/main/java/com/salesmanager/core/model/catalog/product/Product.java
@@ -71,7 +71,7 @@ public class Product extends SalesManagerEntity<Long, Product> implements Audita
 	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "product", orphanRemoval = true)
 	private Set<ProductAttribute> attributes = new HashSet<ProductAttribute>();
 	
-	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "product")
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE, mappedBy = "product")//cascade is set to remove because product save requires logic to create physical image first and then save the image id in the database, cannot be done in cascade
 	private Set<ProductImage> images = new HashSet<ProductImage>();
 
 	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "product")
diff --git a/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
index 01673fe..6b5e6f2 100644
--- a/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
+++ b/sm-search/target/classes/META-INF/maven/com.shopizer/sm-search/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Fri Dec 23 10:43:45 EST 2016
+#Wed Jan 04 10:51:09 EST 2017
 version=2.0.5-SNAPSHOT
 groupId=com.shopizer
 m2e.projectName=sm-search

sm-shop/.project 4(+4 -0)

diff --git a/sm-shop/.project b/sm-shop/.project
index 3ace4e6..9b8d0a6 100644
--- a/sm-shop/.project
+++ b/sm-shop/.project
@@ -3,6 +3,10 @@
 	<name>sm-shop</name>
 	<comment></comment>
 	<projects>
+		<project>sm-core</project>
+		<project>sm-core-model</project>
+		<project>sm-core-modules</project>
+		<project>sm-search</project>
 	</projects>
 	<buildSpec>
 		<buildCommand>
diff --git a/sm-shop/files/store/StoreRepository.dat b/sm-shop/files/store/StoreRepository.dat
index 6258bac..c088a11 100644
Binary files a/sm-shop/files/store/StoreRepository.dat and b/sm-shop/files/store/StoreRepository.dat differ
diff --git a/sm-shop/SALESMANAGER.h2.db b/sm-shop/SALESMANAGER.h2.db
index babc5b9..25d3b50 100644
Binary files a/sm-shop/SALESMANAGER.h2.db and b/sm-shop/SALESMANAGER.h2.db differ
diff --git a/sm-shop/SALESMANAGER.lock.db b/sm-shop/SALESMANAGER.lock.db
index 4bca7e1..a1569e3 100644
--- a/sm-shop/SALESMANAGER.lock.db
+++ b/sm-shop/SALESMANAGER.lock.db
@@ -1,4 +1,4 @@
 #FileLock
-#Fri Dec 23 12:38:06 EST 2016
-id=1592cc2dbc0ba7143519bb7c59e78079a6b2e1b6e2d
+#Wed Jan 04 10:52:06 EST 2017
+id=1596a2e1ced7a811918ad04fbb6642dc6e72d83c747
 method=file
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
index 1a94559..eed7b78 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/OptionsValueController.java
@@ -175,8 +175,7 @@ public class OptionsValueController {
 		if(optionValue.getId() != null && optionValue.getId() >0) { //edit entry
 			
 			//get from DB
-			dbEntity = productOptionValueService.getByCode(store, optionValue.getId().toString());
-                    //productOptionValueService.getById(store,optionValue.getId());
+			dbEntity = productOptionValueService.getById(store,optionValue.getId());
 			
 			if(dbEntity==null) {
 				return "redirect:/admin/options/optionsvalues.html";
@@ -242,7 +241,7 @@ public class OptionsValueController {
 		}
 		
 
-		/*if(optionValue.getImage()!=null && !optionValue.getImage().isEmpty()) {
+/*		if(optionValue.getImage()!=null && !optionValue.getImage().isEmpty()) {
 
 			String imageName = optionValue.getImage().getOriginalFilename();
             InputStream inputStream = optionValue.getImage().getInputStream();
@@ -347,8 +346,7 @@ public class OptionsValueController {
 			
 			Long id = Long.parseLong(sid);
 			
-			//ProductOptionValue entity = productOptionValueService.getById(store, id);
-            ProductOptionValue entity = productOptionValueService.getByCode(store,id.toString());
+			ProductOptionValue entity = productOptionValueService.getById(store, id);
 
 			if(entity==null || entity.getMerchantStore().getId().intValue()!=store.getId().intValue()) {
 
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
index 8d5eccc..9e0d6c8 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductController.java
@@ -504,19 +504,19 @@ public class ProductController {
 			
 			newProduct.getImages().add(productImage);
 			
-			productService.saveOrUpdate(newProduct);
+			//productService.saveOrUpdate(newProduct);
 			
 			//product displayed
 			product.setProductImage(productImage);
 			
 			
-		} else {
+		} //else {
 			
-			productService.saveOrUpdate(newProduct);
+			//productService.saveOrUpdate(newProduct);
 			
-		}
+		//}
 		
-
+		productService.create(newProduct);
 		model.addAttribute("success","success");
 		
 		return "admin-products-edit";
@@ -706,7 +706,7 @@ public class ProductController {
 		newProduct.setProductVirtual(dbProduct.isProductVirtual());
 		newProduct.setProductShipeable(dbProduct.isProductShipeable());
 		
-		productService.saveOrUpdate(newProduct);
+		productService.update(newProduct);
 		
 		Set<Category> categories = dbProduct.getCategories();
 		for(Category category : categories) {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
index be55a35..eabe40f 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/admin/controller/products/ProductKeywordsController.java
@@ -129,7 +129,7 @@ public class ProductKeywordsController {
 		updatedDescriptions.add(productDescription);
 		product.setDescriptions(updatedDescriptions);
 		
-		productService.saveOrUpdate(product);
+		productService.update(product);
 		model.addAttribute("success","success");
 
 		
@@ -215,7 +215,7 @@ public class ProductKeywordsController {
 			}
 			
 			product.setDescriptions(editedDescriptions);
-			productService.saveOrUpdate(product);
+			productService.update(product);
 			resp.setStatus(AjaxResponse.RESPONSE_OPERATION_COMPLETED);
 		
 		} catch (Exception e) {
diff --git a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java
index 837a24e..8b81509 100644
--- a/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java
+++ b/sm-shop/src/main/java/com/salesmanager/shop/store/controller/product/facade/ProductFacadeImpl.java
@@ -76,7 +76,7 @@ public class ProductFacadeImpl implements ProductFacade {
 		
 		persistableProductPopulator.populate(product, target, store, language);
 		
-		productService.saveOrUpdate(target);
+		productService.create(target);
 		
 		product.setId(target.getId());
 		
@@ -156,7 +156,7 @@ public class ProductFacadeImpl implements ProductFacade {
 			
 		}
 		
-		productService.saveOrUpdate(persistable);
+		productService.update(persistable);
 		
 		ReadableProduct readableProduct = new ReadableProduct();
 		
@@ -183,7 +183,7 @@ public class ProductFacadeImpl implements ProductFacade {
 			availability.setProductQuantity(quantity);
 		}
 		
-		productService.saveOrUpdate(persistable);
+		productService.update(persistable);
 		
 		ReadableProduct readableProduct = new ReadableProduct();
 		
diff --git a/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp b/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
index 23d089d..72aafba 100644
--- a/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
+++ b/sm-shop/src/main/webapp/WEB-INF/views/admin/logon.jsp
@@ -75,10 +75,7 @@
 				<link
 					href="<c:url value="/resources/css/bootstrap/css/sm-bootstrap.css" />"
 					rel="stylesheet" />
-				<link
-					href="<c:url value="/resources/css/sm-bootstrap-responsive.css" />"
-					rel="stylesheet" />
-				<link href="<c:url value="/resources/css/shopizer.css" />"
+				<link href="<c:url value="/resources/css/shopizer-admin.css" />"
 					rel="stylesheet" />
 
 
diff --git a/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
index c33fbd9..3b67b69 100644
--- a/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
+++ b/sm-shop/target/m2e-wtp/web-resources/META-INF/maven/com.shopizer/sm-shop/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven Integration for Eclipse
-#Fri Dec 23 12:26:07 EST 2016
+#Wed Jan 04 10:51:11 EST 2017
 version=2.0.5-SNAPSHOT
 groupId=com.shopizer
 m2e.projectName=sm-shop