You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by gr...@apache.org on 2020/10/13 03:06:58 UTC
[ofbiz-plugins] branch trunk updated: Implemented: Addes a new
'publish' attribute to API element allowing a specific API to be disabled
from publishing(OFBIZ-11328)
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 583d0a6 Implemented: Addes a new 'publish' attribute to API element allowing a specific API to be disabled from publishing(OFBIZ-11328)
583d0a6 is described below
commit 583d0a64ee19b5c975ffaae22c23f37c81913b2b
Author: Girish Vasmatkar <gi...@hotwaxsystems.com>
AuthorDate: Tue Oct 13 08:36:34 2020 +0530
Implemented: Addes a new 'publish' attribute to API element allowing a specific API to be disabled from publishing(OFBIZ-11328)
---
ofbiz-rest-impl/dtd/rest-api.xsd | 1 +
.../apache/ofbiz/ws/rs/core/OFBizApiConfig.java | 4 ++++
.../org/apache/ofbiz/ws/rs/model/ModelApi.java | 15 ++++++++++++
.../apache/ofbiz/ws/rs/model/ModelApiReader.java | 27 ++++++++++++++--------
.../ofbiz/ws/rs/openapi/OFBizOpenApiReader.java | 3 +++
5 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/ofbiz-rest-impl/dtd/rest-api.xsd b/ofbiz-rest-impl/dtd/rest-api.xsd
index 972dfcf..2b7f4a2 100644
--- a/ofbiz-rest-impl/dtd/rest-api.xsd
+++ b/ofbiz-rest-impl/dtd/rest-api.xsd
@@ -27,6 +27,7 @@ under the License.
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="displayName" type="xs:string"/>
<xs:attribute name="description" type="xs:string"/>
+ <xs:attribute name="publish" type="xs:boolean" default="true"/>
</xs:complexType>
</xs:element>
<xs:element name="resource">
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 4e16d3f..0e2d13a 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
@@ -100,6 +100,10 @@ public class OFBizApiConfig extends ResourceConfig {
return;
}
MICRO_APIS.forEach((k, v) -> {
+ if (!v.isPublish()) {
+ Debug.logInfo("API '" + v.getName() + "' is declared to be a non-publish, ignoring...", MODULE);
+ return;
+ }
Debug.logInfo("Registring Resource Definitions from API - " + k, MODULE);
List<ModelResource> resources = v.getResources();
resources.forEach(modelResource -> {
diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java
index 2381e5a..d57a805 100644
--- a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java
+++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java
@@ -27,6 +27,7 @@ public class ModelApi {
private String name;
private String displayName;
private String description;
+ private boolean publish;
/**
* @return
@@ -110,4 +111,18 @@ public class ModelApi {
this.description = value;
}
+ /**
+ * @return the publish
+ */
+ public boolean isPublish() {
+ return publish;
+ }
+
+ /**
+ * @param publish the publish to set
+ */
+ public void setPublish(boolean publish) {
+ this.publish = publish;
+ }
+
}
diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java
index 0bfe9da..0bc8c3c 100644
--- a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java
+++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java
@@ -46,21 +46,28 @@ public final class ModelApiReader {
}
docElement.normalize();
ModelApi api = new ModelApi();
+ api.setDisplayName(UtilXml.checkEmpty(docElement.getAttribute("displayName")).intern());
+ api.setName(UtilXml.checkEmpty(docElement.getAttribute("name")).intern());
+ api.setDescription(UtilXml.checkEmpty(docElement.getAttribute("description")).intern());
+ api.setPublish(Boolean.parseBoolean(UtilXml.checkEmpty(docElement.getAttribute("publish")).intern()));
for (Element resourceEle : UtilXml.childElementList(docElement, "resource")) {
- ModelResource resource = new ModelResource()
- .name(UtilXml.checkEmpty(resourceEle.getAttribute("name")).intern())
- .description(UtilXml.checkEmpty(resourceEle.getAttribute("description")).intern())
- .displayName(UtilXml.checkEmpty(resourceEle.getAttribute("displayName")).intern())
- .path(UtilXml.checkEmpty(resourceEle.getAttribute("path")).intern())
- .publish(Boolean.parseBoolean(UtilXml.checkEmpty(resourceEle.getAttribute("publish")).intern()))
- .auth(Boolean.parseBoolean(UtilXml.checkEmpty(resourceEle.getAttribute("auth")).intern()));
- createOperations(resourceEle, resource);
- Debug.logInfo(resource.toString(), MODULE);
- api.addResource(resource);
+ createModelResource(resourceEle, api);
}
return api;
}
+ private static void createModelResource(Element resourceEle, ModelApi modelApi) {
+ ModelResource resource = new ModelResource().name(UtilXml.checkEmpty(resourceEle.getAttribute("name")).intern())
+ .description(UtilXml.checkEmpty(resourceEle.getAttribute("description")).intern())
+ .displayName(UtilXml.checkEmpty(resourceEle.getAttribute("displayName")).intern())
+ .path(UtilXml.checkEmpty(resourceEle.getAttribute("path")).intern())
+ .publish(Boolean.parseBoolean(UtilXml.checkEmpty(resourceEle.getAttribute("publish")).intern()))
+ .auth(Boolean.parseBoolean(UtilXml.checkEmpty(resourceEle.getAttribute("auth")).intern()));
+ createOperations(resourceEle, resource);
+ Debug.logInfo(resource.toString(), MODULE);
+ modelApi.addResource(resource);
+ }
+
private static void createOperations(Element resourceEle, ModelResource resource) {
for (Element operationEle : UtilXml.childElementList(resourceEle, "operation")) {
Element serviceEle = UtilXml.firstChildElement(operationEle, "service");
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 95c9a6f..87aebe5 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
@@ -101,6 +101,9 @@ public final class OFBizOpenApiReader extends Reader implements OpenApiReader {
SecurityRequirement security = new SecurityRequirement();
security.addList("jwtToken");
apis.forEach((k, v) -> {
+ if (!v.isPublish()) {
+ return;
+ }
List<ModelResource> resources = v.getResources();
resources.forEach(modelResource -> {
Tag resourceTab = new Tag().name(modelResource.getDisplayName()).description(modelResource.getDescription());