buildbot exception in on ofbizTrunkFrameworkPlugins
The Buildbot has detected a build exception on builder ofbizTrunkFrameworkPlugins while building ofbiz-plugins. Full details are available at: https://ci.apache.org/builders/ofbizTrunkFrameworkPlugins/builds/1778 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf945_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'onTrunkPluginsCommit' triggered this build Build Source Stamp: [branch trunk] 6ac1f284915ff1de659bda944e26b90bdab2f75c Blamelist: Girish Vasmatkar BUILD FAILED: exception javadoc upload test-results part 1 Sincerely, -The Buildbot
[ofbiz-plugins] branch trunk updated: Implemented: Add support to read and register resources defined in XML DSL(OFBIZ-11995)
This is an automated email from the ASF dual-hosted git repository. grv pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-plugins.git The following commit(s) were added to refs/heads/trunk by this push: new 6ac1f28 Implemented: Add support to read and register resources defined in XML DSL(OFBIZ-11995) 6ac1f28 is described below commit 6ac1f284915ff1de659bda944e26b90bdab2f75c Author: Girish Vasmatkar AuthorDate: Wed Sep 16 18:21:27 2020 +0530 Implemented: Add support to read and register resources defined in XML DSL(OFBIZ-11995) --- .../apache/ofbiz/ws/rs/core/OFBizApiConfig.java| 40 .../ofbiz/ws/rs/process/RestRequestHandler.java| 256 + .../ofbiz/ws/rs/process/ServiceRequestHandler.java | 102 3 files changed, 398 insertions(+) diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/core/OFBizApiConfig.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/core/OFBizApiConfig.java index 911c880..5a168fe 100644 --- a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/core/OFBizApiConfig.java +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/core/OFBizApiConfig.java @@ -21,19 +21,29 @@ package org.apache.ofbiz.ws.rs.core; import java.io.File; import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import javax.ws.rs.core.MediaType; + import org.apache.ofbiz.base.component.ComponentConfig; import org.apache.ofbiz.base.component.ComponentException; import org.apache.ofbiz.base.util.Debug; +import org.apache.ofbiz.base.util.UtilValidate; import org.apache.ofbiz.ws.rs.model.ModelApi; import org.apache.ofbiz.ws.rs.model.ModelApiReader; +import org.apache.ofbiz.ws.rs.model.ModelOperation; +import org.apache.ofbiz.ws.rs.model.ModelResource; +import org.apache.ofbiz.ws.rs.process.ServiceRequestHandler; +import org.apache.ofbiz.ws.rs.security.Secured; import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.logging.LoggingFeature; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.server.model.Resource; +import org.glassfish.jersey.server.model.ResourceMethod; public class OFBizApiConfig extends ResourceConfig { private static final String MODULE = OFBizApiConfig.class.getName(); @@ -58,6 +68,7 @@ public class OFBizApiConfig extends ResourceConfig { private void registerDSLResources() { loadApiDefinitions(); +traverseAndRegisterApiDefinitions(); } private void loadApiDefinitions() { @@ -78,4 +89,33 @@ public class OFBizApiConfig extends ResourceConfig { } }); } + +private void traverseAndRegisterApiDefinitions() { +if (UtilValidate.isEmpty(MICRO_APIS)) { +Debug.logInfo("No API defintion to process", MODULE); +return; +} +MICRO_APIS.forEach((k, v) -> { +Debug.logInfo("Registring Resource Definitions from API - " + k, MODULE); +List resources = v.getResources(); +resources.forEach(modelResource -> { +Resource.Builder resourceBuilder = Resource.builder(modelResource.getPath()).name(modelResource.getName()); +for (ModelOperation op : modelResource.getOperations()) { +if (UtilValidate.isEmpty(op.getPath())) { // Add the method to the parent resource +ResourceMethod.Builder methodBuilder = resourceBuilder.addMethod(op.getVerb().toUpperCase()); + methodBuilder.produces(MediaType.APPLICATION_JSON).nameBindings(Secured.class); +String serviceName = op.getService(); +methodBuilder.handledBy(new ServiceRequestHandler(serviceName)); +} else { +Resource.Builder childResourceBuilder = resourceBuilder.addChildResource(op.getPath()); +ResourceMethod.Builder childResourceMethodBuilder = childResourceBuilder.addMethod(op.getVerb().toUpperCase()); + childResourceMethodBuilder.produces(MediaType.APPLICATION_JSON).nameBindings(Secured.class); +String serviceName = op.getService(); +childResourceMethodBuilder.handledBy(new ServiceRequestHandler(serviceName)); +} +} +registerResources(resourceBuilder.build()); +}); +}); +} } diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/process/RestRequestHandler.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/process/RestRequestHandler.java new file mode 100644 index 000..0309cdf --- /dev/null +++
buildbot success in on ofbizTrunkFramework
The Buildbot has detected a restored build on builder ofbizTrunkFramework while building . Full details are available at: https://ci.apache.org/builders/ofbizTrunkFramework/builds/1905 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf947_ubuntu Build Reason: forced: by IRC user (privmsg): forces manual build after supposed BuildBot error Build Source Stamp: HEAD Blamelist: Build succeeded! Sincerely, -The Buildbot
buildbot failure in on ofbizTrunkFramework
The Buildbot has detected a new failure on builder ofbizTrunkFramework while building ofbiz-framework. Full details are available at: https://ci.apache.org/builders/ofbizTrunkFramework/builds/1904 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf946_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'onTrunkFrameworkCommit' triggered this build Build Source Stamp: [branch trunk] ae8b2d89b047d039382d555250b73161c2c2b438 Blamelist: Jacques Le Roux BUILD FAILED: failed testIntegration Sincerely, -The Buildbot
[ofbiz-framework] branch trunk updated: Improved: Checkstyle: Variable name must match pattern (OFBIZ-11926)
This is an automated email from the ASF dual-hosted git repository. jleroux 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 ae8b2d8 Improved: Checkstyle: Variable name must match pattern (OFBIZ-11926) ae8b2d8 is described below commit ae8b2d89b047d039382d555250b73161c2c2b438 Author: Jacques Le Roux AuthorDate: Wed Sep 16 10:13:37 2020 +0200 Improved: Checkstyle: Variable name must match pattern (OFBIZ-11926) Removes last remaining "Must have at least one statement" issues by using Debug.logVerbose Decreases tasks.checkstyleMain.maxErrors from 543 to 535 Thanks: Suraj for report --- .../org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java | 10 -- build.gradle | 2 +- .../src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java | 2 +- .../main/java/org/apache/ofbiz/entity/jdbc/DatabaseUtil.java | 2 +- .../main/java/org/apache/ofbiz/entity/jdbc/SqlJdbcUtil.java| 2 +- .../main/java/org/apache/ofbiz/entity/model/ModelReader.java | 5 ++--- .../src/main/java/org/apache/ofbiz/minilang/SimpleMethod.java | 1 + .../java/org/apache/ofbiz/widget/renderer/FormRenderer.java| 1 + .../main/java/org/apache/ofbiz/widget/renderer/Paginator.java | 1 + 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java index 1cfd26f..7691d60 100644 --- a/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java +++ b/applications/accounting/src/main/java/org/apache/ofbiz/accounting/tax/TaxAuthorityServices.java @@ -428,8 +428,7 @@ public class TaxAuthorityServices { .where(mainCondition).orderBy("minItemPrice", "minPurchase", "fromDate").filterByDate().queryList(); if (lookupList.isEmpty()) { -Debug.logWarning("In TaxAuthority Product Rate no records were found for condition:" + mainCondition -.toString(), MODULE); +Debug.logWarning("In TaxAuthority Product Rate no records were found for condition:" + mainCondition.toString(), MODULE); return adjustments; } @@ -471,14 +470,13 @@ public class TaxAuthorityServices { // get glAccountId from TaxAuthorityGlAccount entity using the payToPartyId as // the organizationPartyId GenericValue taxAuthorityGlAccount = EntityQuery.use(delegator).from("TaxAuthorityGlAccount") -.where("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, "organizationPartyId", -payToPartyId).queryOne(); +.where("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, "organizationPartyId", payToPartyId).queryOne(); String taxAuthGlAccountId = null; if (taxAuthorityGlAccount != null) { taxAuthGlAccountId = taxAuthorityGlAccount.getString("glAccountId"); } else { -// TODO: what to do if no TaxAuthorityGlAccount found? Use some default, or is -// that done elsewhere later on? +// TODO: what to do if no TaxAuthorityGlAccount found? Use some default, or is that done elsewhere later on? +Debug.logVerbose("what to do if no TaxAuthorityGlAccount found?", MODULE); } GenericValue productPrice = null; diff --git a/build.gradle b/build.gradle index c8e92d6..398b283 100644 --- a/build.gradle +++ b/build.gradle @@ -289,7 +289,7 @@ checkstyle { // the sum of errors found last time it was changed after using the // ‘checkstyle’ tool present in the framework and in the official // plugins. -tasks.checkstyleMain.maxErrors = 543 +tasks.checkstyleMain.maxErrors = 535 // Currently there are a lot of errors so we need to temporarily // hide them to avoid polluting the terminal output. showViolations = false diff --git a/framework/base/src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java b/framework/base/src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java index 3ae3eed..796058d 100755 --- a/framework/base/src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java +++ b/framework/base/src/main/java/org/apache/ofbiz/base/util/KeyStoreUtil.java @@ -206,8 +206,8 @@ public final class KeyStoreUtil { String line; // ignore up to the header -//TODO: Correct it for checkstyle while ((line = reader.readLine()) != null && !line.equals(header)) { +Debug.logVerbose("Ignore up to the
[ofbiz-plugins] branch trunk updated: Implemented: OpenAPI generation for resources configured using XML DSL(OFBIZ-11995)
This is an automated email from the ASF dual-hosted git repository. grv pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-plugins.git The following commit(s) were added to refs/heads/trunk by this push: new 85e76a3 Implemented: OpenAPI generation for resources configured using XML DSL(OFBIZ-11995) 85e76a3 is described below commit 85e76a3997d3d7df32e166f154da484abff85434 Author: Girish Vasmatkar AuthorDate: Wed Sep 16 13:10:46 2020 +0530 Implemented: OpenAPI generation for resources configured using XML DSL(OFBIZ-11995) --- .../ofbiz/ws/rs/openapi/OFBizOpenApiReader.java| 60 +- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/openapi/OFBizOpenApiReader.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/openapi/OFBizOpenApiReader.java index 480aa2a..182347a 100644 --- a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/openapi/OFBizOpenApiReader.java +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/openapi/OFBizOpenApiReader.java @@ -21,6 +21,7 @@ package org.apache.ofbiz.ws.rs.openapi; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashSet; +import java.util.List; import java.util.Map; import java.util.Set; @@ -34,7 +35,11 @@ import org.apache.ofbiz.service.GenericServiceException; import org.apache.ofbiz.service.LocalDispatcher; import org.apache.ofbiz.service.ModelService; import org.apache.ofbiz.webapp.WebAppUtil; +import org.apache.ofbiz.ws.rs.core.OFBizApiConfig; import org.apache.ofbiz.ws.rs.listener.ApiContextListener; +import org.apache.ofbiz.ws.rs.model.ModelApi; +import org.apache.ofbiz.ws.rs.model.ModelOperation; +import org.apache.ofbiz.ws.rs.model.ModelResource; import org.apache.ofbiz.ws.rs.util.OpenApiUtil; import io.swagger.v3.jaxrs2.Reader; @@ -89,8 +94,61 @@ public final class OFBizOpenApiReader extends Reader implements OpenApiReader { return openApi; } -// TODO - Add method contents private void addApiResources() { +Map apis = OFBizApiConfig.getModelApis(); +SecurityRequirement security = new SecurityRequirement(); +security.addList("jwtToken"); +apis.forEach((k, v) -> { +List resources = v.getResources(); +resources.forEach(modelResource -> { +Tag resourceTab = new Tag().name(modelResource.getDisplayName()).description(modelResource.getDescription()); +openApiTags.add(resourceTab); +String basePath = modelResource.getPath(); +for (ModelOperation op : modelResource.getOperations()) { +String uri = basePath + op.getPath(); +boolean pathExists = false; +PathItem pathItemObject = paths.get(uri); +if (UtilValidate.isEmpty(pathItemObject)) { +pathItemObject = new PathItem(); +} else { +pathExists = true; +} +String serviceName = op.getService(); +final Operation operation = new Operation().summary(op.getDescription()) + .description(op.getDescription()).addTagsItem(modelResource.getDisplayName()) + .operationId(serviceName).deprecated(false).addSecurityItem(security); +String verb = op.getVerb().toUpperCase(); +ModelService service = null; +try { +service = context.getModelService(serviceName); +} catch (GenericServiceException e) { +e.printStackTrace(); +} +if (verb.equalsIgnoreCase(HttpMethod.GET)) { +final QueryParameter serviceInParam = (QueryParameter) new QueryParameter().required(true) +.description("Operation Input Parameters in JSON").name("input"); +Schema refSchema = new Schema<>(); +refSchema.$ref("#/components/schemas/" + "api.request." + service.getName()); +serviceInParam.schema(refSchema); +operation.addParametersItem(serviceInParam); +} else if (verb.matches(HttpMethod.POST + "|" + HttpMethod.PUT + "|" + HttpMethod.PATCH)) { +RequestBody request = new RequestBody() +.description("Request Body for operation " + op.getDescription()) +.content(new Content().addMediaType(javax.ws.rs.core.MediaType.APPLICATION_JSON, +new MediaType().schema(new Schema<>() +.$ref("#/components/schemas/" + "api.request." + service.getName(); +
[ofbiz-framework] branch trunk updated: Improved: Convert ProductStoreServices.xml file from mini-lang to groovy DSL (OFBIZ-11449)
This is an automated email from the ASF dual-hosted git repository. nmalin 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 c0054e9 Improved: Convert ProductStoreServices.xml file from mini-lang to groovy DSL (OFBIZ-11449) c0054e9 is described below commit c0054e97ea8d5baf09fc10613c96a7bb3381640a Author: Nicolas Malin AuthorDate: Wed Sep 16 09:34:22 2020 +0200 Improved: Convert ProductStoreServices.xml file from mini-lang to groovy DSL (OFBIZ-11449) Thanks to Sebastian Berg for this patch --- .../product/store/ProductStoreServices.groovy | 464 ++ .../product/store/ProductStoreServices.xml | 542 - applications/product/servicedef/services_store.xml | 32 +- 3 files changed, 480 insertions(+), 558 deletions(-) diff --git a/applications/product/groovyScripts/product/store/ProductStoreServices.groovy b/applications/product/groovyScripts/product/store/ProductStoreServices.groovy new file mode 100644 index 000..9f05ebb --- /dev/null +++ b/applications/product/groovyScripts/product/store/ProductStoreServices.groovy @@ -0,0 +1,464 @@ +/* + * 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. + */ + + +import org.apache.ofbiz.base.util.Debug +import org.apache.ofbiz.entity.condition.EntityCondition +import org.apache.ofbiz.entity.condition.EntityConditionBuilder + +import java.sql.Timestamp + +import org.apache.ofbiz.base.util.UtilDateTime +import org.apache.ofbiz.base.util.UtilProperties +import org.apache.ofbiz.entity.GenericValue +import org.apache.ofbiz.entity.util.EntityTypeUtil +import org.apache.ofbiz.entity.util.EntityUtil +import org.apache.ofbiz.service.ServiceUtil + + +/** + * Create a Product Store + * @return + */ +def createProductStore() { +Map result = success() +if (!security.hasEntityPermission("CATALOG", "_CREATE", parameters.userLogin)) { +return error(UtilProperties.getMessage("ProductUiLabels", "ProductCatalogCreatePermissionError", parameters.locale)) +} +if ("Y" == parameters.oneInventoryFacility +&& !parameters.inventoryFacilityId) { +return error(UtilProperties.getMessage("ProductUiLabels", "InventoryFacilityIdRequired", parameters.locale)) +} +if ("Y" == parameters.showPriceWithVatTax) { +if (!parameters.vatTaxAuthGeoId) { +return error(UtilProperties.getMessage("ProductUiLabels", "ProductVatTaxAuthGeoNotSet", parameters.locale)) +} +if (!parameters.vatTaxAuthPartyId) { +return error(UtilProperties.getMessage("ProductUiLabels", "ProductVatTaxAuthPartyNotSet", parameters.locale)) +} +} +GenericValue newEntity = makeValue("ProductStore") +newEntity.setNonPKFields(parameters) +String productStoreId = delegator.getNextSeqId("ProductStore") +newEntity.productStoreId = productStoreId +newEntity.create() + +// create the ProductStoreFacility record +if (newEntity.inventoryFacilityId) { +makeValue("ProductStoreFacility", [ +facilityId: newEntity.inventoryFacilityId, +productStoreId: newEntity.productStoreId, +fromDate: UtilDateTime.nowTimestamp()]) +.create() +} +result.productStoreId = productStoreId +return result +} + +/** + * Update a Product Store + * @return + */ +def updateProductStore() { +if (!security.hasEntityPermission("CATALOG", "_UPDATE", parameters.userLogin)) { +return error(UtilProperties.getMessage("ProductUiLabels", "ProductCatalogUpdatePermissionError", parameters.locale)) +} +if ("Y" == parameters.oneInventoryFacility +&& !parameters.inventoryFacilityId) { +return error(UtilProperties.getMessage("ProductUiLabels", "InventoryFacilityIdRequired", parameters.locale)) +} +GenericValue store = from("ProductStore").where(productStoreId: parameters.productStoreId).queryOne() +String oldFacilityId = store.inventoryFacilityId +store.setNonPKFields(parameters) + +// visualThemeId must be replaced by ecomThemeId because of Entity.field
[ofbiz-framework] branch trunk updated: Improved: Demo Data in conflict with Entity Unique Index when loading data during creation (OFBIZ-11998)
This is an automated email from the ASF dual-hosted git repository. jleroux 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 231f97f Improved: Demo Data in conflict with Entity Unique Index when loading data during creation (OFBIZ-11998) 231f97f is described below commit 231f97f030ad14b04542f6214ef48a8b74b551b4 Author: Jacques Le Roux AuthorDate: Wed Sep 16 09:09:06 2020 +0200 Improved: Demo Data in conflict with Entity Unique Index when loading data during creation (OFBIZ-11998) This is a known issue with MsSQL since http://ofbiz.135035.n4.nabble.com/Unique-constraint-on-Person-cardId-breaks-ofbiz-on-SQL-Server-td4656840.html The problem does not exist with Derby, nor with the mostly open source DBMS used with OFBiz: Postres, MySQL, MariaDB, etc. So we will not change the current OOTB setting and suggest to simply change your own configuration Thanks: Schumann Ye for report --- framework/entity/config/entityengine.xml | 4 1 file changed, 4 insertions(+) diff --git a/framework/entity/config/entityengine.xml b/framework/entity/config/entityengine.xml index 8e4301c..1dd11c1 100644 --- a/framework/entity/config/entityengine.xml +++ b/framework/entity/config/entityengine.xml @@ -722,6 +722,10 @@ access. For a detailed description see the core/docs/entityconfig.html file. http://forum.java.sun.com/thread.jspa?forumID=48=184797 b. If using an old version of the driver, beware of this resource leak: http://support.microsoft.com/kb/820773/ + c. Demo data are in conflict with Entity Unique Index when loading data + This is a known issue with MsSQL since http://ofbiz.135035.n4.nabble.com/Unique-constraint-on-Person-cardId-breaks-ofbiz-on-SQL-Server-td4656840.html + The problem does not exist with Derby, nor with the mostly open source DBMS used with OFBiz: Postres, MySQL, MariaDB, etc. + So we will not change the current OOTB setting and suggest to simply change your own configuration. See OFBIZ-11998 for more. -->