This is an automated email from the ASF dual-hosted git repository.
danwatford pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git The following commit(s) were added to refs/heads/trunk by this push: new c654d9b Improved: Convert EntitySyncServices.xml mini-lang to groovy c654d9b is described below commit c654d9bbcc31f2b3ea218914a56a9569c21d0f8d Author: Daniel Watford <[hidden email]> AuthorDate: Sun May 30 08:13:23 2021 +0100 Improved: Convert EntitySyncServices.xml mini-lang to groovy (OFBIZ-11660) removed: EntitySyncServices.xml added: EntitySyncServices.groovy modified: services.xml to reflect the change from minilang to groovy for: - entitySyncPermissionCheck - resetEntitySyncStatus modified: webtools/controller.xml to reflect changed request-map and event type regarding reset of EntitySyncStatus modified: webtools/widget/EntitySyncForms.xml to reflect changed target regarding reset of EntitySyncStatus Thanks: Pierre Smits for implementation --- .../groovyScripts/EntitySyncServices.groovy | 32 +++++++++++++++++++ .../entityext/minilang/EntitySyncServices.xml | 36 ---------------------- framework/entityext/servicedef/services.xml | 8 ++--- .../webapp/webtools/WEB-INF/controller.xml | 4 +-- framework/webtools/widget/EntitySyncForms.xml | 2 +- 5 files changed, 39 insertions(+), 43 deletions(-) diff --git a/framework/entityext/groovyScripts/EntitySyncServices.groovy b/framework/entityext/groovyScripts/EntitySyncServices.groovy new file mode 100644 index 0000000..8acea4e --- /dev/null +++ b/framework/entityext/groovyScripts/EntitySyncServices.groovy @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +def entitySyncPermissionCheck() { + parameters.primaryPermission = "ENTITY_SYNC" + Map serviceResult = run service: "genericBasePermissionCheck", with: parameters + return serviceResult +} + +def resetEntitySyncStatus() { + entitySyncRecord = from("EntitySync").where("entitySyncId", parameters.entitySyncId).queryOne() + if(entitySyncRecord && "ESR_RUNNING".equals(entitySyncRecord.runStatusId)) { + entitySyncRecord.runStatusId = "ESR_NOT_STARTED" + entitySyncRecord.store() + } +} diff --git a/framework/entityext/minilang/EntitySyncServices.xml b/framework/entityext/minilang/EntitySyncServices.xml deleted file mode 100644 index a134c26..0000000 --- a/framework/entityext/minilang/EntitySyncServices.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"> - <simple-method method-name="resetEntitySyncStatusToNotStarted" short-description="Update a EntitySync, set the Status to ESR_NOT_STARTED, but ONLY if running (ie in ESR_RUNNING)"> - <!-- TODO: add some code to make sure, as much as possible, that this really isn't running --> - <set field="lookupPKMap.entitySyncId" from-field="parameters.entitySyncId"/> - <find-by-primary-key entity-name="EntitySync" map="lookupPKMap" value-field="valueToStore"/> - <if-compare field="valueToStore.runStatusId" operator="equals" value="ESR_RUNNING"> - <set field="valueToStore.runStatusId" value="ESR_NOT_STARTED"/> - <store-value value-field="valueToStore"/> - </if-compare> - </simple-method> - <simple-method method-name="entitySyncPermissionCheck" short-description="Check user permission for entity sync."> - <set field="primaryPermission" value="ENTITY_SYNC"/> - <call-simple-method method-name="genericBasePermissionCheck" xml-resource="component://common/minilang/permission/CommonPermissionServices.xml"/> - </simple-method> -</simple-methods> diff --git a/framework/entityext/servicedef/services.xml b/framework/entityext/servicedef/services.xml index 7d0951e..b95fc2d 100644 --- a/framework/entityext/servicedef/services.xml +++ b/framework/entityext/servicedef/services.xml @@ -224,8 +224,8 @@ under the License. location="org.apache.ofbiz.entityext.synchronization.EntitySyncServices" invoke="cleanSyncRemoveInfo" auth="true" transaction-timeout="600"> <description>Clean EntitySyncRemove Info - Generally should be run asynchronously after each sync run, or periodically run on a schedule</description> </service> - <service name="resetEntitySyncStatusToNotStarted" engine="simple" - location="component://entityext/minilang/EntitySyncServices.xml" invoke="resetEntitySyncStatusToNotStarted" auth="true" transaction-timeout="600"> + <service name="resetEntitySyncStatus" engine="groovy" + location="component://entityext/groovyScripts/EntitySyncServices.groovy" invoke="resetEntitySyncStatus" auth="true" transaction-timeout="600"> <description>Generally run manually to reset the status of an EntitySync when it has "crashed". Update a EntitySync, set the Status to ESR_NOT_STARTED, but ONLY if running (ie in ESR_RUNNING)</description> <permission-service service-name="entitySyncPermissionCheck" main-action="UPDATE"/> <attribute name="entitySyncId" type="String" mode="IN" optional="false"/> @@ -446,8 +446,8 @@ under the License. <description>Delete a ServerHitType</description> <auto-attributes include="pk" mode="IN" optional="false"/> </service> - <service name="entitySyncPermissionCheck" engine="simple" - location="component://entityext/minilang/EntitySyncServices.xml" invoke="entitySyncPermissionCheck"> + <service name="entitySyncPermissionCheck" engine="groovy" + location="component://entityext/groovyScripts/EntitySyncServices.groovy" invoke="entitySyncPermissionCheck"> <description>Entity sync permission Checking Logic</description> <implements service="permissionInterface"/> </service> diff --git a/framework/webtools/webapp/webtools/WEB-INF/controller.xml b/framework/webtools/webapp/webtools/WEB-INF/controller.xml index 4d39271..0f8bf4b 100644 --- a/framework/webtools/webapp/webtools/WEB-INF/controller.xml +++ b/framework/webtools/webapp/webtools/WEB-INF/controller.xml @@ -503,9 +503,9 @@ under the License. <!-- EntitySync requests --> <request-map uri="EntitySyncStatus"><security https="true" auth="true"/><response name="success" type="view" value="EntitySyncStatus"/></request-map> - <request-map uri="resetEntitySyncStatusToNotStarted"> + <request-map uri="resetEntitySyncStatus"> <security https="true" auth="true"/> - <event type="service" path="" invoke="resetEntitySyncStatusToNotStarted"/> + <event type="service" path="" invoke="resetEntitySyncStatus"/> <response name="success" type="view" value="EntitySyncStatus"/> <response name="error" type="view" value="EntitySyncStatus"/> </request-map> diff --git a/framework/webtools/widget/EntitySyncForms.xml b/framework/webtools/widget/EntitySyncForms.xml index 6dcca48..f78323e 100644 --- a/framework/webtools/widget/EntitySyncForms.xml +++ b/framework/webtools/widget/EntitySyncForms.xml @@ -36,7 +36,7 @@ under the License. </field> <field use-when=""ESR_RUNNING".equals(runStatusId)" name="resetStatus" title=" " widget-style="smallSubmit"> - <hyperlink description="${uiLabelMap.WebtoolsSyncResetRunStatus}" target="resetEntitySyncStatusToNotStarted" also-hidden="false"> + <hyperlink description="${uiLabelMap.WebtoolsSyncResetRunStatus}" target="resetEntitySyncStatus" also-hidden="false"> <parameter param-name="entitySyncId"/> </hyperlink> </field> |
Free forum by Nabble | Edit this page |