Author: jleroux
Date: Sun Sep 2 09:46:20 2012
New Revision: 1379937
URL: http://svn.apache.org/viewvc?rev=1379937&view=rev
Log:
A slightly modified patch from Nicolas Malin "change serviceName by
customMethod on Content "
https://issues.apache.org/jira/browse/OFBIZ-5020
When you used a content as template, the content.serviceName value
used to call the context populate service before rendering.
I propose to replace serviceName field by customMethodId and use
customMethod pattern for more flexibility.
serviceName field is kept for backward compatibility
Thanks to Scott and Adrian for support
Modified:
ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
ofbiz/trunk/applications/content/entitydef/entitymodel.xml
ofbiz/trunk/applications/content/script/org/ofbiz/content/ContentManagementMapProcessors.xml
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
ofbiz/trunk/specialpurpose/ecommerce/data/DemoFinAccount.xml
ofbiz/trunk/specialpurpose/ecommerce/data/DemoStoreGiftCertificateSettings.xml
Modified:
ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
(original)
+++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
Sun Sep 2 09:46:20 2012
@@ -728,11 +728,13 @@ under the License.
<CustomMethodType customMethodTypeId="FIN_CAPTURE"
parentTypeId="" hasTable="N" description="FIN account capture methods"/>
<CustomMethodType customMethodTypeId="FIN_REFUND"
parentTypeId="" hasTable="N" description="FIN account refund methods"/>
<CustomMethodType customMethodTypeId="FIN_RELEASE"
parentTypeId="" hasTable="N" description="FIN account release methods"/>
+ <CustomMethodType customMethodTypeId="FIN_PURCHASE"
parentTypeId="" hasTable="N" description="FIN account purchase
methods"/>
<CustomMethodType customMethodTypeId="GIFT_AUTH"
parentTypeId="" hasTable="N" description="GIFT card authorize methods"/>
<CustomMethodType customMethodTypeId="GIFT_CAPTURE"
parentTypeId="" hasTable="N" description="GIFT card capture methods"/>
<CustomMethodType customMethodTypeId="GIFT_REFUND"
parentTypeId="" hasTable="N" description="GIFT card refund methods"/>
<CustomMethodType customMethodTypeId="GIFT_RELEASE"
parentTypeId="" hasTable="N" description="GIFT card release methods"/>
+ <CustomMethodType customMethodTypeId="GIFT_PURCHASE"
parentTypeId="" hasTable="N" description="GIFT card purchase methods"/>
<CustomMethodType customMethodTypeId="PAYPAL_AUTH"
parentTypeId="" hasTable="N" description="PayPal authorize methods"/>
<CustomMethodType customMethodTypeId="PAYPAL_CAPTURE"
parentTypeId="" hasTable="N" description="PayPal capture methods"/>
@@ -809,6 +811,7 @@ under the License.
<CustomMethod customMethodId="FIN_CAPTURE_OFBIZ"
customMethodTypeId="FIN_CAPTURE" customMethodName="ofbFaCapture"
description="FIN account capture"/>
<CustomMethod customMethodId="FIN_REFUND_OFBIZ"
customMethodTypeId="FIN_REFUND" customMethodName="ofbFaRefund"
description="FIN account refund"/>
<CustomMethod customMethodId="FIN_RELEASE_OFBIZ"
customMethodTypeId="FIN_RELEASE" customMethodName="ofbFaRelease"
description="FIN account release"/>
+ <CustomMethod customMethodId="FIN_PURCH_OFBIZ"
customMethodTypeId="FIN_PURCHASE"
customMethodName="createPartyFinAccountFromPurchase" description="FIN
account purchase"/>
<CustomMethod customMethodId="GIFT_AUTH_OFBIZ"
customMethodTypeId="GIFT_AUTH" customMethodName="ofbGcAuthorize"
description="GIFT card authorize"/>
<CustomMethod customMethodId="GIFT_AUTH_ALWAYSAPPR"
customMethodTypeId="GIFT_AUTH"
customMethodName="alwaysApproveGCProcessor" description="GIFT card
always authorize"/>
@@ -820,6 +823,7 @@ under the License.
<CustomMethod customMethodId="GIFT_RELEASE_OFBIZ"
customMethodTypeId="GIFT_RELEASE" customMethodName="ofbGcRelease"
description="GIFT card release"/>
<CustomMethod customMethodId="GIFT_RELEASE_TEST"
customMethodTypeId="GIFT_RELEASE" customMethodName="testGCRelease"
description="GIFT card test release"/>
<CustomMethod customMethodId="GIFT_RELEASE_VALUEL"
customMethodTypeId="GIFT_RELEASE" customMethodName="valueLinkRelease"
description="GIFT card ValueLink release"/>
+ <CustomMethod customMethodId="GIFT_PURCH_OFBIZ"
customMethodTypeId="GIFT_PURCHASE" customMethodName="ofbGcPurchase"
description="GIFT card Purchase Fulfillment Service"/>
<CustomMethod customMethodId="PAYPAL_AUTH_PFP"
customMethodTypeId="PAYPAL_AUTH"
customMethodName="payflowPayPalProcessor" description="Payflow PayPal
payment authorize"/>
<CustomMethod customMethodId="PAYPAL_AUTH"
customMethodTypeId="PAYPAL_AUTH" customMethodName="payPalProcessor"
description="PayPal payment authorize"/>
Modified: ofbiz/trunk/applications/content/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/entitydef/entitymodel.xml?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/entitydef/entitymodel.xml
(original)
+++ ofbiz/trunk/applications/content/entitydef/entitymodel.xml Sun
Sep 2 09:46:20 2012
@@ -159,7 +159,10 @@ under the License.
<field name="dataSourceId" type="id"></field>
<field name="statusId" type="id"></field>
<field name="privilegeEnumId" type="id"></field>
- <field name="serviceName" type="long-varchar"></field>
+ <field name="serviceName" type="long-varchar">
+ <description>Deprecated : use customMethod pattern instead
of. Kept for backward compatibility</description>
+ </field>
+ <field name="customMethodId" type="id"></field>
<field name="contentName" type="name"></field>
<field name="description" type="description"></field>
<field name="localeString" type="very-short"></field>
@@ -187,6 +190,9 @@ under the License.
<relation type="one" fk-name="CONTENT_PRIVENM"
title="Privilege" rel-entity-name="Enumeration">
<key-map field-name="privilegeEnumId"
rel-field-name="enumId"/>
</relation>
+ <relation type="one" fk-name="CONTENT_CUSTMET"
rel-entity-name="CustomMethod">
+ <key-map field-name="customMethodId"/>
+ </relation>
<!-- the relationship to MimeType is one-nofk so that you can
still do a lookup on MimeType but a new
and unexpected mime type would not cause a foreign key
constraint violation, so MimeType can store the
most common mime types instead of an exhaustive list of all
possible mime types -->
Modified:
ofbiz/trunk/applications/content/script/org/ofbiz/content/ContentManagementMapProcessors.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/script/org/ofbiz/content/ContentManagementMapProcessors.xml?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
---
ofbiz/trunk/applications/content/script/org/ofbiz/content/ContentManagementMapProcessors.xml
(original)
+++
ofbiz/trunk/applications/content/script/org/ofbiz/content/ContentManagementMapProcessors.xml
Sun Sep 2 09:46:20 2012
@@ -27,6 +27,7 @@ under the License.
<process field="dataResourceId"><copy
to-field="dataResourceId" replace="true" set-if-null="false"/></process>
<process field="dataSourceId"><copy to-field="dataSourceId"
replace="true" set-if-null="false"/></process>
<process field="statusId"><copy to-field="statusId"
replace="true" set-if-null="false"/></process>
+ <process field="customMethodId"><copy
to-field="customMethodId" replace="true" set-if-null="false"/></process>
<process field="serviceName"><copy to-field="serviceName"
replace="true" set-if-null="false"/></process>
<process field="contentName"><copy to-field="contentName"
replace="true" set-if-null="false"/></process>
<process field="description"><copy to-field="description"
replace="true" set-if-null="false"/></process>
@@ -112,6 +113,7 @@ under the License.
<process field="dataResourceId"><copy
to-field="dataResourceId" replace="true" set-if-null="false"/></process>
<process field="dataSourceId"><copy to-field="dataSourceId"
replace="true" set-if-null="false"/></process>
<process field="statusId"><copy to-field="statusId"
replace="true" set-if-null="false"/></process>
+ <process field="customMethodId"><copy
to-field="customMethodId" replace="true" set-if-null="false"/></process>
<process field="serviceName"><copy to-field="serviceName"
replace="true" set-if-null="false"/></process>
<process field="contentName"><copy to-field="contentName"
replace="true" set-if-null="false"/></process>
<process field="description"><copy to-field="description"
replace="true" set-if-null="false"/></process>
Modified:
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
---
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
(original)
+++
ofbiz/trunk/applications/content/src/org/ofbiz/content/content/ContentWorker.java
Sun Sep 2 09:46:20 2012
@@ -177,7 +177,12 @@ public class ContentWorker implements or
Map<String,Object>templateContext, Locale locale,
String mimeTypeId, boolean cache, List<GenericValue> webAnalytics)
throws GeneralException, IOException {
// if the content has a service attached run the service
- String serviceName = content.getString("serviceName");
+ String serviceName = content.getString("serviceName");
//Kept for backward compatibility
+ GenericValue custMethod = null;
+ if
(UtilValidate.isNotEmpty(content.getString("customMethodId"))) {
+ custMethod = delegator.findOne("CustomMethod",
UtilMisc.toMap("customMethodId", content.get("customMethodId")), true);
+ }
+ if (custMethod != null) serviceName =
custMethod.getString("customMethodName");
if (dispatcher != null &&
UtilValidate.isNotEmpty(serviceName)) {
DispatchContext dctx = dispatcher.getDispatchContext();
ModelService service = dctx.getModelService(serviceName);
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
---
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
(original)
+++
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
Sun Sep 2 09:46:20 2012
@@ -3337,8 +3337,18 @@ public class OrderServices {
String fulfillmentType =
productContentItem.getString("productContentTypeId");
if
("FULFILLMENT_EXTASYNC".equals(fulfillmentType) ||
"FULFILLMENT_EXTSYNC".equals(fulfillmentType)) {
- // enternal service fulfillment
- String fulfillmentService = (String)
content.get("serviceName");
+ // external service fulfillment
+ String fulfillmentService = (String)
content.get("serviceName"); // Kept for backward compatibility
+ GenericValue custMethod = null;
+ if
(UtilValidate.isNotEmpty(content.getString("customMethodId"))) {
+ try {
+ custMethod =
delegator.findOne("CustomMethod", UtilMisc.toMap("customMethodId",
content.get("customMethodId")), true);
+ } catch (GenericEntityException e) {
+ Debug.logError(e,"ERROR: Cannot
get CustomMethod associate to Content entity: " +
e.getMessage(),module);
+ continue;
+ }
+ }
+ if (custMethod != null)
fulfillmentService = custMethod.getString("customMethodName");
if (fulfillmentService == null) {
Debug.logError("ProductContent of
type FULFILLMENT_EXTERNAL had Content with empty serviceName, can not
run fulfillment", module);
}
Modified: ofbiz/trunk/specialpurpose/ecommerce/data/DemoFinAccount.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoFinAccount.xml?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/data/DemoFinAccount.xml
(original)
+++ ofbiz/trunk/specialpurpose/ecommerce/data/DemoFinAccount.xml Sun
Sep 2 09:46:20 2012
@@ -83,7 +83,7 @@
<ProductStoreSurveyAppl productStoreSurveyId="1100"
productStoreId="9000" surveyApplTypeId="CART_ADD" surveyId="1100"
productId="FA-001" fromDate="2003-11-24 16:00:02.467"
surveyTemplate="/applications/content/template/survey/genericsurvey.ftl"
lastUpdatedStamp="2003-12-04 21:40:23.27"
lastUpdatedTxStamp="2003-12-04 21:40:20.607"/>
<!-- fulfillment service -->
- <Content contentId="FA_ACTIVATION"
serviceName="createPartyFinAccountFromPurchase"/>
+ <Content contentId="FA_ACTIVATION"
customMethodId="FIN_PURCH_OFBIZ"/>
<!-- associate the fulfillment service with the products -->
<ProductContent productId="FA-001" contentId="FA_ACTIVATION"
productContentTypeId="FULFILLMENT_EXTASYNC" fromDate="2000-01-01
00:00:00"/>
Modified:
ofbiz/trunk/specialpurpose/ecommerce/data/DemoStoreGiftCertificateSettings.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoStoreGiftCertificateSettings.xml?rev=1379937&r1=1379936&r2=1379937&view=diff
==============================================================================
---
ofbiz/trunk/specialpurpose/ecommerce/data/DemoStoreGiftCertificateSettings.xml
(original)
+++
ofbiz/trunk/specialpurpose/ecommerce/data/DemoStoreGiftCertificateSettings.xml
Sun Sep 2 09:46:20 2012
@@ -25,7 +25,7 @@ under the License.
purchaseSurveyId="1000" purchSurveySendTo="recipientEmail"
purchSurveyCopyMe="copyMe" accountCodeLength="12" pinCodeLength="4"
accountValidDays="365" authValidDays="30"/>
<!-- service for purchasing gift certificate configured as a
Content and to be associated with products -->
- <Content contentId="GC_PURCHASE" serviceName="ofbGcPurchase"/>
+ <Content contentId="GC_PURCHASE"
customMethodId="GIFT_PURCH_OFBIZ"/>
<!-- associate gift certificate purchase fulfillment services
with products. virtual products ok. MUST be async fulfillment -
synchronous fulfillment can cause database lock problems -->