Skip to content

Commit

Permalink
Add manual example for json schema refs
Browse files Browse the repository at this point in the history
  • Loading branch information
carlesarnal committed Oct 28, 2024
1 parent 29d11cf commit 63518ad
Show file tree
Hide file tree
Showing 10 changed files with 1,012 additions and 33 deletions.
142 changes: 142 additions & 0 deletions examples/json-maven-with-references/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>apicurio-registry-examples</artifactId>
<groupId>io.apicurio</groupId>
<version>2.6.6-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>apicurio-registry-examples-json-maven-with-references</artifactId>
<packaging>jar</packaging>

<build>
<plugins>
<plugin>
<groupId>io.apicurio</groupId>
<artifactId>apicurio-registry-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<id>register-artifact</id>
<goals>
<goal>register</goal>
</goals>
<phase>process-test-resources</phase>
<configuration>
<registryUrl>http://localhost:8080/apis/registry/v2</registryUrl>
<artifacts>
<artifact>
<groupId>json-maven-with-references</groupId>
<artifactId>stockAdjustment</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/out/jsd/FLIStockAdjustment.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
<references>
<reference>
<name>../../common/jsd/FLIServiceTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIServiceTypes</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/common/jsd/FLIServiceTypes.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
</reference>
<reference>
<name>../../common/jsd/FLIStockTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIStockTypes</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/common/jsd/FLIStockTypes.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
<references>
<reference>
<name>../../common/jsd/FLIItemBaseTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIItemBaseTypes</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/common/jsd/FLIItemBaseTypes.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
<references>
<reference>
<name>../../common/jsd/FLIBusinessUnitBaseTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIBusinessUnitBaseTypes</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/common/jsd/FLIBusinessUnitBaseTypes.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
<references>
<reference>
<name>../../common/jsd/FLIServiceTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIServiceTypes</artifactId>
<version>1.0.0</version>
</reference>
</references>
</reference>
</references>
</reference>
<reference>
<name>../../common/jsd/FLIBusinessUnitBaseTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIBusinessUnitBaseTypes</artifactId>
<version>1.0.0</version>
</reference>
<reference>
<name>../../common/jsd/FLIServiceTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIServiceTypes</artifactId>
<version>1.0.0</version>
</reference>
</references>
</reference>
<reference>
<name>../../common/jsd/FLIBusinessUnitBaseTypes.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>FLIBusinessUnitBaseTypes</artifactId>
<version>1.0.0</version>
</reference>
<reference>
<name>../../common/jsd/FLIMessageHeader.json</name>
<groupId>json-maven-with-references</groupId>
<artifactId>MsgHeaderType</artifactId>
<version>1.0.0</version>
<type>JSON</type>
<file>
${project.basedir}/src/main/resources/schemas/common/jsd/FLIMessageHeader.json
</file>
<ifExists>RETURN_OR_UPDATE</ifExists>
<canonicalize>true</canonicalize>
</reference>
</references>
</artifact>
</artifacts>
<existingReferences></existingReferences>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "FLIBusinessUnitBaseTypes.json",
"type": "object",
"$defs": {
"buCodeType": {
"type": "string",
"pattern": "(^[0-9A-Z]{3,5})|AP"
},
"buTypeType": {
"type": "string",
"pattern": "(^[A-Z]{2,3})"
},
"BusinessUnitReferenceType": {
"type": "object",
"required": [
"BusinessUnitCode",
"BusinessUnitType"
],
"properties": {
"BusinessUnitCode": {
"$ref": "#/$defs/buCodeType"
},
"BusinessUnitType": {
"$ref": "#/$defs/buTypeType"
}
},
"additionalProperties": false
},
"BusinessUnitAddressReferenceType": {
"type": "object",
"required": [
"BusinessUnitCode",
"BusinessUnitType",
"BusinessUnitSequence"
],
"properties": {
"BusinessUnitCode": {
"$ref": "#/$defs/buCodeType"
},
"BusinessUnitType": {
"$ref": "#/$defs/buTypeType"
},
"BusinessUnitSequence": {
"$ref": "../../common/jsd/FLIServiceTypes.json#/$defs/positiveInteger4"
}
},
"additionalProperties": false
}
},
"anyOf": [
{
"$ref": "#/$defs/BusinessUnitReferenceType"
},
{
"$ref": "#/$defs/BusinessUnitAddressReferenceType"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@

{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "FLIItemBaseTypes.json",
"$defs": {
"ItemReferenceType": {
"type": "object",
"properties": {
"ItemNumber": {
"type": "string",
"minLength": 1,
"maxLength": 15
},
"ItemType": {
"type": "string",
"enum": [
"ADS",
"ART",
"CCI",
"HM",
"OAD",
"SGR",
"SPR"
]
}
},
"required": [
"ItemNumber",
"ItemType"
],
"additionalProperties": false
},
"ItemSKUType": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"DWPReferenceType": {
"type": "object",
"properties": {
"ItemReference": {
"$ref": "#/$defs/ItemReferenceType"
},
"ItemSupplierReference": {
"$ref": "../../common/jsd/FLIBusinessUnitBaseTypes.json#/$defs/BusinessUnitReferenceType"
},
"DWPNumber": { "type": "integer" },
"DWPEdition": { "type": "integer" },
"DWPFromPackagingDate": {
"type": "string",
"format": "date"
}
},
"required": [
"ItemReference",
"ItemSupplierReference",
"DWPNumber",
"DWPEdition",
"DWPFromPackagingDate"
],
"additionalProperties": false
}
},
"anyOf": [
{ "$ref": "#/$defs/ItemReferenceType" },
{ "$ref": "#/$defs/DWPReferenceType" }
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$id": "FLIMessageHeader.json",
"$defs": {
"MsgHeaderType": {
"type": "object",
"properties": {
"MsgName": {
"type": "string",
"minLength": 1,
"maxLength": 36
},
"MsgVersNo": {
"type": "string",
"minLength": 1,
"maxLength": 10
},
"MsgDateTime": {
"type": "string",
"format": "date-time",
"pattern": "^(.{20})([0-9]{3})[+-]((2[0-3]|[01][0-9])[:]([0-5][0-9]))$"
},
"MsgReference": {
"type": "string",
"minLength": 1,
"maxLength": 36
},
"SendingSystem": {
"type": "string",
"minLength": 1,
"maxLength": 20
},
"SendingUnit": {
"type": "object",
"properties": {
"BUCode": {
"type": "string",
"minLength": 3,
"maxLength": 5
},
"BUType": {
"type": "string",
"minLength": 2,
"maxLength": 3
}
},
"required": [
"BUCode",
"BUType"
],
"additionalProperties": false
},
"LogicalRoutingIdentifier": {
"type": "object",
"properties": {
"SourceCode": {
"type": "string",
"minLength": 1
},
"SourceType": {
"type": "string",
"minLength": 1
},
"SourceLookupType": {
"type": "string",
"minLength": 1
}
},
"required": [
"SourceCode",
"SourceType"
],
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"MsgName",
"MsgVersNo",
"MsgDateTime",
"MsgReference",
"SendingSystem"
]
}
},
"type": "object",
"properties": {
"MsgHeader": {
"$ref": "#/$defs/MsgHeaderType"
}
},
"required": [
"MsgHeader"
],
"additionalProperties": false
}
Loading

0 comments on commit 63518ad

Please sign in to comment.