S++Business systems language
DEMO SOURCE · SPP / APP / PHYRead the book

petshop.phy

petshop/petshop.phy

Download original file · Petstore source contents

1domain petshop;23phy {4    numeric {5        replace BigDecimal(9, 2) with BigDecimal(18, 2);6        override Buyer.wallet with BigDecimal(25, 2);7    }8    config requestIdempotencyAdapter = "jdbc";9    i18n {10        resources: "../../resources/i18n/petshop/";11        defaultLocale: "en-US";12    }13    environment develop {14        repository shopRecords {15            adapter jdbcObjectRepository;16            config default = true;1718            config appDdlTables = true;19            config datasourceUrl = "${spp.petstore.datasource-url:jdbc:h2:mem:petstore;DB_CLOSE_DELAY=-1}";20            config driverClassName = "org.h2.Driver";21            config table = "petstore_records";22        }23        backend shopDatabase {24            adapter localJdbc;25            at shopRecordsResource;26            repository shopRecords;27            quantumStore shopLedger;28            config datasourceUrl = "${spp.petstore.datasource-url:jdbc:h2:mem:petstore;DB_CLOSE_DELAY=-1}";29            config driverClassName = "org.h2.Driver";30        }31        quantumStore shopLedger {32            adapter jdbcQuantum;33            config datasourceUrl = "${spp.petstore.datasource-url:jdbc:h2:mem:petstore;DB_CLOSE_DELAY=-1}";34            config driverClassName = "org.h2.Driver";35            config journalStore = "free.servpp.service.transaction.JdbcQuantumJournalStore";36            config journalTable = "petstore_quantum_journal";37            config valueTable = "petstore_quantum_value";38            config decimalStorage = "text";39        }40    }41    environment testing {42        config domainRpcToken = "${spp.petstore.testing.rpc-token}";43        repository shopRecords {44            adapter jdbcObjectRepository;45            config default = true;46            config appDdlTables = true;47            config datasourceUrl = "${spp.petstore.testing.shop-url:jdbc:h2:file:./petstore-demo/target/testing-shop;DB_CLOSE_DELAY=-1}";48            config driverClassName = "org.h2.Driver";49            config table = "petstore_records";50        }51        backend shopDatabase {52            adapter localJdbc;53            saga shopRecordsResource;54            repository shopRecords;55            config datasourceUrl = "${spp.petstore.testing.shop-url:jdbc:h2:file:./petstore-demo/target/testing-shop;DB_CLOSE_DELAY=-1}";56            config driverClassName = "org.h2.Driver";57        }58        backend sharedLedger {59            adapter localJdbc;60            quantum shopLedger;61            quantumStore shopLedger;62            config datasourceUrl = "${spp.petstore.testing.ledger-url:jdbc:h2:file:./petstore-demo/target/testing-ledger;DB_CLOSE_DELAY=-1}";63            config driverClassName = "org.h2.Driver";64        }65        quantumStore shopLedger {66            adapter jdbcQuantum;67            config datasourceUrl = "${spp.petstore.testing.ledger-url:jdbc:h2:file:./petstore-demo/target/testing-ledger;DB_CLOSE_DELAY=-1}";68            config driverClassName = "org.h2.Driver";69            config journalStore = "free.servpp.service.transaction.JdbcQuantumJournalStore";70            config journalTable = "petstore_quantum_journal";71            config valueTable = "petstore_quantum_value";72            config decimalStorage = "text";73        }74        domainRoute customer {75            endpoint: "${spp.petstore.testing.customer-endpoint:http://127.0.0.1:8087}";76            timeoutMillis: 5000;77        }78        domainRoute product {79            endpoint: "${spp.petstore.testing.product-endpoint:http://127.0.0.1:8088}";80            timeoutMillis: 5000;81        }82    }83}