Skip to content

Instantly share code, notes, and snippets.

@deepu105
Created March 25, 2022 08:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deepu105/1e41e86b7f927eacfc0d29e7f7247391 to your computer and use it in GitHub Desktop.
Save deepu105/1e41e86b7f927eacfc0d29e7f7247391 to your computer and use it in GitHub Desktop.
JDL -> JSON
{
"applications": [
{
"config": {
"baseName": "store",
"applicationType": "gateway",
"packageName": "com.jhipster.demo.store",
"packageFolder": "com/jhipster/demo/store",
"serviceDiscoveryType": "no",
"authenticationType": "jwt",
"prodDatabaseType": "mysql",
"cacheProvider": "hazelcast",
"buildTool": "gradle",
"clientFramework": "react",
"useSass": true,
"testFrameworks": [
"protractor"
]
},
"entities": {
"entityList": [
"*"
],
"excluded": []
},
"options": {}
},
{
"config": {
"baseName": "product",
"applicationType": "microservice",
"packageName": "com.jhipster.demo.product",
"packageFolder": "com/jhipster/demo/product",
"serviceDiscoveryType": "no",
"authenticationType": "jwt",
"prodDatabaseType": "mysql",
"cacheProvider": "hazelcast",
"buildTool": "gradle",
"serverPort": "8081"
},
"entities": {
"entityList": [
"Product",
"ProductCategory",
"ProductOrder",
"OrderItem"
],
"excluded": []
},
"options": {}
},
{
"config": {
"baseName": "invoice",
"applicationType": "microservice",
"packageName": "com.jhipster.demo.invoice",
"packageFolder": "com/jhipster/demo/invoice",
"serviceDiscoveryType": "no",
"authenticationType": "jwt",
"prodDatabaseType": "mysql",
"buildTool": "gradle",
"serverPort": "8082"
},
"entities": {
"entityList": [
"Invoice",
"Shipment"
],
"excluded": []
},
"options": {}
},
{
"config": {
"baseName": "notification",
"applicationType": "microservice",
"packageName": "com.jhipster.demo.notification",
"packageFolder": "com/jhipster/demo/notification",
"serviceDiscoveryType": "no",
"authenticationType": "jwt",
"databaseType": "mongodb",
"cacheProvider": "no",
"enableHibernateCache": false,
"buildTool": "gradle",
"serverPort": "8083"
},
"entities": {
"entityList": [
"Notification"
],
"excluded": []
},
"options": {}
}
],
"deployments": [
{
"deploymentType": "kubernetes",
"appsFolders": [
"store",
"invoice",
"notification",
"product"
],
"dockerRepositoryName": "deepu105",
"serviceDiscoveryType": "no",
"istio": true,
"kubernetesServiceType": "Ingress",
"kubernetesNamespace": "jhipster",
"ingressDomain": "34.90.236.124.nip.io"
}
],
"constants": {},
"entities": [
{
"annotations": [],
"name": "Customer",
"tableName": "Customer",
"body": [
{
"name": "firstName",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "lastName",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "gender",
"type": "Gender",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "email",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
},
{
"key": "pattern",
"value": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
}
],
"javadoc": null,
"annotations": []
},
{
"name": "phone",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "addressLine1",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "addressLine2",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "city",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "country",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
}
],
"javadoc": "\n* Entities for Store Gateway\n"
},
{
"annotations": [],
"name": "Product",
"tableName": "Product",
"body": [
{
"name": "name",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "description",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "price",
"type": "BigDecimal",
"validations": [
{
"key": "required",
"value": ""
},
{
"key": "min",
"value": "0"
}
],
"javadoc": null,
"annotations": []
},
{
"name": "size",
"type": "Size",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "image",
"type": "ImageBlob",
"validations": [],
"javadoc": null,
"annotations": []
}
],
"javadoc": "\n* Entities for product microservice\n"
},
{
"annotations": [],
"name": "ProductCategory",
"tableName": "ProductCategory",
"body": [
{
"name": "name",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "description",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
}
],
"javadoc": null
},
{
"annotations": [],
"name": "ProductOrder",
"tableName": "ProductOrder",
"body": [
{
"name": "placedDate",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "status",
"type": "OrderStatus",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "code",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "invoiceId",
"type": "Long",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "customer",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
}
],
"javadoc": null
},
{
"annotations": [],
"name": "OrderItem",
"tableName": "OrderItem",
"body": [
{
"name": "quantity",
"type": "Integer",
"validations": [
{
"key": "required",
"value": ""
},
{
"key": "min",
"value": "0"
}
],
"javadoc": null,
"annotations": []
},
{
"name": "totalPrice",
"type": "BigDecimal",
"validations": [
{
"key": "required",
"value": ""
},
{
"key": "min",
"value": "0"
}
],
"javadoc": null,
"annotations": []
},
{
"name": "status",
"type": "OrderItemStatus",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
}
],
"javadoc": null
},
{
"annotations": [],
"name": "Invoice",
"tableName": "Invoice",
"body": [
{
"name": "code",
"type": "String",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "date",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "details",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "status",
"type": "InvoiceStatus",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "paymentMethod",
"type": "PaymentMethod",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "paymentDate",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "paymentAmount",
"type": "BigDecimal",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
}
],
"javadoc": "\n* Entities for Invoice microservice\n"
},
{
"annotations": [],
"name": "Shipment",
"tableName": "Shipment",
"body": [
{
"name": "trackingCode",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "date",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "details",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
}
],
"javadoc": null
},
{
"annotations": [],
"name": "Notification",
"tableName": "Notification",
"body": [
{
"name": "date",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "details",
"type": "String",
"validations": [],
"javadoc": null,
"annotations": []
},
{
"name": "sentDate",
"type": "Instant",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "format",
"type": "NotificationType",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "userId",
"type": "Long",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
},
{
"name": "productId",
"type": "Long",
"validations": [
{
"key": "required",
"value": ""
}
],
"javadoc": null,
"annotations": []
}
],
"javadoc": "\n* Entities for notification microservice\n"
}
],
"relationships": [
{
"from": {
"name": "Customer",
"injectedField": "user(login)",
"javadoc": null,
"required": true
},
"to": {
"name": "User",
"injectedField": null,
"javadoc": null
},
"options": [],
"cardinality": "OneToOne"
},
{
"from": {
"name": "OrderItem",
"injectedField": "product(name)",
"javadoc": null,
"required": true
},
"to": {
"name": "Product",
"injectedField": null,
"javadoc": null
},
"options": [],
"cardinality": "ManyToOne"
},
{
"from": {
"name": "ProductOrder",
"injectedField": "orderItem",
"javadoc": null,
"required": false
},
"to": {
"name": "OrderItem",
"injectedField": "order(code)",
"javadoc": null,
"required": true
},
"options": [],
"cardinality": "OneToMany"
},
{
"from": {
"name": "ProductCategory",
"injectedField": "product",
"javadoc": null,
"required": false
},
"to": {
"name": "Product",
"injectedField": "productCategory(name)",
"javadoc": null,
"required": false
},
"options": [],
"cardinality": "OneToMany"
},
{
"from": {
"name": "Invoice",
"injectedField": "shipment",
"javadoc": null,
"required": false
},
"to": {
"name": "Shipment",
"injectedField": "invoice(code)",
"javadoc": null,
"required": true
},
"options": [],
"cardinality": "OneToMany"
}
],
"enums": [
{
"name": "Gender",
"values": [
{
"key": "MALE"
},
{
"key": "FEMALE"
},
{
"key": "OTHER"
}
]
},
{
"name": "Size",
"values": [
{
"key": "S"
},
{
"key": "M"
},
{
"key": "L"
},
{
"key": "XL"
},
{
"key": "XXL"
}
]
},
{
"name": "OrderStatus",
"values": [
{
"key": "COMPLETED"
},
{
"key": "PENDING"
},
{
"key": "CANCELLED"
}
]
},
{
"name": "OrderItemStatus",
"values": [
{
"key": "AVAILABLE"
},
{
"key": "OUT_OF_STOCK"
},
{
"key": "BACK_ORDER"
}
]
},
{
"name": "InvoiceStatus",
"values": [
{
"key": "PAID"
},
{
"key": "ISSUED"
},
{
"key": "CANCELLED"
}
]
},
{
"name": "PaymentMethod",
"values": [
{
"key": "CREDIT_CARD"
},
{
"key": "CASH_ON_DELIVERY"
},
{
"key": "PAYPAL"
}
]
},
{
"name": "NotificationType",
"values": [
{
"key": "EMAIL"
},
{
"key": "SMS"
},
{
"key": "PARCEL"
}
]
}
],
"options": {
"service": {
"serviceClass": {
"list": [
"Customer",
"Product",
"ProductCategory",
"ProductOrder",
"OrderItem",
"Invoice",
"Shipment"
],
"excluded": []
}
},
"pagination": {
"pagination": {
"list": [
"Customer",
"Product",
"ProductOrder",
"OrderItem",
"Invoice",
"Shipment"
],
"excluded": []
}
},
"microservice": {
"product": {
"list": [
"Product",
"ProductOrder",
"ProductCategory",
"OrderItem"
],
"excluded": []
},
"invoice": {
"list": [
"Invoice",
"Shipment"
],
"excluded": []
},
"notification": {
"list": [
"Notification"
],
"excluded": []
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment