svn commit: r1628129 [1/2] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/accounting/src/org/ofbiz/accounting/payment/ applications/content/script/org/ofbiz/content/compdoc/ applications/content/script/org/ofbiz/content...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1628129 [1/2] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/accounting/src/org/ofbiz/accounting/payment/ applications/content/script/org/ofbiz/content/compdoc/ applications/content/script/org/ofbiz/content...

jleroux@apache.org
Author: jleroux
Date: Mon Sep 29 07:08:04 2014
New Revision: 1628129

URL: http://svn.apache.org/r1628129
Log:
Keeps in sync with OFBiz trunk HEAD

Added:
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/config/README
      - copied unchanged from r1628128, ofbiz/trunk/framework/base/config/README
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
      - copied unchanged from r1628128, ofbiz/trunk/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
Removed:
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/src/META-INF/services/
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/cert/
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/DependencyPool.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/GeneratedResult.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/TTLCachedObject.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/TTLObject.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/test/
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/lang/ObjectWrapper.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/MemoryHelper.java
Modified:
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/   (props changed)
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/compdoc/CompDocServices.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/content/ContentServices.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/script/org/ofbiz/product/feature/ProductFeatureServices.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/servicedef/services_feature.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/build.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/build.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/build.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/ExecutionPool.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/HttpClient.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/testdef/basetests.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/src/org/ofbiz/catalina/container/CatalinaContainer.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/build.xml
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/dtd/entity-config.xsd
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/config/model/Datasource.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelper.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/datasource/GenericHelperDAO.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/jdbc/DatabaseUtil.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/minilang/src/org/ofbiz/minilang/test/MiniLangTests.java
    ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/cmssite/template/cms/HtmlHead.ftl

