You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2014/11/01 10:06:43 UTC
svn commit: r1635901 [1/2] - in /ofbiz/trunk: ./
applications/humanres/src/org/ofbiz/humanres/
applications/humanres/webapp/humanres/WEB-INF/
applications/humanres/webapp/humanres/humanres/category/
applications/order/src/org/ofbiz/order/finaccount/ ap...
Author: jacopoc
Date: Sat Nov 1 09:06:42 2014
New Revision: 1635901
URL: http://svn.apache.org/r1635901
Log:
Merged json-integration-refactoring into trunk:
* moved the json-lib jar (json-lib-2.2.3-jdk15.jar) from the framework/webapp to the framework/base component
* removed the SQL select Parser.jj (parser definition) and its unit tests: it was not used (and never used) by any OFBiz code
* removed the JSON.jj (parser definition) and its unit tests: it was not used (and never used) by any OFBiz code apart from the JSON Converters (now migrated to json-lib, see next items in this list) some utility methods in UtilIO.java (that have been removed too because they have never been used in OFBiz)
* removed the JavaCC jar and related ant scripts because no more needed after the removal of Parser.jj and JSON.jj
* converted the JSONConverter code that was based on JSON.jj to Jackson
* added a new class org.ofbiz.base.lang.JSON that have been contributed by Adrian Crum that is a facade for simplifying the client code and for hiding the specific JSON library being used
* removed an unused method: ImageManagementServices.toJsonObject(...)
* added TestBooleanConverters to the list of tests
* new unit tests for the new JSON converters
* refactored Ajax code in applications to use the common request json response rather than a custom method
* OFBIZ-5790 Implemented ability to call a service event by passing its input parameters in the request body as JSON data. These classes provide a simple mechanism, based on the request's content type, that can be extended to support other formats (e.g. XML).
This commit resolves OFBIZ-4572, OFBIZ-3365, OFBIZ-5751, OFBIZ-5790
Added:
ofbiz/trunk/framework/base/lib/jackson-annotations-2.4.0.jar
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/base/lib/jackson-annotations-2.4.0.jar
ofbiz/trunk/framework/base/lib/jackson-core-2.4.2.jar
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/base/lib/jackson-core-2.4.2.jar
ofbiz/trunk/framework/base/lib/jackson-databind-2.4.2.jar
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/base/lib/jackson-databind-2.4.2.jar
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/TestJSONConverters.java
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/conversion/test/TestJSONConverters.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/lang/JSON.java
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/base/src/org/ofbiz/base/lang/JSON.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/JSONRequestBodyMapHandler.java
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/webapp/src/org/ofbiz/webapp/event/JSONRequestBodyMapHandler.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/RequestBodyMapHandler.java
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/webapp/src/org/ofbiz/webapp/event/RequestBodyMapHandler.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/RequestBodyMapHandlerFactory.java
- copied unchanged from r1635900, ofbiz/branches/json-integration-refactoring/framework/webapp/src/org/ofbiz/webapp/event/RequestBodyMapHandlerFactory.java
Removed:
ofbiz/trunk/framework/base/ant-scripts/ofbiz-jjtree.groovy
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONResult.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/json/
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/sql/SQLUtil.java
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Main.java
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Parser.jj
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SQLTest.java
ofbiz/trunk/framework/webapp/lib/json-lib-2.2.3-jdk15.jar
ofbiz/trunk/lib/
Modified:
ofbiz/trunk/ (props changed)
ofbiz/trunk/.classpath
ofbiz/trunk/LICENSE
ofbiz/trunk/NOTICE
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
ofbiz/trunk/applications/order/src/org/ofbiz/order/finaccount/FinAccountHelper.java (props changed)
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreEvents.java
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl
ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreGroupTree.ftl
ofbiz/trunk/framework/base/build.xml
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONConverters.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java
ofbiz/trunk/framework/base/testdef/basetests.xml
ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonEvents.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/Converters.java
ofbiz/trunk/framework/sql/build.xml
ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SelectTest.java
ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ServiceEventHandler.java
ofbiz/trunk/macros.xml
ofbiz/trunk/specialpurpose/ebaystore/src/org/ofbiz/ebaystore/EbayStoreOptions.java
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/controller.xml
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/store/StoreSetting.ftl
ofbiz/trunk/specialpurpose/ebaystore/webapp/ebaystore/store/productsearchExport.ftl
Propchange: ofbiz/trunk/
------------------------------------------------------------------------------
Merged /ofbiz/branches/json-integration-refactoring:r1634077-1635900
Modified: ofbiz/trunk/.classpath
URL: http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/.classpath (original)
+++ ofbiz/trunk/.classpath Sat Nov 1 09:06:42 2014
@@ -29,6 +29,9 @@
<classpathentry kind="lib" path="framework/base/lib/ical4j-1.0-rc2.jar"/>
<classpathentry kind="lib" path="framework/base/lib/icu4j-52_1.jar"/>
<classpathentry kind="lib" path="framework/base/lib/ivy-2.2.0.jar"/>
+ <classpathentry kind="lib" path="framework/base/lib/jackson-annotations-2.4.0.jar"/>
+ <classpathentry kind="lib" path="framework/base/lib/jackson-core-2.4.2.jar"/>
+ <classpathentry kind="lib" path="framework/base/lib/jackson-databind-2.4.2.jar"/>
<classpathentry kind="lib" path="framework/base/lib/javolution-5.4.3.jar"/>
<classpathentry kind="lib" path="framework/base/lib/jdbm-1.0-SNAPSHOT.jar"/>
<classpathentry kind="lib" path="framework/base/lib/jdom-1.1.jar"/>
@@ -130,7 +133,6 @@
<classpathentry kind="lib" path="framework/testtools/lib/org.springframework.core-3.1.0.M2.jar"/>
<classpathentry kind="lib" path="framework/webapp/lib/ezmorph-0.9.1.jar"/>
<classpathentry kind="lib" path="framework/webapp/lib/iText-2.1.7.jar"/>
- <classpathentry kind="lib" path="framework/webapp/lib/json-lib-2.2.3-jdk15.jar"/>
<classpathentry kind="lib" path="framework/webapp/lib/rome-0.9.jar"/>
<classpathentry kind="lib" path="specialpurpose/googlecheckout/lib/checkout-sdk-0.8.8.jar"/>
<classpathentry kind="lib" path="specialpurpose/ldap/lib/cas-server-core-3.3.jar"/>
@@ -157,7 +159,6 @@
<classpathentry kind="src" path="applications/humanres/src"/>
<classpathentry kind="src" path="applications/workeffort/src"/>
<classpathentry kind="src" path="specialpurpose/appserver/src"/>
- <classpathentry kind="src" path="framework/base/build/gen-src/javacc"/>
<classpathentry excluding="org/ofbiz/base/config/CoberturaInstrumenter.java" kind="src" path="framework/base/src"/>
<classpathentry kind="src" path="framework/bi/src"/>
<classpathentry kind="src" path="specialpurpose/birt/src"/>
@@ -172,7 +173,6 @@
<classpathentry kind="src" path="framework/security/src"/>
<classpathentry kind="src" path="framework/service/src"/>
<classpathentry kind="src" path="framework/sql/src"/>
- <classpathentry kind="src" path="framework/sql/build/gen-src/javacc"/>
<classpathentry kind="src" path="framework/start/src"/>
<classpathentry kind="src" path="framework/testtools/src"/>
<classpathentry excluding="org/ofbiz/webapp/view/JasperReportsPdfViewHandler.java|org/ofbiz/webapp/view/JasperReportsXmlViewHandler.java|org/ofbiz/webapp/view/JasperReportsJXlsViewHandler.java|org/ofbiz/webapp/view/JasperReportsPoiXlsViewHandler.java" kind="src" path="framework/webapp/src"/>
Modified: ofbiz/trunk/LICENSE
URL: http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/LICENSE (original)
+++ ofbiz/trunk/LICENSE Sat Nov 1 09:06:42 2014
@@ -23,6 +23,9 @@ framework/base/lib/httpclient-4.2.1.jar
framework/base/lib/httpclient-cache-4.2.1.jar
framework/base/lib/httpcore-4.2.1.jar
framework/base/lib/ivy-2.2.0.jar
+framework/base/lib/jackson-annotations-2.4.0.jar
+framework/base/lib/jackson-core-2.4.2.jar
+framework/base/lib/jackson-databind-2.4.2.jar
framework/base/lib/jakarta-regexp-1.5.jar
framework/base/lib/jpim-0.1.jar
framework/base/lib/juel-impl-2.2.7.jar
@@ -92,7 +95,6 @@ framework/service/lib/neethi-2.0.4.jar
framework/service/lib/XmlSchema-1.4.3.jar
framework/webapp/lib/fop-1.1.jar
framework/webapp/lib/xmlgraphics-commons-1.5.jar
-framework/webapp/lib/json-lib-2.2.3-jdk15.jar
framework/webapp/lib/ezmorph-0.9.1.jar
framework/webapp/lib/rome-0.9.jar
framework/webapp/lib/serializer-2.7.0.jar
@@ -439,7 +441,6 @@ framework/base/lib/bsh-engine-modified.j
framework/base/lib/hamcrest-all-1.2.jar
framework/base/lib/httpunit-1.7.jar
framework/base/lib/ical4j-1.0-rc2.jar
-lib/build/javacc/javacc.jar (5.0)
framework/base/lib/javolution-5.4.3.jar
framework/base/lib/xpp3-1.1.4c.jar
framework/base/lib/xstream-1.4.6.jar
Modified: ofbiz/trunk/NOTICE
URL: http://svn.apache.org/viewvc/ofbiz/trunk/NOTICE?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/NOTICE (original)
+++ ofbiz/trunk/NOTICE Sat Nov 1 09:06:42 2014
@@ -253,12 +253,6 @@ jpim is released under a modified BSD st
Java PIM Library (jpim)
Copyright (c) 2001-2003 jpim development team.
=========================================================================
-== JavaCC Notice ==
-=========================================================================
-
-This product includes software developed by the javacc team
-(http://javacc.dev.java.net/). The included version is 4.1.
-=========================================================================
== XPP3 Notice ==
=========================================================================
Modified: ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java (original)
+++ ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java Sat Nov 1 09:06:42 2014
@@ -18,18 +18,14 @@
*******************************************************************************/
package org.ofbiz.humanres;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javolution.util.FastList;
import javolution.util.FastMap;
-import net.sf.json.JSONObject;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilValidate;
@@ -46,7 +42,7 @@ public class HumanResEvents {
// Please note : the structure of map in this function is according to the JSON data map of the jsTree
@SuppressWarnings("unchecked")
- public static void getChildHRCategoryTree(HttpServletRequest request, HttpServletResponse response){
+ public static String getChildHRCategoryTree(HttpServletRequest request, HttpServletResponse response){
Delegator delegator = (Delegator) request.getAttribute("delegator");
String partyId = request.getParameter("partyId");
String onclickFunction = request.getParameter("onclickFunction");
@@ -54,7 +50,7 @@ public class HumanResEvents {
String hrefString = request.getParameter("hrefString");
String hrefString2 = request.getParameter("hrefString2");
- List categoryList = FastList.newInstance();
+ List categoryList = new ArrayList();
List<GenericValue> childOfComs;
//check employee position
try {
@@ -107,11 +103,11 @@ public class HumanResEvents {
categoryList.add(josonMap);
}
- toJsonObjectList(categoryList,response);
}
}
} catch (Exception e) {
e.printStackTrace();
+ return "error";
}
try {
@@ -235,41 +231,12 @@ public class HumanResEvents {
categoryList.add(emplMap);
}
}
-
- toJsonObjectList(categoryList,response);
}
} catch (Exception e) {
e.printStackTrace();
+ return "error";
}
- }
-
- @SuppressWarnings("unchecked")
- public static void toJsonObjectList(List attrList, HttpServletResponse response){
- String jsonStr = "[";
- for (Object attrMap : attrList) {
- JSONObject json = JSONObject.fromObject(attrMap);
- jsonStr = jsonStr + json.toString() + ',';
- }
- jsonStr = jsonStr + "{ } ]";
- if (UtilValidate.isEmpty(jsonStr)) {
- Debug.logError("JSON Object was empty; fatal error!",module);
- }
- // set the X-JSON content type
- response.setContentType("application/json");
- // jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- Debug.logError("Problems with Json encoding",module);
- }
- // return the JSON String
- Writer out;
- try {
- out = response.getWriter();
- out.write(jsonStr);
- out.flush();
- } catch (IOException e) {
- Debug.logError("Unable to get response writer",module);
- }
+ request.setAttribute("hrTree", categoryList);
+ return "success";
}
}
Modified: ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml Sat Nov 1 09:06:42 2014
@@ -1051,7 +1051,8 @@ under the License.
<request-map uri="getHRChild">
<security auth="false" https="true"/>
<event type="java" path="org.ofbiz.humanres.HumanResEvents" invoke="getChildHRCategoryTree"/>
- <response name="success" type="none"/>
+ <response name="success" type="request" value="json"/>
+ <response name="error" type="request" value="json"/>
</request-map>
<request-map uri="createInternalOrg">
<security https="true" auth="true"/>
Modified: ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl (original)
+++ ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl Sat Nov 1 09:06:42 2014
@@ -69,7 +69,10 @@ var rawdata = [
"hrefString" : "viewprofile?partyId=" ,
"onclickFunction" : "callDocument"
};
- }
+ },
+ success : function(data) {
+ return data.hrTree;
+ }
}
},
"types" : {
Propchange: ofbiz/trunk/applications/order/src/org/ofbiz/order/finaccount/FinAccountHelper.java
------------------------------------------------------------------------------
Merged /ofbiz/branches/json-integration-refactoring/applications/order/src/org/ofbiz/order/finaccount/FinAccountHelper.java:r1634077-1635900
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java Sat Nov 1 09:06:42 2014
@@ -18,9 +18,6 @@
*******************************************************************************/
package org.ofbiz.product.category;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
import java.sql.Timestamp;
import java.util.List;
import java.util.Locale;
@@ -31,7 +28,6 @@ import javax.servlet.http.HttpServletRes
import javolution.util.FastList;
import javolution.util.FastMap;
-import net.sf.json.JSONObject;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
@@ -434,7 +430,7 @@ public class CategoryServices {
// Please note : the structure of map in this function is according to the JSON data map of the jsTree
@SuppressWarnings("unchecked")
- public static void getChildCategoryTree(HttpServletRequest request, HttpServletResponse response){
+ public static String getChildCategoryTree(HttpServletRequest request, HttpServletResponse response){
Delegator delegator = (Delegator) request.getAttribute("delegator");
String productCategoryId = request.getParameter("productCategoryId");
String isCatalog = request.getParameter("isCatalog");
@@ -528,42 +524,13 @@ public class CategoryServices {
categoryList.add(josonMap);
}
List<Map<Object, Object>> sortedCategoryList = UtilMisc.sortMaps(categoryList, sortList);
- toJsonObjectList(sortedCategoryList,response);
+ request.setAttribute("treeData", sortedCategoryList);
}
}
} catch (GenericEntityException e) {
e.printStackTrace();
+ return "error";
}
- }
-
- public static void toJsonObjectList(List attrList, HttpServletResponse response){
- StringBuilder jsonBuilder = new StringBuilder("[");
- for (Object attrMap : attrList) {
- JSONObject json = JSONObject.fromObject(attrMap);
- jsonBuilder.append(json.toString());
- jsonBuilder.append(',');
- }
- jsonBuilder.append("{ } ]");
- String jsonStr = jsonBuilder.toString();
- if (UtilValidate.isEmpty(jsonStr)) {
- Debug.logError("JSON Object was empty; fatal error!",module);
- }
- // set the X-JSON content type
- response.setContentType("application/json");
- // jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- Debug.logError("Problems with Json encoding",module);
- }
- // return the JSON String
- Writer out;
- try {
- out = response.getWriter();
- out.write(jsonStr);
- out.flush();
- } catch (IOException e) {
- Debug.logError("Unable to get response writer",module);
- }
+ return "success";
}
}
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java Sat Nov 1 09:06:42 2014
@@ -26,30 +26,17 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
import java.nio.ByteBuffer;
-import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.imageio.ImageIO;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import javolution.util.FastList;
import javolution.util.FastMap;
-import net.sf.json.JSONObject;
-
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.jdom.JDOMException;
import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.FileUtil;
import org.ofbiz.base.util.UtilDateTime;
import org.ofbiz.base.util.UtilGenerics;
import org.ofbiz.base.util.UtilMisc;
@@ -66,8 +53,6 @@ import org.ofbiz.service.DispatchContext
import org.ofbiz.service.GenericServiceException;
import org.ofbiz.service.LocalDispatcher;
import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.webapp.event.EventHandlerException;
-
/**
* Product Services
@@ -76,7 +61,6 @@ public class ImageManagementServices {
public static final String module = ImageManagementServices.class.getName();
public static final String resource = "ProductErrorUiLabels";
- private static List<Map<String,Object>> josonMap = null;
private static int imageCount = 0;
private static String imagePath;
@@ -649,131 +633,7 @@ public class ImageManagementServices {
result.put("scaleFactor", scaleFactor);
return result;
}
-
- public static String multipleUploadImage(HttpServletRequest request, HttpServletResponse response) throws IOException, JDOMException {
- HttpSession session = request.getSession(true);
- GenericValue userLogin = (GenericValue) session.getAttribute("userLogin");
- LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
-
- Map<String, String> formInput = FastMap.newInstance();
- ServletFileUpload fu = new ServletFileUpload(new DiskFileItemFactory(10240, FileUtil.getFile("runtime/tmp")));
- List<FileItem> lst = null;
- try {
- lst = UtilGenerics.checkList(fu.parseRequest(request));
- } catch (FileUploadException e4) {
- return e4.getMessage();
- }
-
- FileItem fi = null;
- FileItem imageFi = null;
- byte[] imageBytes = {};
- for (int i=0; i < lst.size(); i++) {
- fi = lst.get(i);
- String fieldName = fi.getFieldName();
- if (fi.isFormField()) {
- String fieldStr = fi.getString();
- formInput.put(fieldName, fieldStr);
- } else if (fieldName.startsWith("imageData")) {
- Map<String, Object> passedParams = FastMap.newInstance();
- Map<String, Object> contentLength = FastMap.newInstance();
- if(josonMap == null){
- josonMap = FastList.newInstance();
- }
- imageFi = fi;
- String fileName = fi.getName();
- String contentType = fi.getContentType();
- imageBytes = imageFi.get();
- ByteBuffer byteWrap = ByteBuffer.wrap(imageBytes);
- passedParams.put("userLogin", userLogin);
- passedParams.put("productId", formInput.get("productId"));
- passedParams.put("productContentTypeId", "IMAGE");
- passedParams.put("_uploadedFile_fileName", fileName);
- passedParams.put("_uploadedFile_contentType", contentType);
- passedParams.put("uploadedFile", byteWrap);
- passedParams.put("imageResize", formInput.get("imageResize"));
- contentLength.put("imageSize", imageFi.getSize());
- josonMap.add(contentLength);
-
- if (passedParams.get("productId") != null) {
- try {
- dispatcher.runSync("addMultipleuploadForProduct", passedParams);
- } catch (GenericServiceException e) {
- Debug.logError(e, module);
- return e.getMessage();
- }
- }
-
- }
- }
- return "success";
- }
-
- public static String progressUploadImage(HttpServletRequest request, HttpServletResponse response) throws EventHandlerException{
- toJsonObjectList(josonMap,response);
- josonMap.clear();
- return "success";
- }
-
- public static void toJsonObject(Map<String,Object> attrMap, HttpServletResponse response){
- JSONObject json = JSONObject.fromObject(attrMap);
- String jsonStr = json.toString();
- if (jsonStr == null) {
- Debug.logError("JSON Object was empty; fatal error!",module);
- }
- // set the X-JSON content type
- response.setContentType("application/json");
- // jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- Debug.logError("Problems with Json encoding",module);
- }
- // return the JSON String
- Writer out;
- try {
- out = response.getWriter();
- out.write(jsonStr);
- out.flush();
- } catch (IOException e) {
- Debug.logError("Unable to get response writer",module);
- }
- }
-
- public static void toJsonObjectList(List<Map<String,Object>> list, HttpServletResponse response) throws EventHandlerException {
- JSONObject json = null;
- List<JSONObject> jsonList = new ArrayList<JSONObject>();
- if (list != null) {
- for (Map<String,Object> val : list) {
- json = new JSONObject();
- for (String rowKey: val.keySet()) {
- json.put(rowKey, val.get(rowKey));
- }
- jsonList.add(json);
- }
- String jsonStr = jsonList.toString();
- if (jsonStr == null) {
- throw new EventHandlerException("JSON Object was empty; fatal error!");
- }
- // set the X-JSON content type
- response.setContentType("application/json");
- // jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- throw new EventHandlerException("Problems with Json encoding", e);
- }
- // return the JSON String
- Writer out;
- try {
- out = response.getWriter();
- out.write(jsonStr);
- out.flush();
- } catch (IOException e) {
- throw new EventHandlerException("Unable to get response writer", e);
- }
- }
- }
-
+
public static File checkExistsImage(File file) {
if (!file.exists()) {
imageCount = 0;
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreEvents.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreEvents.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreEvents.java Sat Nov 1 09:06:42 2014
@@ -18,9 +18,6 @@
*******************************************************************************/
package org.ofbiz.product.store;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
import java.util.List;
import java.util.Map;
@@ -30,9 +27,6 @@ import javax.servlet.http.HttpServletRes
import javolution.util.FastList;
import javolution.util.FastMap;
-import net.sf.json.JSONObject;
-
-import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.entity.Delegator;
@@ -47,7 +41,7 @@ public class ProductStoreEvents {
// Please note : the structure of map in this function is according to the JSON data map of the jsTree
@SuppressWarnings("unchecked")
- public static void getChildProductStoreGroupTree(HttpServletRequest request, HttpServletResponse response){
+ public static String getChildProductStoreGroupTree(HttpServletRequest request, HttpServletResponse response){
Delegator delegator = (Delegator) request.getAttribute("delegator");
String parentGroupId = request.getParameter("parentGroupId");
String onclickFunction = request.getParameter("onclickFunction");
@@ -92,41 +86,13 @@ public class ProductStoreEvents {
productStoreGroupList.add(josonMap);
}
List<Map<Object, Object>> sortedProductStoreGroupList = UtilMisc.sortMaps(productStoreGroupList, sortList);
- toJsonObjectList(sortedProductStoreGroupList,response);
+ request.setAttribute("storeGroupTree", sortedProductStoreGroupList);
}
}
} catch (GenericEntityException e) {
e.printStackTrace();
+ return "error";
}
- }
-
- @SuppressWarnings("unchecked")
- public static void toJsonObjectList(List attrList, HttpServletResponse response){
- String jsonStr = "[";
- for (Object attrMap : attrList) {
- JSONObject json = JSONObject.fromObject(attrMap);
- jsonStr = jsonStr + json.toString() + ',';
- }
- jsonStr = jsonStr + "{ } ]";
- if (UtilValidate.isEmpty(jsonStr)) {
- Debug.logError("JSON Object was empty; fatal error!",module);
- }
- // set the X-JSON content type
- response.setContentType("application/json");
- // jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- Debug.logError("Problems with Json encoding",module);
- }
- // return the JSON String
- Writer out;
- try {
- out = response.getWriter();
- out.write(jsonStr);
- out.flush();
- } catch (IOException e) {
- Debug.logError("Unable to get response writer",module);
- }
+ return "success";
}
}
Modified: ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml Sat Nov 1 09:06:42 2014
@@ -1457,7 +1457,8 @@ under the License.
<request-map uri="getProductStoreGroupRollupHierarchy">
<security auth="false" https="true"/>
<event type="java" path="org.ofbiz.product.store.ProductStoreEvents" invoke="getChildProductStoreGroupTree"/>
- <response name="success" type="none"/>
+ <response name="success" type="request" value="json"/>
+ <response name="error" type="request" value="json"/>
</request-map>
<request-map uri="AddProductStoreToGroup">
<security auth="true" https="true"/>
@@ -2900,17 +2901,6 @@ under the License.
<response name="success" type="view" value="viewPreviewImage"/>
<response name="error" type="view" value="viewPreviewImage"/>
</request-map>
- <request-map uri="multipleUploadImage">
- <security https="true" auth="true"/>
- <event type="java" path="org.ofbiz.product.imagemanagement.ImageManagementServices" invoke="multipleUploadImage"/>
- <response name="success" type="view" value="ImageUpload"/>
- <response name="error" type="view" value="ImageUpload"/>
- </request-map>
- <request-map uri="progressUploadImage">
- <security https="true" auth="true"/>
- <event type="java" path="org.ofbiz.virtualvillage.imagemanagement.ImageManagementServices" invoke="progressUploadImage"/>
- <response name="success" type="view" value="main"/>
- </request-map>
<request-map uri="chooseFrameImage">
<security https="true" auth="true"/>
<event type="java" path="org.ofbiz.product.imagemanagement.FrameImage" invoke="chooseFrameImage"/>
@@ -3022,7 +3012,8 @@ under the License.
<request-map uri="getChild">
<security auth="false" https="true"/>
<event type="java" path="org.ofbiz.product.category.CategoryServices" invoke="getChildCategoryTree"/>
- <response name="success" type="none"/>
+ <response name="success" type="request" value="json"/>
+ <response name="error" type="request" value="json"/>
</request-map>
<request-map uri="listMiniproduct">
<security auth="false" https="true"/>
Modified: ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl Sat Nov 1 09:06:42 2014
@@ -62,20 +62,24 @@ var rawdata = [
$.cookie('jstree_select', "<#if productCategoryId??>${productCategoryId}<#elseif prodCatalogId??>${prodCatalogId}<#elseif showProductCategoryId??>${showProductCategoryId}</#if>");
</#if>
jQuery("#tree").jstree({
- "plugins" : [ "themes", "json_data","ui" ,"cookies", "types"],
+ "plugins" : [ "themes", "json_data","ui" ,"cookies", "types"],
"json_data" : {
"data" : rawdata,
- "ajax" : { "url" : "<@o...@ofbizUrl>", "type" : "POST",
- "data" : function (n) {
- return {
- "isCategoryType" : n.attr ? n.attr("isCatalog").replace("node_","") : 1 ,
- "isCatalog" : n.attr ? n.attr("isCatalog").replace("node_","") : 1 ,
- "productCategoryId" : n.attr ? n.attr("id").replace("node_","") : 1 ,
- "additionParam" : "','category" ,
- "hrefString" : "EditCategory?productCategoryId=" ,
- "onclickFunction" : "callDocument"
- };
- }
+ "ajax" : { "url" : "<@o...@ofbizUrl>",
+ "type" : "POST",
+ "data" : function (n) {
+ return {
+ "isCategoryType" : n.attr ? n.attr("isCatalog").replace("node_","") : 1 ,
+ "isCatalog" : n.attr ? n.attr("isCatalog").replace("node_","") : 1 ,
+ "productCategoryId" : n.attr ? n.attr("id").replace("node_","") : 1 ,
+ "additionParam" : "','category" ,
+ "hrefString" : "EditCategory?productCategoryId=" ,
+ "onclickFunction" : "callDocument"
+ };
+ },
+ success : function(data) {
+ return data.treeData;
+ }
}
},
"types" : {
Modified: ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreGroupTree.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreGroupTree.ftl?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreGroupTree.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreGroupTree.ftl Sat Nov 1 09:06:42 2014
@@ -49,17 +49,21 @@ var rawdata = [
"plugins" : [ "themes", "json_data","ui" ,"cookies", "types"],
"json_data" : {
"data" : rawdata,
- "ajax" : { "url" : "<@o...@ofbizUrl>", "type" : "POST",
- "data" : function (n) {
- return {
- "parentGroupId" : n.attr ? n.attr("parentGroupId").replace("node_","") : 1,
- "onclickFunction" : "callDocument"
- };
- }
+ "ajax" : { "url" : "<@o...@ofbizUrl>",
+ "type" : "POST",
+ "data" : function (n) {
+ return {
+ "parentGroupId" : n.attr ? n.attr("parentGroupId").replace("node_","") : 1,
+ "onclickFunction" : "callDocument"
+ };
+ },
+ success : function (data) {
+ return data.storeGroupTree;
+ }
}
},
"types" : {
- "valid_children" : [ "root" ]
+ "valid_children" : [ "root" ]
}
});
});
Modified: ofbiz/trunk/framework/base/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/build.xml?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/build.xml (original)
+++ ofbiz/trunk/framework/base/build.xml Sat Nov 1 09:06:42 2014
@@ -51,6 +51,7 @@ under the License.
<file name="org/ofbiz/base/conversion/test/TestBooleanConverters.java"/>
<file name="org/ofbiz/base/conversion/test/DateTimeTests.java"/>
<file name="org/ofbiz/base/conversion/test/MiscTests.java"/>
+ <file name="org/ofbiz/base/conversion/test/TestJSONConverters.java"/>
<file name="org/ofbiz/base/util/test/UtilIOTests.java"/>
<file name="org/ofbiz/base/test/BaseUnitTests.java"/>
<file name="org/ofbiz/base/util/collections/test/GenericMapTest.java"/>
@@ -80,20 +81,6 @@ under the License.
</patternset>
</target>
- <target name="gen-src">
- <ofbiz-javacc dir="org/ofbiz/base/json" file="JSON"/>
- </target>
-
- <target name="classes" depends="prepare,gen-src">
- <javac17>
- <sourcepath>
- <dirset dir="build/gen-src">
- <include name="javacc"/>
- </dirset>
- </sourcepath>
- </javac17>
- </target>
-
<target name="jar" depends="classes">
<main-jar>
<main-elements>
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONConverters.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/JSONConverters.java Sat Nov 1 09:06:42 2014
@@ -18,124 +18,15 @@
*******************************************************************************/
package org.ofbiz.base.conversion;
-import java.util.Collection;
+import java.io.IOException;
import java.util.List;
import java.util.Map;
-import java.util.Set;
-import javolution.util.FastSet;
-
-import org.ofbiz.base.json.JSON;
+import org.ofbiz.base.lang.JSON;
import org.ofbiz.base.util.UtilGenerics;
/** JSON Converter classes. */
public class JSONConverters implements ConverterLoader {
- public static class ObjectToJSONResultCreator<R extends JSONResult> implements ConverterCreator, ConverterLoader {
- public void loadConverters() {
- Converters.registerCreator(this);
- }
-
- public <S, T> Converter<S, T> createConverter(Class<S> sourceClass, Class<T> targetClass) {
- if (!JSONResult.class.isAssignableFrom(targetClass)) {
- return null;
- }
- if (Collection.class.isAssignableFrom(sourceClass)) {
- } else if (Map.class.isAssignableFrom(sourceClass)) {
- } else if (Byte.class == sourceClass) {
- } else if (Character.class == sourceClass) {
- } else if (Double.class == sourceClass) {
- } else if (Float.class == sourceClass) {
- } else if (Integer.class == sourceClass) {
- } else if (Long.class == sourceClass) {
- } else if (Short.class == sourceClass) {
- } else {
- return null;
- }
- return UtilGenerics.cast(new ObjectToJSONWriterResult<S, JSONResult>(sourceClass, UtilGenerics.<Class<JSONResult>>cast(targetClass)));
- }
- }
-
- private static class ObjectToJSONWriterResult<S, T extends JSONResult> extends AbstractConverter<S, T> {
- public ObjectToJSONWriterResult(Class<S> sourceClass, Class<T> targetClass) {
- super(sourceClass, targetClass);
- }
-
- public T convert(S obj) throws ConversionException {
- try {
- T result = UtilGenerics.<T>cast(getTargetClass().newInstance());
- result.getWriter().write(obj);
- return result;
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
-
- public static class JSONToByte extends AbstractConverter<JSON, Byte> {
- public JSONToByte() {
- super(JSON.class, Byte.class);
- }
-
- public Byte convert(JSON obj) throws ConversionException {
- try {
- return obj.JSONLong().byteValue();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
-
- public static class JSONToDouble extends AbstractConverter<JSON, Double> {
- public JSONToDouble() {
- super(JSON.class, Double.class);
- }
-
- public Double convert(JSON obj) throws ConversionException {
- try {
- return obj.JSONFloat();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
-
- public static class JSONToFloat extends AbstractConverter<JSON, Float> {
- public JSONToFloat() {
- super(JSON.class, Float.class);
- }
-
- public Float convert(JSON obj) throws ConversionException {
- try {
- return obj.JSONFloat().floatValue();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
-
- public static class JSONToInteger extends AbstractConverter<JSON, Integer> {
- public JSONToInteger() {
- super(JSON.class, Integer.class);
- }
-
- public Integer convert(JSON obj) throws ConversionException {
- try {
- return obj.JSONLong().intValue();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
public static class JSONToList extends AbstractConverter<JSON, List<Object>> {
public JSONToList() {
@@ -144,26 +35,8 @@ public class JSONConverters implements C
public List<Object> convert(JSON obj) throws ConversionException {
try {
- return obj.JSONArray();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new ConversionException(e);
- }
- }
- }
-
- public static class JSONToLong extends AbstractConverter<JSON, Long> {
- public JSONToLong() {
- super(JSON.class, Long.class);
- }
-
- public Long convert(JSON obj) throws ConversionException {
- try {
- return obj.JSONLong();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
+ return UtilGenerics.<List<Object>>cast(obj.toObject(List.class));
+ } catch (IOException e) {
throw new ConversionException(e);
}
}
@@ -176,44 +49,36 @@ public class JSONConverters implements C
public Map<String, Object> convert(JSON obj) throws ConversionException {
try {
- return obj.JSONObject();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
+ return UtilGenerics.<Map<String, Object>>cast(obj.toObject(Map.class));
+ } catch (IOException e) {
throw new ConversionException(e);
}
}
}
- public static class JSONToShort extends AbstractConverter<JSON, Short> {
- public JSONToShort() {
- super(JSON.class, Short.class);
+ public static class ListToJSON extends AbstractConverter<List<Object>, JSON> {
+ public ListToJSON() {
+ super(List.class, JSON.class);
}
- public Short convert(JSON obj) throws ConversionException {
+ public JSON convert(List<Object> obj) throws ConversionException {
try {
- return obj.JSONLong().shortValue();
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
+ return JSON.from(obj);
+ } catch (IOException e) {
throw new ConversionException(e);
}
}
}
- public static class JSONToSet extends AbstractConverter<JSON, Set<Object>> {
- public JSONToSet() {
- super(JSON.class, Set.class);
+ public static class MapToJSON extends AbstractConverter<Map<String, Object>, JSON> {
+ public MapToJSON() {
+ super(Map.class, JSON.class);
}
- public Set<Object> convert(JSON obj) throws ConversionException {
+ public JSON convert(Map<String, Object> obj) throws ConversionException {
try {
- Set<Object> set = FastSet.newInstance();
- set.addAll(obj.JSONArray());
- return set;
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
+ return JSON.from(obj);
+ } catch (IOException e) {
throw new ConversionException(e);
}
}
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/test/MiscTests.java Sat Nov 1 09:06:42 2014
@@ -21,7 +21,6 @@ package org.ofbiz.base.conversion.test;
import java.math.BigDecimal;
import java.net.URL;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,12 +31,10 @@ import javolution.util.FastMap;
import org.ofbiz.base.conversion.Converter;
import org.ofbiz.base.conversion.ConverterLoader;
import org.ofbiz.base.conversion.Converters;
-import org.ofbiz.base.conversion.JSONResult;
import org.ofbiz.base.lang.SourceMonitored;
import org.ofbiz.base.test.GenericTestCaseBase;
import org.ofbiz.base.util.UtilGenerics;
import org.ofbiz.base.util.UtilMisc;
-import org.ofbiz.base.util.collections.LRUMap;
@SourceMonitored
public class MiscTests extends GenericTestCaseBase {
@@ -46,12 +43,6 @@ public class MiscTests extends GenericTe
super(name);
}
- private static <S, T extends JSONResult.Indenting> void assertConversion(String label, String wanted, Class<T> targetClass, Object source, Class<S> sourceClass) throws Exception {
- Converter<S, T> converter = Converters.getConverter(sourceClass, targetClass);
- assertTrue(label + " can convert", converter.canConvert(sourceClass, targetClass));
- assertEquals(label, wanted, converter.convert(UtilGenerics.<S>cast(source)).getResult());
- }
-
public void testStaticHelperClass() throws Exception {
assertStaticHelperClass(Converters.class);
}
@@ -66,22 +57,6 @@ public class MiscTests extends GenericTe
Converters.loadContainedConverters(MiscTests.class);
}
- public void testExtendsImplements() throws Exception {
- List<String> arraysList = Arrays.asList("a", "b", "c");
- assertConversion("", "[\n \"a\",\n \"b\",\n \"c\"\n]", JSONResult.Indenting.class, arraysList, arraysList.getClass());
- Exception caught = null;
- try {
- Converters.getConverter(MiscTests.class, String.class);
- } catch (ClassNotFoundException e) {
- caught = e;
- } finally {
- assertNotNull("ClassNotFoundException thrown for MiscTests.class", caught);
- }
- LRUMap<String, String> map = new LRUMap<String, String>();
- map.put("a", "1");
- assertConversion("", "{\n \"a\": \"1\"\n}", JSONResult.Indenting.class, map, LRUMap.class);
- }
-
public static <S> void assertPassThru(Object wanted, Class<S> sourceClass) throws Exception {
assertPassThru(wanted, sourceClass, sourceClass);
}
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilIO.java Sat Nov 1 09:06:42 2014
@@ -19,34 +19,20 @@
package org.ofbiz.base.util;
import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
import java.io.Reader;
-import java.io.Serializable;
-import java.io.StringReader;
-import java.io.StringWriter;
import java.io.Writer;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-import org.ofbiz.base.conversion.Converter;
-import org.ofbiz.base.conversion.Converters;
-import org.ofbiz.base.json.JSON;
-import org.ofbiz.base.json.JSONWriter;
public final class UtilIO {
public static final Charset UTF8 = Charset.forName("UTF-8");
@@ -329,141 +315,4 @@ public final class UtilIO {
writer.write(value.substring(r));
writer.close();
}
-
- public static Object readObject(File file) throws ClassNotFoundException, IOException {
- return readObject(new FileInputStream(file), false);
- }
-
- public static Object readObject(File file, boolean allowJsonResolve) throws ClassNotFoundException, IOException {
- return readObject(new FileInputStream(file), allowJsonResolve);
- }
-
- public static Object readObject(InputStream in) throws ClassNotFoundException, IOException {
- return readObject(in, false);
- }
-
- public static Object readObject(InputStream in, boolean allowJsonResolve) throws ClassNotFoundException, IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- IOUtils.copy(in, baos);
- in.close();
- byte[] bytes = baos.toByteArray();
- try {
- char[] buffer = StringUtils.chomp(readString(bytes)).toCharArray();
- return parseObject(buffer, 0, buffer.length, allowJsonResolve);
- } catch (Exception e) {
- }
- ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(bytes));
- Serializable value = (Serializable) oin.readObject();
- oin.close();
- return value;
- }
-
- public static Object readObject(char[] buffer) throws ClassNotFoundException, IOException {
- return parseObject(buffer, 0, buffer.length, false);
- }
-
- public static Object readObject(char[] buffer, int offset, int length) throws ClassNotFoundException, IOException {
- return parseObject(buffer, offset, length, false);
- }
-
- private static <S, T> T convertObject(Class<S> sourceClass, S value, Class<T> targetClass) throws Exception {
- Converter<S, T> converter = Converters.getConverter(sourceClass, targetClass);
- return converter.convert(targetClass, value);
- }
-
- private static Object parseObject(char[] buffer, int offset, int length, boolean allowJsonResolve) throws ClassNotFoundException, IOException {
- try {
- int i;
- for (i = offset; i < length && buffer[i] != ':'; i++);
- if (i > offset && i < length) {
- String className = new String(buffer, offset, i);
- Class<?> type = Class.forName(className);
- if (buffer[length - 1] == '\n') {
- length--;
- }
- if (buffer[length - 1] == '\r') {
- length--;
- }
- return convertObject(String.class, new String(buffer, i + 1, length - i - 1), type);
- }
- } catch (Exception e) {
- }
- try {
- return new JSON(new StringReader(new String(buffer, offset, length))).allowResolve(allowJsonResolve).JSONValue();
- } catch (Error e) {
- } catch (Exception e) {
- }
- throw new IOException("Can't read (" + new String(buffer, offset, length) + ")");
- }
-
- public static void writeObject(File file, Object value) throws IOException {
- writeObject(new FileOutputStream(file), value, false);
- }
-
- public static void writeObject(File file, Object value, boolean allowJsonResolve) throws IOException {
- writeObject(new FileOutputStream(file), value, allowJsonResolve);
- }
-
- public static void writeObject(OutputStream out, Object value) throws IOException {
- writeObject(out, value, false);
- }
-
- public static void writeObject(OutputStream out, Object value, boolean allowJsonResolve) throws IOException {
- try {
- PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF8));
- if (encodeObject(writer, value, allowJsonResolve)) {
- writer.println();
- writer.close();
- return;
- }
- } catch (Exception e) {
- }
- ObjectOutputStream oout = new ObjectOutputStream(out);
- oout.writeObject(value);
- oout.close();
- out.close();
- }
-
- private static <T> boolean encodeObject(Writer writer, T value, boolean allowJsonResolve) throws Exception {
- Converter<T, String> converter = UtilGenerics.cast(Converters.getConverter(value.getClass(), String.class));
- if (converter != null) {
- Class<?> clz = converter.getSourceClass();
- String str = converter.convert(value);
- if (clz != null) {
- writer.write(clz.getName());
- } else {
- writer.write(value.getClass().getName());
- }
- writer.write(':');
- writer.write(str);
- return true;
- } else {
- StringWriter sw = new StringWriter();
- IndentingWriter indenting = new IndentingWriter(writer, true, false);
- JSONWriter jsonWriter;
- if (allowJsonResolve) {
- jsonWriter = new JSONWriter(indenting, JSONWriter.ResolvingFallbackHandler);
- } else {
- jsonWriter = new JSONWriter(indenting);
- }
- jsonWriter.write(value);
- writer.write(sw.toString());
- return true;
- }
- }
-
- public static void writeObject(StringBuilder sb, Object value) throws IOException {
- writeObject(sb, value, false);
- }
-
- public static void writeObject(StringBuilder sb, Object value, boolean allowJsonResolve) throws IOException {
- try {
- StringWriter writer = new StringWriter();
- if (encodeObject(writer, value, allowJsonResolve)) {
- sb.append(writer.toString());
- return;
- }
- } catch (Exception e) {} //Empty catch because writeObject() calls encodeObject(), which *always* returns true, unless an error occurs.
- throw new IOException("Can't write (" + value + ")");
- }
}
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/UtilIOTests.java Sat Nov 1 09:06:42 2014
@@ -129,53 +129,4 @@ public class UtilIOTests extends Generic
UtilIO.writeString(baos, UtilIO.UTF8, toWrite);
assertEquals("writeString UTF8:" + label, wanted, baos.toByteArray());
}
-
- protected void checkBasicReadObject(Object value, String text) throws Exception {
- byte[] bytes = text.getBytes("UTF-8");
- assertEquals("read bytes " + value.getClass().getName(), value, UtilIO.readObject(new ByteArrayInputStream(bytes)));
- assertEquals("read chars " + value.getClass().getName(), value, UtilIO.readObject(text.toCharArray()));
- assertEquals("read chars offset " + value.getClass().getName(), value, UtilIO.readObject(text.toCharArray(), 0, text.length()));
- }
-
- protected void checkBasicReadWriteObject(Object value, String text) throws Exception {
- String lineEnding = System.getProperty("line.separator");
- text = text.replaceAll("\n", lineEnding);
- byte[] bytes = text.getBytes("UTF-8");
- assertEquals("read bytes " + value.getClass().getName(), value, UtilIO.readObject(new ByteArrayInputStream(bytes)));
- assertEquals("read chars " + value.getClass().getName(), value, UtilIO.readObject(text.toCharArray()));
- assertEquals("read chars offset " + value.getClass().getName(), value, UtilIO.readObject(text.toCharArray(), 0, text.length()));
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- UtilIO.writeObject(baos, value);
- assertEquals("write stream " + value.getClass().getName(), text, new String(baos.toByteArray(), "UTF-8"));
- StringBuilder sb = new StringBuilder();
- UtilIO.writeObject(sb, value);
- sb.append(lineEnding);
- assertEquals("write builder " + value.getClass().getName(), text, sb.toString());
- }
-
- public void testReadWriteObject() throws Exception {
- checkBasicReadWriteObject(Boolean.TRUE, "java.lang.Boolean:true\n");
- checkBasicReadWriteObject(Byte.valueOf("1"), "java.lang.Byte:1\n");
- checkBasicReadWriteObject(Double.valueOf("1.0"), "java.lang.Double:1.0\n");
- checkBasicReadWriteObject(Float.valueOf("1.0"), "java.lang.Float:1.0\n");
- checkBasicReadWriteObject(Integer.valueOf("1"), "java.lang.Integer:1\n");
- checkBasicReadWriteObject(Long.valueOf("1"), "java.lang.Long:1\n");
- checkBasicReadWriteObject(Short.valueOf("1"), "java.lang.Short:1\n");
- checkBasicReadWriteObject(BigDecimal.valueOf(500.5), "java.math.BigDecimal:500.5\n");
- checkBasicReadWriteObject(BigInteger.valueOf(500), "java.math.BigInteger:500\n");
- checkBasicReadWriteObject("1", "java.lang.String:1\n");
- checkBasicReadObject(Arrays.asList(new Object[] {"a", UtilMisc.toMap("b", Long.valueOf(1))}), "[\n \"a\",\n {\n \"b\": 1\n }\n]\n");
- checkBasicReadWriteObject(MemoryType.HEAP, "java.lang.management.MemoryType:HEAP\n");
- checkBasicReadWriteObject(MemoryType.NON_HEAP, "java.lang.management.MemoryType:NON_HEAP\n");
- checkBasicReadWriteObject(UtilIO.UTF8, "java.nio.charset.Charset:UTF-8\n");
- checkBasicReadWriteObject(InetAddress.getByAddress("localhost", new byte[] {127, 0, 0, 1}), "java.net.InetAddress:localhost\n");
- //checkBasicReadWriteObject(Pattern.compile("^([a-z]{3}.*?):$"), "java.util.regex.Pattern:^([a-z]{3}.*?):$\n");
- checkBasicReadWriteObject(Time.valueOf("12:34:56"), "java.sql.Time:12:34:56\n");
- //checkBasicReadWriteObject(new Timestamp(1234567890), "java.sql.Timestamp:1234567890 00:00:00\n");
- //checkBasicReadWriteObject(new java.util.Date(1234567890), "java.util.Date:1234567890\n");
- checkBasicReadWriteObject(UUID.fromString("c3241927-9f77-43e1-be16-bd71d245ef64"), "java.util.UUID:c3241927-9f77-43e1-be16-bd71d245ef64\n");
- checkBasicReadWriteObject(TimeZone.getTimeZone("America/Chicago"), "java.util.TimeZone:America/Chicago\n");
- checkBasicReadWriteObject(new SimpleDateFormat("MM/dd/yyyy hh:mm a"), "java.text.SimpleDateFormat:MM/dd/yyyy hh:mm a\n");
- checkBasicReadWriteObject(new Locale("en", "us"), "java.util.Locale:en_US\n");
- }
}
Modified: ofbiz/trunk/framework/base/testdef/basetests.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/testdef/basetests.xml?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/testdef/basetests.xml (original)
+++ ofbiz/trunk/framework/base/testdef/basetests.xml Sat Nov 1 09:06:42 2014
@@ -32,7 +32,8 @@
<junit-test-suite class-name="org.ofbiz.base.util.cache.test.UtilCacheTests"/>
<junit-test-suite class-name="org.ofbiz.base.conversion.test.DateTimeTests"/>
<junit-test-suite class-name="org.ofbiz.base.conversion.test.MiscTests"/>
- <junit-test-suite class-name="org.ofbiz.base.json.test.JSONTests"/>
+ <junit-test-suite class-name="org.ofbiz.base.conversion.test.TestBooleanConverters"/>
+ <junit-test-suite class-name="org.ofbiz.base.conversion.test.TestJSONConverters"/>
<!--junit-test-suite class-name="org.ofbiz.base.util.test.UtilIOTests"/-->
<junit-test-suite class-name="org.ofbiz.base.test.BaseUnitTests"/>
<junit-test-suite class-name="org.ofbiz.base.util.test.UtilPropertiesTests"/>
Modified: ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonEvents.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonEvents.java (original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/CommonEvents.java Sat Nov 1 09:06:42 2014
@@ -28,8 +28,8 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
@@ -41,13 +41,10 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import net.sf.json.JSON;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-import net.sf.json.JSONSerializer;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.StringUtils;
+import org.ofbiz.base.lang.JSON;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.StringUtil;
import org.ofbiz.base.util.UtilGenerics;
@@ -289,15 +286,16 @@ public class CommonEvents {
attrMap.remove(ignoreAttr);
}
}
-
- // create a JSON Object for return
- JSONObject json = JSONObject.fromObject(attrMap);
- writeJSONtoResponse(json, request.getMethod(), response);
-
+ try {
+ JSON json = JSON.from(attrMap);
+ writeJSONtoResponse(json, request.getMethod(), response);
+ } catch (Exception e) {
+ return "error";
+ }
return "success";
}
- private static void writeJSONtoResponse(JSON json, String httpMethod, HttpServletResponse response) {
+ private static void writeJSONtoResponse(JSON json, String httpMethod, HttpServletResponse response) throws UnsupportedEncodingException {
String jsonStr = json.toString();
if (jsonStr == null) {
Debug.logError("JSON Object was empty; fatal error!", module);
@@ -307,21 +305,17 @@ public class CommonEvents {
// This was added for security reason (OFBIZ-5409), you might need to remove the "//" prefix when handling the JSON response
// Though normally you simply have to access the data you want, so should not be annoyed by the "//" prefix
if ("GET".equalsIgnoreCase(httpMethod)) {
- Debug.logWarning("for security reason (OFBIZ-5409) the the '//' prefix was added handling the JSON response. " +
- "Normally you simply have to access the data you want, so should not be annoyed by the '//' prefix." +
- "You might need to remove it if you use Ajax GET responses (not recommended)." +
- "In case, the util.js scrpt is there to help you", module);
+ Debug.logWarning("for security reason (OFBIZ-5409) the the '//' prefix was added handling the JSON response. "
+ + "Normally you simply have to access the data you want, so should not be annoyed by the '//' prefix."
+ + "You might need to remove it if you use Ajax GET responses (not recommended)."
+ + "In case, the util.js scrpt is there to help you", module);
jsonStr = "//" + jsonStr;
}
// set the X-JSON content type
response.setContentType("application/x-json");
// jsonStr.length is not reliable for unicode characters
- try {
- response.setContentLength(jsonStr.getBytes("UTF8").length);
- } catch (UnsupportedEncodingException e) {
- Debug.logError("Problems with Json encoding: " + e, module);
- }
+ response.setContentLength(jsonStr.getBytes("UTF8").length);
// return the JSON String
Writer out;
@@ -334,81 +328,65 @@ public class CommonEvents {
}
}
-
- public static String getJSONuiLabelArray(HttpServletRequest request, HttpServletResponse response) {
- String requiredLabels = request.getParameter("requiredLabels");
-
- JSONObject uiLabelObject = null;
- if (UtilValidate.isNotEmpty(requiredLabels)) {
- // Transform JSON String to Object
- uiLabelObject = (JSONObject) JSONSerializer.toJSON(requiredLabels);
+ public static String getJSONuiLabelArray(HttpServletRequest request, HttpServletResponse response)
+ throws UnsupportedEncodingException, IOException {
+ // Format - {resource1 : [key1, key2 ...], resource2 : [key1, key2, ...], ...}
+ String jsonString = request.getParameter("requiredLabels");
+ Map<String, List<String>> uiLabelObject = null;
+ if (UtilValidate.isNotEmpty(jsonString)) {
+ JSON json = JSON.from(jsonString);
+ uiLabelObject = UtilGenerics.<Map<String, List<String>>> cast(json.toObject(Map.class));
+ }
+ if (UtilValidate.isEmpty(uiLabelObject)) {
+ Debug.logError("No resource and labels found in JSON string: " + jsonString, module);
+ return "error";
}
-
- JSONObject jsonUiLabel = new JSONObject();
Locale locale = request.getLocale();
- if(!uiLabelObject.isEmpty()) {
- Set<String> resourceSet = UtilGenerics.checkSet(uiLabelObject.keySet());
- // Iterate over the resouce set
- for (String resource : resourceSet) {
- JSONArray labels = uiLabelObject.getJSONArray(resource);
- if (labels.isEmpty() || labels == null) {
- continue;
+ Map<String, List<String>> uiLabelMap = new HashMap<String, List<String>>();
+ Set<Map.Entry<String, List<String>>> entrySet = uiLabelObject.entrySet();
+ for (Map.Entry<String, List<String>> entry : entrySet) {
+ String resource = entry.getKey();
+ List<String> resourceKeys = entry.getValue();
+ if (resourceKeys != null) {
+ List<String> labels = new ArrayList<String>(resourceKeys.size());
+ for (String resourceKey : resourceKeys) {
+ String label = UtilProperties.getMessage(resource, resourceKey, locale);
+ labels.add(label);
}
-
- // Iterate over the uiLabel List
- Iterator<String> jsonLabelIterator = UtilGenerics.cast(labels.iterator());
- JSONArray resourceLabelList = new JSONArray();
- while(jsonLabelIterator.hasNext()) {
- String label = jsonLabelIterator.next();
- String receivedLabel = UtilProperties.getMessage(resource, label, locale);
- if (UtilValidate.isNotEmpty(receivedLabel)) {
- resourceLabelList.add(receivedLabel);
- }
- }
- jsonUiLabel.element(resource, resourceLabelList);
+ uiLabelMap.put(resource, labels);
}
}
-
- writeJSONtoResponse(jsonUiLabel, request.getMethod(), response);
+ writeJSONtoResponse(JSON.from(uiLabelMap), request.getMethod(), response);
return "success";
}
- public static String getJSONuiLabel(HttpServletRequest request, HttpServletResponse response) {
- String requiredLabels = request.getParameter("requiredLabel");
-
- JSONObject uiLabelObject = null;
- if (UtilValidate.isNotEmpty(requiredLabels)) {
- // Transform JSON String to Object
- uiLabelObject = (JSONObject) JSONSerializer.toJSON(requiredLabels);
+ public static String getJSONuiLabel(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException, IOException {
+ // Format - {resource : key}
+ String jsonString = request.getParameter("requiredLabel");
+ Map<String, String> uiLabelObject = null;
+ if (UtilValidate.isNotEmpty(jsonString)) {
+ JSON json = JSON.from(jsonString);
+ uiLabelObject = UtilGenerics.<Map<String, String>>cast(json.toObject(Map.class));
+ }
+ if (UtilValidate.isEmpty(uiLabelObject)) {
+ Debug.logError("No resource and labels found in JSON string: " + jsonString, module);
+ return "error";
+ } else if (uiLabelObject.size() > 1) {
+ Debug.logError("More than one resource found, please use the method: getJSONuiLabelArray", module);
+ return "error";
}
-
- JSONArray jsonUiLabel = new JSONArray();
Locale locale = request.getLocale();
- if(!uiLabelObject.isEmpty()) {
- Set<String> resourceSet = UtilGenerics.checkSet(uiLabelObject.keySet());
- // Iterate over the resource set
- // here we need a keySet because we don't now which label resource to load
- // the key set should have the size one, if greater or empty error should returned
- if (UtilValidate.isEmpty(resourceSet)) {
- Debug.logError("No resource and labels found", module);
- return "error";
- } else if (resourceSet.size() > 1) {
- Debug.logError("More than one resource found, please use the method: getJSONuiLabelArray", module);
- return "error";
- }
-
- for (String resource : resourceSet) {
- String label = uiLabelObject.getString(resource);
- if (UtilValidate.isEmail(label)) {
- continue;
- }
-
- String receivedLabel = UtilProperties.getMessage(resource, label, locale);
- jsonUiLabel.add(receivedLabel);
+ Map<String, String> uiLabelMap = new HashMap<String, String>();
+ Set<Map.Entry<String, String>> entrySet = uiLabelObject.entrySet();
+ for (Map.Entry<String, String> entry : entrySet) {
+ String resource = entry.getKey();
+ String resourceKey = entry.getValue();
+ if (resourceKey != null) {
+ String label = UtilProperties.getMessage(resource, resourceKey, locale);
+ uiLabelMap.put(resource, label);
}
}
-
- writeJSONtoResponse(jsonUiLabel, request.getMethod(), response);
+ writeJSONtoResponse(JSON.from(uiLabelMap), request.getMethod(), response);
return "success";
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java Sat Nov 1 09:06:42 2014
@@ -37,7 +37,9 @@ import java.util.concurrent.atomic.Atomi
import javax.sql.rowset.serial.SerialBlob;
import org.ofbiz.base.concurrent.ExecutionPool;
+import org.ofbiz.base.lang.JSON;
import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.ObjectType;
import org.ofbiz.base.util.Observable;
import org.ofbiz.base.util.Observer;
import org.ofbiz.base.util.UtilDateTime;
@@ -1209,6 +1211,23 @@ public class EntityTestSuite extends Ent
assertTrue("One big transaction was not faster than several small ones", totalTimeOneTransaction < totalTimeSeveralSmallTransactions);
}
+ public void testConverters() throws Exception {
+ // Must use the default delegator because the deserialized GenericValue can't
+ // find the randomized one.
+ Delegator localDelegator = DelegatorFactory.getDelegator("default");
+ GenericValue testValue = localDelegator.create("Testing", "testingId", "JSON_TEST", "testingTypeId", "TEST-UPDATE-1",
+ "description", "Testing JSON Converters", "testingSize", (long) 123, "testingDate",
+ new Timestamp(System.currentTimeMillis()));
+ assertNotNull("Created GenericValue not null", testValue);
+ JSON json = (JSON) ObjectType.simpleTypeConvert(testValue, "org.ofbiz.base.lang.JSON", null, null);
+ assertNotNull("JSON instance not null", json);
+ GenericValue convertedValue = (GenericValue) ObjectType.simpleTypeConvert(json, "org.ofbiz.entity.GenericValue", null,
+ null);
+ assertNotNull("GenericValue converted from JSON not null", convertedValue);
+ assertEquals("GenericValue converted from JSON equals original value", testValue, convertedValue);
+ testValue.remove();
+ }
+
private final class TestObserver implements Observer {
private Observable observable;
private Object arg;
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/Converters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/Converters.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/Converters.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/Converters.java Sat Nov 1 09:06:42 2014
@@ -18,19 +18,79 @@
*******************************************************************************/
package org.ofbiz.entity.util;
+import java.io.IOException;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.ofbiz.base.conversion.AbstractConverter;
import org.ofbiz.base.conversion.ConversionException;
import org.ofbiz.base.conversion.ConverterLoader;
+import org.ofbiz.base.lang.JSON;
+import org.ofbiz.base.util.ObjectType;
+import org.ofbiz.base.util.UtilGenerics;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.DelegatorFactory;
import org.ofbiz.entity.GenericEntity;
import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.model.ModelField;
+import org.ofbiz.entity.model.ModelFieldType;
/** Entity Engine <code>Converter</code> classes. */
public class Converters implements ConverterLoader {
+
+ public static class JSONToGenericValue extends AbstractConverter<JSON, GenericValue> {
+ public JSONToGenericValue() {
+ super(JSON.class, GenericValue.class);
+ }
+
+ public GenericValue convert(JSON obj) throws ConversionException {
+ Map<String, Object> fieldMap;
+ try {
+ fieldMap = UtilGenerics.<Map<String, Object>>cast(obj.toObject(Map.class));
+ String delegatorName = (String) fieldMap.remove("_DELEGATOR_NAME_");
+ String entityName = (String) fieldMap.remove("_ENTITY_NAME_");
+ if (delegatorName == null || entityName == null) {
+ throw new ConversionException("Invalid JSON object");
+ }
+ Delegator delegator = DelegatorFactory.getDelegator(delegatorName);
+ GenericValue value = delegator.makeValue(entityName);
+ for (Map.Entry<String, Object> entry : fieldMap.entrySet()) {
+ String fieldName = entry.getKey();
+ Object fieldValue = entry.getValue();
+ ModelField field = value.getModelEntity().getField(fieldName);
+ ModelFieldType type = delegator.getEntityFieldType(value.getModelEntity(), field.getType());
+ value.set(fieldName, ObjectType.simpleTypeConvert(fieldValue, type.getJavaType(), null, null));
+ }
+ return value;
+ } catch (ConversionException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new ConversionException(e);
+ }
+ }
+ }
+
+ public static class GenericValueToJSON extends AbstractConverter<GenericValue, JSON> {
+ public GenericValueToJSON() {
+ super(GenericValue.class, JSON.class);
+ }
+
+ public JSON convert(GenericValue obj) throws ConversionException {
+ Map<String, Object> fieldMap = new HashMap<String, Object>(obj);
+ fieldMap.put("_DELEGATOR_NAME_", obj.getDelegator().getDelegatorName());
+ fieldMap.put("_ENTITY_NAME_", obj.getEntityName());
+ try {
+ return JSON.from(fieldMap);
+ } catch (IOException e) {
+ throw new ConversionException(e);
+ }
+ }
+ }
+
public static class GenericValueToList extends AbstractConverter<GenericValue, List<GenericValue>> {
public GenericValueToList() {
super(GenericValue.class, List.class);
Modified: ofbiz/trunk/framework/sql/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/build.xml?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/build.xml (original)
+++ ofbiz/trunk/framework/sql/build.xml Sat Nov 1 09:06:42 2014
@@ -45,11 +45,8 @@ under the License.
<file name="org/ofbiz/sql/test/ValuesTest.java"/>
<file name="org/ofbiz/sql/test/ConditionsTest.java"/>
<file name="org/ofbiz/sql/test/SelectTest.java"/>
- <file name="org/ofbiz/sql/test/SQLTest.java"/>
</filelist>
<patternset id="cobertura-src-dirs">
- <include name="build/gen-src/javacc"/>
- <include name="build/gen-src/jjtree"/>
<include name="src"/>
</patternset>
@@ -57,21 +54,6 @@ under the License.
<!-- Compilation of the source files -->
<!-- ================================================================== -->
- <target name="gen-src">
- <ofbiz-javacc dir="org/ofbiz/sql" file="Parser"/>
- </target>
-
- <target name="classes" depends="prepare,gen-src">
- <javac17>
- <sourcepath>
- <dirset dir="build/gen-src">
- <include name="javacc"/>
- <include name="jjtree"/>
- </dirset>
- </sourcepath>
- </javac17>
- </target>
-
<target name="jar" depends="classes">
<main-jar/>
<test-jar/>
@@ -83,10 +65,6 @@ under the License.
<target name="docs" depends="prepare-docs">
<default-javadoc>
- <fileset dir="build/gen-src/javacc" defaultexcludes="yes">
- <patternset refid="src.inc.set"/>
- <patternset refid="src.exc.set"/>
- </fileset>
<fileset dir="${src.dir}" defaultexcludes="yes">
<patternset refid="src.inc.set"/>
<patternset refid="src.exc.set"/>
Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SelectTest.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SelectTest.java?rev=1635901&r1=1635900&r2=1635901&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SelectTest.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/test/SelectTest.java Sat Nov 1 09:06:42 2014
@@ -18,7 +18,6 @@
*/
package org.ofbiz.sql.test;
-import java.io.StringReader;
import java.util.Collections;
import java.util.Set;
@@ -30,7 +29,6 @@ import org.ofbiz.sql.FieldDef;
import org.ofbiz.sql.FieldValue;
import org.ofbiz.sql.FunctionCall;
import org.ofbiz.sql.OrderByItem;
-import org.ofbiz.sql.Parser;
import org.ofbiz.sql.StaticValue;
import org.ofbiz.sql.Value;
@@ -44,10 +42,6 @@ public class SelectTest extends GenericT
super(name);
}
- private static Parser parser(Object v) {
- return new Parser(new StringReader(v.toString()));
- }
-
private static <V> void basicTest(String label, Class<V> clz, V v, V o, boolean matches) {
assertNotEquals(label + ":not-equals-this", v, SelectTest.class);
if (o != null) {
@@ -62,7 +56,6 @@ public class SelectTest extends GenericT
private static void fieldAllTest(String label, FieldAll v, String alias, Set<String> exclude, FieldAll o, boolean matches) throws Exception {
assertEquals(label + ":alias", alias, v.getAlias());
assertEquals(label + ":exclude", exclude, set(v));
- assertEquals(label + ":parse", v, parser(v).parse_FieldAll());
basicTest(label, FieldAll.class, v, o, matches);
}
@@ -83,7 +76,6 @@ public class SelectTest extends GenericT
assertEquals(label + ":value", value, v.getValue());
assertEquals(label + ":alias", alias, v.getAlias());
assertEquals(label + ":default-name", defaultName, v.getDefaultName());
- assertEquals(label + ":parse", v, parser(v).parse_FieldDef());
basicTest(label, FieldDef.class, v, o, matches);
}
@@ -104,7 +96,6 @@ public class SelectTest extends GenericT
assertEquals(label + ":order", order, v.getOrder());
assertEquals(label + ":nulls", nulls, v.getNulls());
assertEquals(label + ":value", value, v.getValue());
- assertEquals(label + ":parse", v, parser(v).parse_OrderByItem());
basicTest(label, OrderByItem.class, v, o, matches);
}