Improved: Convert SupplierProductServices.xml mini-lang to groovyDSL (OFBIZ-9350) (OFBIZ-12667)

Convert the service getSupplierProductFeatures from mini-lang to groovyDSL

Thanks to Tom Gibert for the help
diff --git a/applications/product/groovyScripts/product/supplier/SupplierProductServices.groovy b/applications/product/groovyScripts/product/supplier/SupplierProductServices.groovy
new file mode 100644
index 0000000..4e72802
--- /dev/null
+++ b/applications/product/groovyScripts/product/supplier/SupplierProductServices.groovy
@@ -0,0 +1,31 @@
+/*
+ * 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.
+ */
+
+package product.supplier
+
+/**
+ * Get all supplier information for a product feature
+ */
+def getSupplierProductFeatures() {
+    return success([supplierProductFeatures: from('SupplierProductFeature')
+            .where(partyId: parameters.partyId,
+                    productFeatureId: parameters.productFeatureId)
+            .cache()
+            .queryList()])
+}
\ No newline at end of file
diff --git a/applications/product/minilang/product/supplier/SupplierProductServices.xml b/applications/product/minilang/product/supplier/SupplierProductServices.xml
deleted file mode 100644
index 196821a..0000000
--- a/applications/product/minilang/product/supplier/SupplierProductServices.xml
+++ /dev/null
@@ -1,31 +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="getSupplierProductFeatures" short-description="Get all supplier information for a product feature" login-required="false">
-        <entity-and entity-name="SupplierProductFeature" list="supplierProductFeatures">
-            <field-map field-name="partyId" from-field="parameters.partyId"/>
-            <field-map field-name="productFeatureId" from-field="parameters.productFeatureId"/>
-        </entity-and>
-        <field-to-result field="supplierProductFeatures"/>
-    </simple-method>
-</simple-methods>
diff --git a/applications/product/servicedef/services.xml b/applications/product/servicedef/services.xml
index c4581ce..6f4ebde 100644
--- a/applications/product/servicedef/services.xml
+++ b/applications/product/servicedef/services.xml
@@ -528,13 +528,13 @@
         </required-permissions>
         <auto-attributes mode="IN" include="pk" optional="false"/>
     </service>
-    <service name="getSupplierProductFeatures" engine="simple"
-        location="component://product/minilang/product/supplier/SupplierProductServices.xml" invoke="getSupplierProductFeatures">
+    <service name="getSupplierProductFeatures" engine="groovy" invoke="getSupplierProductFeatures"
+             location="component://product/groovyScripts/product/supplier/SupplierProductServices.groovy">
         <description>Finds a list of SupplierProductFeature entities based on the productFeatureId.
             If a partyId is given, only product feature information for that supplier party is returned.</description>
-        <attribute name="productFeatureId" type="String" mode="IN" optional="false"/>
+        <attribute name="productFeatureId" type="String" mode="IN"/>
         <attribute name="partyId" type="String" mode="IN" optional="true"/>
-        <attribute name="supplierProductFeatures" type="java.util.List" mode="OUT" optional="false"/>
+        <attribute name="supplierProductFeatures" type="java.util.List" mode="OUT"/>
     </service>
 
     <service name="createProductMaint" default-entity-name="ProductMaint" engine="entity-auto" invoke="create" auth="true">