Propchange: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/
------------------------------------------------------------------------------
  Merged /ofbiz/trunk:r1626687-1628128

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/payment/PaymentWorker.java Mon Sep 29 07:08:04 2014
@@ -160,7 +160,7 @@ public class PaymentWorker {
         try {
             paymentAddresses = delegator.findByAnd("PartyContactWithPurpose",
                     UtilMisc.toMap("partyId", partyId, "contactMechPurposeTypeId", "PAYMENT_LOCATION"),
-                    UtilMisc.toList("-fromDate"), false);
+                    UtilMisc.toList("-purposeFromDate"), false);
             paymentAddresses = EntityUtil.filterByDate(paymentAddresses, null, "contactFromDate", "contactThruDate", true);
             paymentAddresses = EntityUtil.filterByDate(paymentAddresses, null, "purposeFromDate", "purposeThruDate", true);
         } catch (GenericEntityException e) {

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/compdoc/CompDocServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/compdoc/CompDocServices.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/compdoc/CompDocServices.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/compdoc/CompDocServices.xml Mon Sep 29 07:08:04 2014
@@ -197,12 +197,16 @@ under the License.
             <results-to-map map-name="pResults"/>
         </call-service>
         <!--  put all the result fields in this service's result -->
-        <iterate-map map="pResults" key="key" value="val">
-            <if-compare field="key" operator="equals" value="responseMessage">
-                <continue/>
-            </if-compare>
-            <field-to-result field="val" result-name="${key}"/>
-        </iterate-map>
+        <field-to-result field="pResults.contentRevisionSeqId" result-name="contentRevisionSeqId"/>
+        <field-to-result field="pResults.contentId" result-name="contentId"/>
+        <field-to-result field="pResults.dataResourceId" result-name="dataResourceId"/>
+        <field-to-result field="pResults.drDataResourceId" result-name="drDataResourceId"/>
+        <field-to-result field="pResults.caContentIdTo" result-name="caContentIdTo"/>
+        <field-to-result field="pResults.caContentId" result-name="caContentId"/>
+        <field-to-result field="pResults.caContentAssocTypeId" result-name="caContentAssocTypeId"/>
+        <field-to-result field="pResults.caFromDate" result-name="caFromDate"/>
+        <field-to-result field="pResults.caSequenceNum" result-name="caSequenceNum"/>
+        <field-to-result field="pResults.roleTypeList" result-name="roleTypeList"/>
 
         <log level="info" message="pResults : ${pResults}"/>
         <if-not-empty field="pResults.contentIdTo">

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/content/ContentServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/content/ContentServices.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/content/ContentServices.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/script/org/ofbiz/content/content/ContentServices.xml Mon Sep 29 07:08:04 2014
@@ -779,13 +779,17 @@
             <results-to-map map-name="persistOut"/>
         </call-service>
 
-        <set-service-fields service-name="createCommContentDataResource" mode="OUT" map="persistOut" to-map="filteredPersistOut"/>
-        <iterate-map key="key" value="val" map="filteredPersistOut">
-            <if-compare field="key" operator="equals" value="responseMessage">
-                <continue/>
-            </if-compare>
-            <field-to-result field="val" result-name="${key}"/>
-        </iterate-map>
+        <field-to-result field="persistOut.contentId" result-name="contentId"/>
+        <field-to-result field="persistOut.dataResourceId" result-name="dataResourceId"/>
+        <field-to-result field="persistOut.drDataResourceId" result-name="drDataResourceId"/>
+        <field-to-result field="persistOut.caContentIdTo" result-name="caContentIdTo"/>
+        <field-to-result field="persistOut.caContentId" result-name="caContentId"/>
+        <field-to-result field="persistOut.caContentAssocTypeId" result-name="caContentAssocTypeId"/>
+        <field-to-result field="persistOut.caFromDate" result-name="caFromDate"/>
+        <field-to-result field="persistOut.caSequenceNum" result-name="caSequenceNum"/>
+        <field-to-result field="persistOut.roleTypeList" result-name="roleTypeList"/>
+        <field-to-result field="persistOut.fromDate" result-name="fromDate"/>
+
         <set field="mapIn.contentId"  from-field="persistOut.contentId"/>
         <set field="mapIn.communicationEventId"  from-field="parameters.communicationEventId"/>
         <set field="mapIn.sequenceNum"  from-field="parameters.sequenceNum"/>
@@ -819,12 +823,15 @@
         <call-service service-name="updateCommEventContentAssoc" in-map-name="mapIn">
         </call-service>
 
-        <iterate-map key="key" value="val" map="persistOut">
-            <if-compare field="key" operator="equals" value="responseMessage">
-                <continue/>
-            </if-compare>
-            <field-to-result field="val" result-name="${key}"/>
-        </iterate-map>
+        <field-to-result field="persistOut.contentId" result-name="contentId"/>
+        <field-to-result field="persistOut.dataResourceId" result-name="dataResourceId"/>
+        <field-to-result field="persistOut.drDataResourceId" result-name="drDataResourceId"/>
+        <field-to-result field="persistOut.caContentIdTo" result-name="caContentIdTo"/>
+        <field-to-result field="persistOut.caContentId" result-name="caContentId"/>
+        <field-to-result field="persistOut.caContentAssocTypeId" result-name="caContentAssocTypeId"/>
+        <field-to-result field="persistOut.caFromDate" result-name="caFromDate"/>
+        <field-to-result field="persistOut.caSequenceNum" result-name="caSequenceNum"/>
+        <field-to-result field="persistOut.roleTypeList" result-name="roleTypeList"/>
 
     </simple-method>
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/cms/CmsEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/cms/CmsEvents.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/cms/CmsEvents.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/cms/CmsEvents.java Mon Sep 29 07:08:04 2014
@@ -79,6 +79,7 @@ public class CmsEvents {
         // is this a default request or called from a defined request mapping
         String targetRequest = (String) request.getAttribute("targetRequestUri");
         String actualRequest = (String) request.getAttribute("thisRequestUri");
+
         if (targetRequest != null) {
             targetRequest = targetRequest.replaceAll("\\W", "");
         } else {
@@ -139,7 +140,6 @@ public class CmsEvents {
             if (pathInfo.endsWith("/")) {
                 pathInfo = pathInfo.substring(0, pathInfo.length() - 1);
             }
-            Debug.logInfo("Path INFO for Alias: " + pathInfo, module);
 
             GenericValue pathAlias = null;
             try {
@@ -155,7 +155,6 @@ public class CmsEvents {
                     if (!alias.startsWith("/")) {
                        alias = "/" + alias;
                     }
-
                     RequestDispatcher rd = request.getRequestDispatcher(request.getServletPath() + alias);
                     try {
                         rd.forward(request, response);
@@ -268,8 +267,6 @@ public class CmsEvents {
                     // TODO: replace "screen" to support dynamic rendering of different output
                     FormStringRenderer formStringRenderer = new MacroFormRenderer(UtilProperties.getPropertyValue("widget", "screen.formrenderer"), request, response);
                     templateMap.put("formStringRenderer", formStringRenderer);
-                    //include DOCTYPE for cms screens
-                    writer.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
                     
                     // if use web analytics
                     List<GenericValue> webAnalytics = delegator.findByAnd("WebAnalyticsConfig", UtilMisc.toMap("webSiteId", webSiteId), null, false);

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy Mon Sep 29 07:08:04 2014
@@ -577,7 +577,7 @@ if (product) {
     context.availableInventory = availableInventory;
 
     // get product associations
-    alsoBoughtProducts = dispatcher.runSync("getAssociatedProducts", [productId : productId, type : "ALSO_BOUGHT", checkViewAllow : true, prodCatalogId : currentCatalogId, bidirectional : true, sortDescending : true]);
+    alsoBoughtProducts = dispatcher.runSync("getAssociatedProducts", [productId : productId, type : "ALSO_BOUGHT", checkViewAllow : true, prodCatalogId : currentCatalogId, bidirectional : false, sortDescending : true]);
     context.alsoBoughtProducts = alsoBoughtProducts.assocProducts;
 
     obsoleteProducts = dispatcher.runSync("getAssociatedProducts", [productId : productId, type : "PRODUCT_OBSOLESCENCE", checkViewAllow : true, prodCatalogId : currentCatalogId]);

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/communication/CommunicationEventServices.java Mon Sep 29 07:08:04 2014
@@ -27,6 +27,8 @@ import java.net.URL;
 import java.nio.ByteBuffer;
 import java.sql.Timestamp;
 import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -42,9 +44,6 @@ import javax.mail.internet.InternetAddre
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import javolution.util.FastList;
-import javolution.util.FastMap;
-
 import org.ofbiz.base.location.FlexibleLocation;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.StringUtil;
@@ -84,7 +83,7 @@ public class CommunicationEventServices
         String communicationEventId = (String) context.get("communicationEventId");
 
         Map<String, Object> result = ServiceUtil.returnSuccess();
-        List<Object> errorMessages = FastList.newInstance(); // used to keep a list of all error messages returned from sending emails to contact list
+        List<Object> errorMessages = new LinkedList<Object>(); // used to keep a list of all error messages returned from sending emails to contact list
 
         try {
             // find the communication event and make sure that it is actually an email
@@ -116,7 +115,7 @@ public class CommunicationEventServices
             }
 
             // prepare the email
-            Map<String, Object> sendMailParams = FastMap.newInstance();
+            Map<String, Object> sendMailParams = new HashMap<String, Object>();
             sendMailParams.put("sendFrom", communicationEvent.getRelatedOne("FromContactMech", false).getString("infoString"));
             sendMailParams.put("subject", communicationEvent.getString("subject"));
             sendMailParams.put("contentType", communicationEvent.getString("contentMimeTypeId"));
@@ -129,7 +128,7 @@ public class CommunicationEventServices
             List <GenericValue> comEventContents = communicationEvent.getRelated("CommEventContentAssoc", null, null, false);
             if (UtilValidate.isNotEmpty(comEventContents)) {
                 isMultiPart = true;
-                List<Map<String, ? extends Object>> bodyParts = FastList.newInstance();
+                List<Map<String, ? extends Object>> bodyParts = new LinkedList<Map<String,? extends Object>>();
                 if (UtilValidate.isNotEmpty(communicationEvent.getString("content"))) {
                     bodyParts.add(UtilMisc.<String, Object>toMap("content", communicationEvent.getString("content"), "type", communicationEvent.getString("contentMimeTypeId")));
                 }
@@ -241,7 +240,7 @@ public class CommunicationEventServices
 
             } else {
                 // Call the sendEmailToContactList service if there's a contactListId present
-                Map<String, Object> sendEmailToContactListContext = FastMap.newInstance();
+                Map<String, Object> sendEmailToContactListContext = new HashMap<String, Object>();
                 sendEmailToContactListContext.put("contactListId", communicationEvent.getString("contactListId"));
                 sendEmailToContactListContext.put("communicationEventId", communicationEventId);
                 sendEmailToContactListContext.put("userLogin", userLogin);
@@ -273,7 +272,7 @@ public class CommunicationEventServices
         GenericValue userLogin = (GenericValue) context.get("userLogin");
         Locale locale = (Locale) context.get("locale");
 
-        List<Object> errorMessages = FastList.newInstance();
+        List<Object> errorMessages = new LinkedList<Object>();
         String errorCallingUpdateContactListPartyService = UtilProperties.getMessage(resource, "commeventservices.errorCallingUpdateContactListPartyService", locale);
         String errorCallingSendMailService = UtilProperties.getMessage(resource, "commeventservices.errorCallingSendMailService", locale);
         String errorInSendEmailToContactListService = UtilProperties.getMessage(resource, "commeventservices.errorInSendEmailToContactListService", locale);
@@ -289,7 +288,7 @@ public class CommunicationEventServices
             GenericValue communicationEvent = delegator.findOne("CommunicationEvent", UtilMisc.toMap("communicationEventId", communicationEventId), false);
             GenericValue contactList = delegator.findOne("ContactList", UtilMisc.toMap("contactListId", contactListId), false);
 
-            Map<String, Object> sendMailParams = FastMap.newInstance();
+            Map<String, Object> sendMailParams = new HashMap<String, Object>();
             sendMailParams.put("sendFrom", communicationEvent.getRelatedOne("FromContactMech", false).getString("infoString"));
             sendMailParams.put("subject", communicationEvent.getString("subject"));
             sendMailParams.put("contentType", communicationEvent.getString("contentMimeTypeId"));
@@ -346,7 +345,6 @@ public class CommunicationEventServices
 
                     sendMailParams.put("sendTo", emailAddress);
                     sendMailParams.put("partyId", partyId);
-                    
 
                     // if it is a NEWSLETTER then we do not want the outgoing emails stored, so put a communicationEventId in the sendMail context to prevent storeEmailAsCommunicationEvent from running
                     /*
@@ -371,19 +369,19 @@ public class CommunicationEventServices
                         // There was a successful earlier attempt, so skip this address
                         continue;
                     }
-                    
+
                     // Send e-mail
                     Debug.logInfo("Sending email to contact list [" + contactListId + "] party [" + partyId + "] : " + emailAddress, module);
                     // Make the attempt to send the email to the address
-                    
+
                     Map<String, Object> tmpResult = null;
-                    
+
                     // Retrieve a contact list party status
                     List<GenericValue> contactListPartyStatuses = delegator.findByAnd("ContactListPartyStatus", UtilMisc.toMap("contactListId", contactListId, "partyId", contactListPartyAndContactMech.getString("partyId"), "fromDate", contactListPartyAndContactMech.getTimestamp("fromDate"), "statusId", "CLPT_ACCEPTED"), null, false);
                     GenericValue contactListPartyStatus = EntityUtil.getFirst(contactListPartyStatuses);
                     if (UtilValidate.isNotEmpty(contactListPartyStatus)) {
                         // prepare body parameters
-                        Map<String, Object> bodyParameters = FastMap.newInstance();
+                        Map<String, Object> bodyParameters = new HashMap<String, Object>();
                         bodyParameters.put("contactListId", contactListId);
                         bodyParameters.put("partyId", contactListPartyAndContactMech.getString("partyId"));
                         bodyParameters.put("preferredContactMechId", contactListPartyAndContactMech.getString("preferredContactMechId"));
@@ -409,7 +407,7 @@ public class CommunicationEventServices
                             }
                         }
                     }
-                    
+
                     // If the e-mail does not be sent then send normal e-mail
                     if (UtilValidate.isEmpty(tmpResult)) {
                         sendMailParams.put("body", communicationEvent.getString("content"));
@@ -576,7 +574,7 @@ public class CommunicationEventServices
 
         Timestamp now = UtilDateTime.nowTimestamp();
 
-        Map<String, Object> commEventMap = FastMap.newInstance();
+        Map<String, Object> commEventMap = new HashMap<String, Object>();
         commEventMap.put("communicationEventTypeId", "EMAIL_COMMUNICATION");
         commEventMap.put("contactMechTypeId", "EMAIL_ADDRESS");
         commEventMap.put("contactMechIdFrom", contactMechIdFrom);
@@ -624,7 +622,7 @@ public class CommunicationEventServices
         String communicationEventId = (String) context.get("communicationEventId");
         MimeMessageWrapper wrapper = (MimeMessageWrapper) context.get("messageWrapper");
 
-        Map<String, Object> commEventMap = FastMap.newInstance();
+        Map<String, Object> commEventMap = new HashMap<String, Object>();
         commEventMap.put("communicationEventId", communicationEventId);
         commEventMap.put("subject", wrapper.getSubject());
         commEventMap.put("statusId", "COM_COMPLETE");
@@ -789,7 +787,7 @@ public class CommunicationEventServices
             partyIdFrom = (String)result.get("partyId");
             contactMechIdFrom = (String)result.get("contactMechId");
 
-            Map<String, Object> commEventMap = FastMap.newInstance();
+            Map<String, Object> commEventMap = new HashMap<String, Object>();
             commEventMap.put("communicationEventTypeId", "AUTO_EMAIL_COMM");
             commEventMap.put("contactMechTypeId", "EMAIL_ADDRESS");
             commEventMap.put("messageId", messageId);
@@ -983,7 +981,7 @@ public class CommunicationEventServices
         if (attachmentIndexes.size() > 0) {
             Debug.logInfo("=== message has attachments [" + attachmentIndexes.size() + "] =====", module);
             for (String attachmentIdx : attachmentIndexes) {
-                Map<String, Object> attachmentMap = FastMap.newInstance();
+                Map<String, Object> attachmentMap = new HashMap<String, Object>();
                 attachmentMap.put("communicationEventId", communicationEventId);
                 attachmentMap.put("contentTypeId", "DOCUMENT");
                 attachmentMap.put("mimeTypeId", "text/html");
@@ -1082,7 +1080,7 @@ public class CommunicationEventServices
         }
 
         if (emailAddress != null) {
-            map = FastMap.newInstance();
+            map = new HashMap<String, Object>();
             map.put("address", emailAddress.getAddress());
             map.put("userLogin", userLogin);
             result = dispatcher.runSync("findPartyFromEmailAddress", map);
@@ -1097,7 +1095,7 @@ public class CommunicationEventServices
     private static List<Map<String, Object>> buildListOfPartyInfoFromEmailAddresses(Address [] addresses, GenericValue userLogin, LocalDispatcher dispatcher) throws GenericServiceException {
         InternetAddress emailAddress = null;
         Map<String, Object> result = null;
-        List<Map<String, Object>> tempResults = FastList.newInstance();
+        List<Map<String, Object>> tempResults = new LinkedList<Map<String,Object>>();
 
         if (addresses != null) {
             for (Address addr: addresses) {
@@ -1123,7 +1121,7 @@ public class CommunicationEventServices
     private static List<Map<String, Object>> buildListOfWorkEffortInfoFromEmailAddresses(Address [] addresses, GenericValue userLogin, LocalDispatcher dispatcher) throws GenericServiceException {
         InternetAddress emailAddress = null;
         Map<String, Object> result = null;
-        List<Map<String, Object>> tempResults = FastList.newInstance();
+        List<Map<String, Object>> tempResults = new LinkedList<Map<String,Object>>();
         String caseInsensitiveEmail = org.ofbiz.base.util.UtilProperties.getPropertyValue("general.properties", "mail.address.caseInsensitive", "N");
 
         if (addresses != null) {
@@ -1132,7 +1130,7 @@ public class CommunicationEventServices
                     emailAddress = (InternetAddress)addr;
 
                     if (emailAddress != null) {
-                        Map<String, String> inputFields = FastMap.newInstance();
+                        Map<String, String> inputFields = new HashMap<String, String>();
                         inputFields.put("infoString", emailAddress.getAddress());
                         inputFields.put("infoString_ic", caseInsensitiveEmail);
                         result = dispatcher.runSync("performFind", UtilMisc.<String, Object>toMap("entityName", "WorkEffortContactMechView"
@@ -1226,7 +1224,7 @@ public class CommunicationEventServices
                             GenericValue value = values.get(0);
 
                             // update the communication event status
-                            Map<String, Object> updateCtx = FastMap.newInstance();
+                            Map<String, Object> updateCtx = new HashMap<String, Object>();
                             updateCtx.put("communicationEventId", value.getString("communicationEventId"));
                             updateCtx.put("statusId", "COM_BOUNCED");
                             updateCtx.put("userLogin", context.get("userLogin"));
@@ -1257,7 +1255,7 @@ public class CommunicationEventServices
                                 // there should be only one; unique key
                                 GenericValue value = values.get(0);
 
-                                Map<String, Object> updateCtx = FastMap.newInstance();
+                                Map<String, Object> updateCtx = new HashMap<String, Object>();
                                 updateCtx.put("communicationEventId", value.getString("communicationEventId"));
                                 updateCtx.put("contactListId", value.getString("contactListId"));
                                 updateCtx.put("contactMechId", value.getString("contactMechId"));

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/script/org/ofbiz/product/feature/ProductFeatureServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/script/org/ofbiz/product/feature/ProductFeatureServices.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/script/org/ofbiz/product/feature/ProductFeatureServices.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/script/org/ofbiz/product/feature/ProductFeatureServices.xml Mon Sep 29 07:08:04 2014
@@ -20,101 +20,6 @@ under the License.
 
 <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods-v2.xsd">
-    <simple-method method-name="createProductFeatureCategory" short-description="Create Product Feature Category">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value entity-name="ProductFeatureCategory" value-field="newEntity"/>
-        <set-nonpk-fields value-field="newEntity" map="parameters"/>
-
-        <sequenced-id sequence-name="ProductFeatureCategory" field="newEntity.productFeatureCategoryId"/>
-        <field-to-result field="newEntity.productFeatureCategoryId" result-name="productFeatureCategoryId"/>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeatureCategory" short-description="Update Product Feature Category">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <entity-one entity-name="ProductFeatureCategory" value-field="productFeatureCategory"/>
-        <set-nonpk-fields value-field="productFeatureCategory" map="parameters"/>
-        <store-value value-field="productFeatureCategory"/>
-    </simple-method>
-
-    <simple-method method-name="createProductFeature" short-description="Create Product Feature">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductFeature"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <if-empty field="parameters.productFeatureId">
-            <sequenced-id sequence-name="ProductFeature" field="newEntity.productFeatureId"/>
-        <else>
-            <set field="newEntity.productFeatureId" from-field="parameters.productFeatureId"/>
-        </else>
-        </if-empty>
-        <field-to-result field="newEntity.productFeatureId" result-name="productFeatureId"/>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeature" short-description="Update Product Feature">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <entity-one entity-name="ProductFeature" value-field="productFeature"/>
-        <set-nonpk-fields map="parameters" value-field="productFeature"/>
-        <store-value value-field="productFeature"/>
-    </simple-method>
-
-    <simple-method method-name="applyFeatureToProduct" short-description="Apply Feature to Product">
-        <set field="callingMethodName" value="applyFeatureToProduct"/>
-        <set field="checkAction" value="CREATE"/>
-        <call-simple-method method-name="checkProductRelatedPermission" xml-resource="component://product/script/org/ofbiz/product/product/ProductServices.xml"/>
-        <check-errors/>
-
-        <if-empty field="parameters.fromDate">
-            <now-timestamp field="parameters.fromDate"/>
-        </if-empty>
-        <make-value value-field="newEntity" entity-name="ProductFeatureAppl"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateFeatureToProductApplication" short-description="Update Feature to Product Application">
-        <set field="callingMethodName" value="updateFeatureToProductApplication"/>
-        <set field="checkAction" value="UPDATE"/>
-        <call-simple-method method-name="checkProductRelatedPermission" xml-resource="component://product/script/org/ofbiz/product/product/ProductServices.xml"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductFeatureAppl" value-field="productFeatureAppl"/>
-        <set-nonpk-fields map="parameters" value-field="productFeatureAppl"/>
-        <store-value value-field="productFeatureAppl"/>
-    </simple-method>
-    <simple-method method-name="removeFeatureFromProduct" short-description="Remove Feature from Product">
-        <set field="callingMethodName" value="removeFeatureFromProduct"/>
-        <set field="checkAction" value="DELETE"/>
-        <call-simple-method method-name="checkProductRelatedPermission" xml-resource="component://product/script/org/ofbiz/product/product/ProductServices.xml"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductFeatureAppl" value-field="productFeatureAppl"/>
-        <!-- This is old code that just sets the thru date; the current codes actually removes the db row
-        <if-empty field="parameters.thruDate">
-            <now-timestamp field="nowStamp"/>
-            <env-to-field env-name="nowStamp" field-name="thruDate" map-name="parameters"/>
-        </if-empty>
-        <field-to-field field-name="thruDate" map-name="parameters" to-map-name="productFeatureAppl"/>
-        <store-value value-field="productFeatureAppl"/>
-        -->
-        <remove-value value-field="productFeatureAppl"/>
-    </simple-method>
 
     <simple-method method-name="applyFeatureToProductFromTypeAndCode" short-description="Apply Feature to Product using Feature Type and ID Code">
         <set field="callingMethodName" value="applyFeatureToProductFromTypeAndCode"/>
@@ -139,176 +44,6 @@ under the License.
             <call-service service-name="applyFeatureToProduct" in-map-name="applyFeatureContext"/>
         </iterate>
     </simple-method>
-
-    <!-- Methods for ProductFeatureCategoryAppl -->
-    <simple-method method-name="createProductFeatureCategoryAppl" short-description="Create an Product Feature Category Application">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductFeatureCategoryAppl"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-
-        <if-empty field="newEntity.fromDate">
-            <now-timestamp field="newEntity.fromDate"/>
-        </if-empty>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeatureCategoryAppl" short-description="Update an Product Feature Category Application">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureCategoryAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="removeProductFeatureCategoryAppl" short-description="Remove a Product Feature Category Application">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureCategoryAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
-    <!-- Methods for ProductFeatureCatGrpAppl -->
-    <simple-method method-name="createProductFeatureCatGrpAppl" short-description="Create a ProductFeatureGroup to ProductCategory Application">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductFeatureCatGrpAppl"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-
-        <if-empty field="newEntity.fromDate">
-            <now-timestamp field="newEntity.fromDate"/>
-        </if-empty>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeatureCatGrpAppl" short-description="Update a ProductFeatureGroup to ProductCategory Application">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureCatGrpAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="removeProductFeatureCatGrpAppl" short-description="Remove a ProductFeatureGroup to ProductCategory Application">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureCatGrpAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
-    <!-- ProductFeatureGroup Services -->
-    <simple-method method-name="createProductFeatureGroup" short-description="Create Product Feature Group">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductFeatureGroup"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-
-        <sequenced-id sequence-name="ProductFeatureGroup" field="newEntity.productFeatureGroupId"/>
-        <field-to-result field="newEntity.productFeatureGroupId" result-name="productFeatureGroupId"/>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeatureGroup" short-description="Update Product Feature Group">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <entity-one entity-name="ProductFeatureGroup" value-field="productFeatureGroup"/>
-        <set-nonpk-fields map="parameters" value-field="productFeatureGroup"/>
-        <store-value value-field="productFeatureGroup"/>
-    </simple-method>
-    <simple-method method-name="createProductFeatureGroupAppl" short-description="Create an Product Feature Group Application">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductFeatureGroupAppl"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-
-        <if-empty field="newEntity.fromDate">
-            <now-timestamp field="newEntity.fromDate"/>
-        </if-empty>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductFeatureGroupAppl" short-description="Update an Product Feature Group Application">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureGroupAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key entity-name="ProductFeatureGroupAppl" map="lookupKeyValue" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="removeProductFeatureGroupAppl" short-description="Remove a Product Feature Group Application">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureGroupAppl"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key entity-name="ProductFeatureGroupAppl" map="lookupKeyValue" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
-    <!-- Methods for ProductFeatureIactn -->
-    <simple-method method-name="createProductFeatureIactn" short-description="Create a Product Feature Interaction">
-        <check-permission permission="CATALOG" action="_CREATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-        <make-value value-field="newEntity" entity-name="ProductFeatureIactn"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="removeProductFeatureIactn" short-description="Remove a Product Feature Interaction">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureIactn"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
     <!-- Methods for ProductFeatureType -->
     <simple-method method-name="createProductFeatureType" short-description="Create a Product Feature Type">
         <check-permission permission="CATALOG" action="_CREATE">
@@ -346,30 +81,6 @@ under the License.
 
         <create-value value-field="newEntity"/>
     </simple-method>
-    <simple-method method-name="updateProductFeatureType" short-description="Update an Product Feature Type">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureType"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="removeProductFeatureType" short-description="Remove a Product Feature Type">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-
-        <make-value value-field="lookupKeyValue" entity-name="ProductFeatureType"/>
-        <set-pk-fields map="parameters" value-field="lookupKeyValue"/>
-        <find-by-primary-key map="lookupKeyValue" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
     <!-- create a new ProductFeatureApplAttr -->
     <simple-method method-name="createProductFeatureApplAttr" short-description="Create a ProductFeatureApplAttr">
         <check-permission permission="CATALOG" action="_CREATE">
@@ -394,70 +105,4 @@ under the License.
         <check-errors/>
     </simple-method>
 
-    <!-- update an existing ProductFeatureApplAttr -->
-    <simple-method method-name="updateProductFeatureApplAttr" short-description="Update an existing ProductFeatureApplAttr">
-        <check-permission permission="CATALOG" action="_UPDATE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogUpdatePermissionError"/>
-        </check-permission>
-        <check-errors/>
-        <entity-one entity-name="ProductFeatureApplAttr" value-field="productFeatureApplAttr" auto-field-map="true"/>
-        <check-errors/>
-        <set-nonpk-fields map="parameters" value-field="productFeatureApplAttr"/>
-        <store-value value-field="productFeatureApplAttr"/>
-        <check-errors/>
-    </simple-method>
-
-    <!-- remove an existing ProductFeatureApplAttr -->
-    <simple-method method-name="removeProductFeatureApplAttr" short-description="Remove an existing ProductFeatureApplAttr">
-        <check-permission permission="CATALOG" action="_DELETE">
-            <fail-property resource="ProductUiLabels" property="ProductCatalogDeletePermissionError"/>
-        </check-permission>
-        <check-errors/>
-        <entity-one entity-name="ProductFeatureApplAttr" value-field="productFeatureApplAttr" auto-field-map="true"/>
-        <check-errors/>
-        <remove-value value-field="productFeatureApplAttr"/>
-        <check-errors/>
-    </simple-method>
-
-    <!-- Feature Price Service -->
-    <simple-method method-name="createFeaturePrice" short-description="Create a Feature Price">
-        <make-value value-field="newEntity" entity-name="ProductFeaturePrice"/>
-        <if-empty field="parameters.productFeatureId">
-            <sequenced-id sequence-name="ProductFeaturePrice" field="parameters.productFeatureId"/>
-        </if-empty>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-
-        <now-timestamp field="nowTimestamp"/>
-
-        <if-empty field="newEntity.fromDate">
-            <set field="newEntity.fromDate" from-field="nowTimestamp"/>
-        </if-empty>
-        <field-to-result field="newEntity.fromDate" result-name="fromDate"/>
-
-        <set field="newEntity.lastModifiedDate" from-field="nowTimestamp"/>
-        <set field="newEntity.createdDate" from-field="nowTimestamp"/>
-        <set field="newEntity.lastModifiedByUserLogin" from-field="userLogin.userLoginId"/>
-        <set field="newEntity.createdByUserLogin" from-field="userLogin.userLoginId"/>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateFeaturePrice" short-description="Update a feature price">
-        <entity-one entity-name="ProductFeaturePrice" value-field="lookedUpValue"/>
-
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-
-        <now-timestamp field="nowTimestamp"/>
-        <set field="lookedUpValue.lastModifiedDate" from-field="nowTimestamp"/>
-        <set field="lookedUpValue.lastModifiedByUserLogin" from-field="userLogin.userLoginId"/>
-
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteFeaturePrice" short-description="Delete a feature price">
-        <make-value entity-name="ProductFeaturePrice" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key entity-name="ProductFeaturePrice" map="lookupPKMap" value-field="lookedUpValue"/>
-
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
 </simple-methods>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/servicedef/services_feature.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/servicedef/services_feature.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/servicedef/services_feature.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/servicedef/services_feature.xml Mon Sep 29 07:08:04 2014
@@ -25,85 +25,57 @@ under the License.
     <version>1.0</version>
 
     <!-- Product Feature Services -->
-    <service name="createProductFeatureCategory" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureCategory" auth="true">
+    <service name="createProductFeatureCategory" engine="entity-auto" invoke="create" default-entity-name="ProductFeatureCategory" auth="true">
         <description>Create a ProductFeatureCategory record</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <attribute name="parentCategoryId" type="String" mode="IN" optional="true"/>
         <attribute name="description" type="String" mode="IN" optional="false"/>
         <attribute name="productFeatureCategoryId" type="String" mode="OUT" optional="false"/>
     </service>
-    <service name="updateProductFeatureCategory" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureCategory" auth="true">
+    <service name="updateProductFeatureCategory" engine="entity-auto" invoke="update" default-entity-name="ProductFeatureCategory" auth="true">
         <description>Update a ProductFeatureCategory record</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <attribute name="productFeatureCategoryId" type="String" mode="IN" optional="false"/>
         <attribute name="parentCategoryId" type="String" mode="IN" optional="true"/>
         <attribute name="description" type="String" mode="IN" optional="false"/>
     </service>
 
-    <service name="createProductFeature" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeature" auth="true">
+    <service name="createProductFeature" engine="entity-auto" invoke="create" default-entity-name="ProductFeature" auth="true">
         <description>Create a ProductFeature record</description>
-        <attribute name="productFeatureTypeId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureCategoryId" type="String" mode="IN" optional="true"/>
-        <attribute name="description" type="String" mode="IN" optional="false"/>
-        <attribute name="uomId" type="String" mode="IN" optional="true"/>
-        <attribute name="numberSpecified" type="BigDecimal" mode="IN" optional="true"/>
-        <attribute name="defaultAmount" type="BigDecimal" mode="IN" optional="true"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="true"/>
+        <auto-attributes include="all" mode="IN" optional="true"/>
         <attribute name="productFeatureId" type="String" mode="OUT" optional="false"/>
-        <attribute name="defaultSequenceNum" type="Long" mode="IN" optional="true"/>
-        <attribute name="idCode" type="String" mode="IN" optional="true"/>
-        <attribute name="abbrev" type="String" mode="IN" optional="true"/>
+        <override name="productFeatureTypeId" mode="IN" optional="false"/>
+        <override name="description" mode="IN" optional="false"/>
     </service>
-    <service name="updateProductFeature" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeature" auth="true">
+    <service name="updateProductFeature" engine="entity-auto" invoke="update" default-entity-name="ProductFeature" auth="true">
         <description>Update a ProductFeature record</description>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureTypeId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureCategoryId" type="String" mode="IN" optional="true"/>
-        <attribute name="description" type="String" mode="IN" optional="false"/>
-        <attribute name="uomId" type="String" mode="IN" optional="true"/>
-        <attribute name="numberSpecified" type="BigDecimal" mode="IN" optional="true"/>
-        <attribute name="defaultAmount" type="BigDecimal" mode="IN" optional="true"/>
-        <attribute name="defaultSequenceNum" type="Long" mode="IN" optional="true"/>
-        <attribute name="idCode" type="String" mode="IN" optional="true"/>
-        <attribute name="abbrev" type="String" mode="IN" optional="true"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+        <override name="productFeatureTypeId" mode="IN" optional="false"/>
+        <override name="description" mode="IN" optional="false"/>
     </service>
 
-    <service name="applyFeatureToProduct" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="applyFeatureToProduct" auth="true">
+    <service name="applyFeatureToProduct" engine="entity-auto" invoke="create" default-entity-name="ProductFeatureAppl" auth="true">
         <description>Apply a ProductFeature to a Product; a fromDate can be used
             to specify when the feature will be applied, if no fromDate is specified,
             it will be applied now.</description>
-        <attribute name="productId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureApplTypeId" type="String" mode="IN" optional="false"/>
-        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
-        <attribute name="amount" type="BigDecimal" mode="IN" optional="true"/>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+        <override name="productFeatureApplTypeId" mode="IN" optional="false"/>
+        <override name="fromDate" mode="IN" optional="true"/>
     </service>
-    <service name="updateFeatureToProductApplication" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateFeatureToProductApplication" auth="true">
+    <service name="updateFeatureToProductApplication" engine="entity-auto" invoke="update" default-entity-name="ProductFeatureAppl" auth="true">
         <description>Update a ProductFeature to Product Application</description>
-        <attribute name="productId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureApplTypeId" type="String" mode="IN" optional="false"/>
-        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
-        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
-        <attribute name="amount" type="BigDecimal" mode="IN" optional="true"/>
-        <attribute name="recurringAmount" type="BigDecimal" mode="IN" optional="true"/>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+        <override name="productFeatureApplTypeId" mode="IN" optional="false"/>
     </service>
-    <service name="removeFeatureFromProduct" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeFeatureFromProduct" auth="true">
-        <description>Remove a ProductFeature from a Product; a thruDate can be used
-            to specify when the feature will be removed, if no thruDate is specified,
-            it will be removed now.</description>
-        <attribute name="productId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
-        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
+    <service name="removeFeatureFromProduct" engine="entity-auto" invoke="delete" default-entity-name="ProductFeatureAppl" auth="true">
+        <description>Remove a ProductFeature from a Product</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
     <service name="applyFeatureToProductFromTypeAndCode" engine="simple"
                 location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="applyFeatureToProductFromTypeAndCode" auth="true">
@@ -118,94 +90,89 @@ under the License.
     </service>
 
     <!-- ProductFeatureCategoryAppl Services -->
-    <service name="createProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureCategoryAppl" auth="true">
+    <service name="createProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductFeatureCategory to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="fromDate" optional="true"/>
     </service>
-    <service name="updateProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureCategoryAppl" auth="true">
+    <service name="updateProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductFeatureCategory to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="removeProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureCategoryAppl" auth="true">
+    <service name="removeProductFeatureCategoryAppl" default-entity-name="ProductFeatureCategoryAppl" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureCategory to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
     <!-- ProductFeatureCatGrpAppl Services -->
-    <service name="createProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureCatGrpAppl" auth="true">
+    <service name="createProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductFeatureGroup to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="fromDate" optional="true"/>
     </service>
-    <service name="updateProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureCatGrpAppl" auth="true">
+    <service name="updateProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductFeatureGroup to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="removeProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureCatGrpAppl" auth="true">
+    <service name="removeProductFeatureCatGrpAppl" default-entity-name="ProductFeatureCatGrpAppl" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureGroup to ProductCategory Application</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
     <!-- ProductFeatureGroup Services -->
-    <service name="createProductFeatureGroup" engine="simple"
-            location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureGroup" auth="true">
+    <service name="createProductFeatureGroup" default-entity-name="ProductFeatureGroup" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductFeatureGroup</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <attribute name="description" type="String" mode="IN" optional="true"/>
         <attribute name="productFeatureGroupId" type="String" mode="OUT" optional="false"/>
     </service>
-    <service name="updateProductFeatureGroup" engine="simple"
-            location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureGroup" auth="true">
+    <service name="updateProductFeatureGroup" default-entity-name="ProductFeatureGroup" engine="entity-auto" invoke="update" auth="true">
         <description>Create a ProductFeatureGroup</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <attribute name="productFeatureGroupId" type="String" mode="IN" optional="false"/>
         <attribute name="description" type="String" mode="IN" optional="true"/>
     </service>
-    <service name="createProductFeatureGroupAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureGroupAppl" auth="true">
+    <service name="createProductFeatureGroupAppl" default-entity-name="ProductFeatureGroupAppl" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductFeatureGroup to ProductFeature Application</description>
-        <attribute name="productFeatureGroupId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+        <override name="fromDate" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductFeatureGroupAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureGroupAppl" auth="true">
+    <service name="updateProductFeatureGroupAppl" default-entity-name="ProductFeatureGroupAppl" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductFeatureGroup to ProductFeature Application</description>
-        <attribute name="productFeatureGroupId" type="String" mode="IN" optional="false"/>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
-        <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
-        <attribute name="thruDate" type="java.sql.Timestamp" mode="IN" optional="true"/>
-        <attribute name="sequenceNum" type="Long" mode="IN" optional="true"/>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="removeProductFeatureGroupAppl" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureGroupAppl" auth="true">
+    <service name="removeProductFeatureGroupAppl" default-entity-name="ProductFeatureGroupAppl" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureGroup to ProductFeature Application</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <attribute name="productFeatureGroupId" type="String" mode="IN" optional="false"/>
         <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
         <attribute name="fromDate" type="java.sql.Timestamp" mode="IN" optional="false"/>
     </service>
     <!-- ProductFeatureIactn Services -->
-    <service name="createProductFeatureIactn" default-entity-name="ProductFeatureIactn" engine="simple"
-        location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureIactn" auth="true">
+    <service name="createProductFeatureIactn" default-entity-name="ProductFeatureIactn" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductFeatureIactn</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="productFeatureIactnTypeId" mode="IN" optional="false"/>
     </service>
-    <service name="removeProductFeatureIactn" default-entity-name="ProductFeatureIactn" engine="simple"
-        location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureIactn" auth="true">
+    <service name="removeProductFeatureIactn" default-entity-name="ProductFeatureIactn" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureIactn</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
     <!-- ProductFeatureType Services -->
@@ -216,41 +183,41 @@ under the License.
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="productFeatureTypeId" mode="IN" optional="true" />
     </service>
-    <service name="updateProductFeatureType" default-entity-name="ProductFeatureType" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureType" auth="true">
+    <service name="updateProductFeatureType" default-entity-name="ProductFeatureType" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductFeatureType</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="removeProductFeatureType" default-entity-name="ProductFeatureType" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureType" auth="true">
+    <service name="removeProductFeatureType" default-entity-name="ProductFeatureType" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureType</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
     <!-- ProductFeatureApplAttr  -->
     <service name="createProductFeatureApplAttr" default-entity-name="ProductFeatureApplAttr" engine="simple"
                 location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createProductFeatureApplAttr" auth="true">
         <description>Create a ProductFeatureApplAttr</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="fromDate" optional="true"/>
     </service>
-    <service name="updateProductFeatureApplAttr" default-entity-name="ProductFeatureApplAttr" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateProductFeatureApplAttr" auth="true">
+    <service name="updateProductFeatureApplAttr" default-entity-name="ProductFeatureApplAttr" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductFeatureApplAttr</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="removeProductFeatureApplAttr" default-entity-name="ProductFeatureApplAttr" engine="simple"
-                location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="removeProductFeatureApplAttr" auth="true">
+    <service name="removeProductFeatureApplAttr" default-entity-name="ProductFeatureApplAttr" engine="entity-auto" invoke="delete" auth="true">
         <description>Remove a ProductFeatureApplAttr</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
-        <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
     <!-- Feature Price Service -->
-    <service name="createFeaturePrice" engine="simple" default-entity-name="ProductFeaturePrice"
-        location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="createFeaturePrice" auth="true">
+    <service name="createFeaturePrice" default-entity-name="ProductFeaturePrice" engine="entity-auto" invoke="create" auth="true">
         <description>Create a Feature Price</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes mode="IN" include="pk" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="createdDate"/>
@@ -262,9 +229,9 @@ under the License.
         <override name="fromDate" mode="INOUT" optional="true"/>
         <override name="price" optional="false"/>
     </service>
-    <service name="updateFeaturePrice" engine="simple" default-entity-name="ProductFeaturePrice"
-        location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="updateFeaturePrice" auth="true">
+    <service name="updateFeaturePrice" default-entity-name="ProductFeaturePrice" engine="entity-auto" invoke="update" auth="true">
         <description>Update a Feature Price</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true">
             <exclude field-name="createdDate"/>
@@ -274,9 +241,9 @@ under the License.
         </auto-attributes>
         <override name="price" optional="false"/>
     </service>
-    <service name="deleteFeaturePrice" engine="simple" default-entity-name="ProductFeaturePrice"
-        location="component://product/script/org/ofbiz/product/feature/ProductFeatureServices.xml" invoke="deleteFeaturePrice" auth="true">
+    <service name="deleteFeaturePrice" default-entity-name="ProductFeaturePrice" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a Feature Price</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 </services>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/build.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/build.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/securityext/build.xml Mon Sep 29 07:08:04 2014
@@ -58,11 +58,6 @@ under the License.
 
     <target name="jar" depends="classes">
         <main-jar/>
-        <test-jar>
-            <test-selector>
-                <filename name="META-INF/services"/>
-                <filename name="META-INF/services/*"/>
-            </test-selector>
-        </test-jar>
+        <test-jar/>
     </target>
 </project>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/build.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/build.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/build.xml Mon Sep 29 07:08:04 2014
@@ -221,7 +221,7 @@ under the License.
         <basename property="releasePath" file="${info.entry.url}"/>
         <tstamp>
             <format property="dateTime" pattern="yyyy-MM-dd HH:mm:ss"/>
-        </tstamp>        
+        </tstamp>
         <echo message=" - Release-revision : ${releasePath}-r${info.entry.commit(revision)},  ${uiLabelMap.CommonBuiltOn} ${dateTime}" file="runtime/svninfo.ftl"/>
         <delete file="runtime/svninfo_tmp.xml"/>
         <echo message="Done!"/>
@@ -266,7 +266,7 @@ under the License.
   
 
     <target name="build-dev"
-      description="Patch sources in a dev environment if patch files are present in runtime/patches.">
+      description="Patch sources in a dev environment if patch files are present in runtime/patches. Needs a Subversion client installed">
       <!-- patch task can't handle a fileset => create a global patch -->
       <concat destfile="${basedir}/runtime/patches/dev.patch" encoding="UTF-8" outputencoding="UTF-8">
         <fileset dir="${basedir}/runtime/patches" casesensitive="no">

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/build.xml?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/build.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/build.xml Mon Sep 29 07:08:04 2014
@@ -54,10 +54,6 @@ under the License.
         <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"/>
-        <file name="org/ofbiz/base/concurrent/test/DependencyPoolTests.java"/>
-        <file name="org/ofbiz/base/concurrent/test/SyncTTLObjectTest.java"/>
-        <file name="org/ofbiz/base/concurrent/test/AsyncTTLObjectTest.java"/>
-        <file name="org/ofbiz/base/concurrent/test/TTLCachedObjectTest.java"/>
     </filelist>
 
     <patternset id="cobertura-src-dirs">

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/ExecutionPool.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/ExecutionPool.java?rev=1628129&r1=1628128&r2=1628129&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/ExecutionPool.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/concurrent/ExecutionPool.java Mon Sep 29 07:08:04 2014
@@ -19,12 +19,12 @@
 package org.ofbiz.base.concurrent;
 
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.DelayQueue;
 import java.util.concurrent.Delayed;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ScheduledExecutorService;
@@ -42,14 +42,14 @@ import org.ofbiz.base.util.Debug;
 @SourceMonitored
 public final class ExecutionPool {
     public static final String module = ExecutionPool.class.getName();
-    public static final ExecutorService GLOBAL_BATCH = getPooledExecutor(null, "OFBiz-batch", -1, Integer.MAX_VALUE, false);
-    public static final ScheduledExecutorService GLOBAL_EXECUTOR = getScheduledExecutor(null, "OFBiz-config", -1, false);
-    public static final ForkJoinPool GLOBAL_FORK_JOIN = getForkJoinPool(-1);
+    public static final ExecutorService GLOBAL_BATCH = new ThreadPoolExecutor(0, Integer.MAX_VALUE, 5, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(), new ExecutionPoolThreadFactory(null, "OFBiz-batch"));
+    public static final ForkJoinPool GLOBAL_FORK_JOIN = new ForkJoinPool();
+    private static final ExecutorService pulseExecutionPool = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(), new ExecutionPoolThreadFactory(null, "OFBiz-ExecutionPoolPulseWorker"));
 
     protected static class ExecutionPoolThreadFactory implements ThreadFactory {
         private final ThreadGroup group;
         private final String namePrefix;
-        private int count = 0;
+        private volatile int count = 1;
 
         protected ExecutionPoolThreadFactory(ThreadGroup group, String namePrefix) {
             this.group = group;
@@ -65,48 +65,18 @@ public final class ExecutionPool {
         }
     }
 
-    public static ThreadFactory createThreadFactory(ThreadGroup group, String namePrefix) {
-        return new ExecutionPoolThreadFactory(group, namePrefix);
-    }
-
-    public static int autoAdjustThreadCount(int threadCount) {
-        if (threadCount == 0) {
-            return 1;
-        } else if (threadCount < 0) {
-            int numCpus = Runtime.getRuntime().availableProcessors();
-            return Math.abs(threadCount) * numCpus;
-        } else {
-            return threadCount;
+    public static ScheduledExecutorService getScheduledExecutor(ThreadGroup group, String namePrefix, int threadCount, long keepAliveSeconds, boolean preStart) {
+        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(threadCount, new ExecutionPoolThreadFactory(group, namePrefix));
+        if (keepAliveSeconds > 0) {
+            executor.setKeepAliveTime(keepAliveSeconds, TimeUnit.SECONDS);
+            executor.allowCoreThreadTimeOut(true);
         }
-    }
-
-    @Deprecated
-    public static ScheduledExecutorService getExecutor(ThreadGroup group, String namePrefix, int threadCount, boolean preStart) {
-        return getScheduledExecutor(group, namePrefix, threadCount, preStart);
-    }
-
-    public static ScheduledExecutorService getScheduledExecutor(ThreadGroup group, String namePrefix, int threadCount, boolean preStart) {
-        ThreadFactory threadFactory = createThreadFactory(group, namePrefix);
-        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(autoAdjustThreadCount(threadCount), threadFactory);
         if (preStart) {
             executor.prestartAllCoreThreads();
         }
         return executor;
     }
 
-    public static ExecutorService getPooledExecutor(ThreadGroup group, String namePrefix, int threadCount, int maximumPoolSize, boolean preStart) {
-        ThreadFactory threadFactory = createThreadFactory(group, namePrefix);
-        ThreadPoolExecutor executor = new ThreadPoolExecutor(autoAdjustThreadCount(threadCount), maximumPoolSize, 5, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(), threadFactory);
-        if (preStart) {
-            executor.prestartAllCoreThreads();
-        }
-        return executor;
-    }
-
-    public static ForkJoinPool getForkJoinPool(int threadCount) {
-        return new ForkJoinPool(autoAdjustThreadCount(threadCount));
-    }
-
     public static <F> List<F> getAllFutures(Collection<Future<F>> futureList) {
         List<F> result = FastList.newInstance();
         for (Future<F> future: futureList) {
@@ -129,25 +99,10 @@ public final class ExecutionPool {
         delayQueue.remove(pulse);
     }
 
-    public static void pulseAll(Class<? extends Pulse> match) {
-        Iterator<Pulse> it = delayQueue.iterator();
-        while (it.hasNext()) {
-            Pulse pulse = it.next();
-            if (match.isInstance(pulse)) {
-                it.remove();
-                pulse.run();
-            }
-        }
-    }
-
     static {
-        ExecutionPoolPulseWorker worker = new ExecutionPoolPulseWorker();
-        int processorCount = Runtime.getRuntime().availableProcessors();
-        for (int i = 0; i < processorCount; i++) {
-            Thread t = new Thread(worker);
-            t.setDaemon(true);
-            t.setName("OFBiz-ExecutionPoolPulseWorker-" + i);
-            t.start();
+        int numberOfExecutionPoolPulseWorkers = Runtime.getRuntime().availableProcessors();
+        for (int i = 0; i < numberOfExecutionPoolPulseWorkers; i++) {
+            pulseExecutionPool.execute(new ExecutionPoolPulseWorker());
         }
     }