From 136caa8cdbb72946fa9c3a3ff784d2994e60fdd5 Mon Sep 17 00:00:00 2001 From: Kipchumba Bett Date: Fri, 26 Jan 2024 00:04:29 -0800 Subject: [PATCH] OZ-348: Alignment with new `eip-client` + rm properties in favor of env vars. --- .gitignore | 5 + .../properties/application.properties | 223 ------------------ .../properties/application.properties | 189 --------------- distro/pom.xml | 105 ++++----- pom.xml | 10 +- 5 files changed, 54 insertions(+), 478 deletions(-) delete mode 100644 distro/configs/eip-odoo-openmrs/properties/application.properties delete mode 100644 distro/configs/eip-openmrs-senaite/properties/application.properties diff --git a/.gitignore b/.gitignore index b54d2c7..fa54bc3 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,8 @@ buildNumber.properties # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) !/.mvn/wrapper/maven-wrapper.jar + +## IntelliJ IDEA ## +.idea/ +*.iws +*.iml diff --git a/distro/configs/eip-odoo-openmrs/properties/application.properties b/distro/configs/eip-odoo-openmrs/properties/application.properties deleted file mode 100644 index 5fa4ad6..0000000 --- a/distro/configs/eip-odoo-openmrs/properties/application.properties +++ /dev/null @@ -1,223 +0,0 @@ -# -# *********************** Service-specific properties **************************************************************** -# -# -# The base URL to the Odoo instance -odoo.baseUrl=${ODOO_URL} - -# The database name to use to log into the Odoo instance -odoo.database=${ODOO_DATABASE} - -# The username for the account to use to log into the Odoo instance -odoo.username=${ODOO_USER} - -# The password for the account to use to log into the Odoo instance -odoo.password=${ODOO_PASSWORD} - -# The address type to use for customer addresses in Odoo -odoo.customer.address.type=contact - -odoo.handler.route=odoo-order-handler - -create.customer.if.not.exist=${CREATE_CUSTOMER_IF_NOT_EXIST} - -# ************************ Properties to enable syncing of additional customer details ************************* - -# UUID for concept that is used to record a patient's weight. It is usually 5089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -emr.weight.concept=${EMR_WEIGHT_CONCEPT} - -# Custom property for the res.partner model in odoo -odoo.emr.id.field=${ODOO_CUSTOMER_EXTERNAL_ID} - -# Custom property for the res.partner model in odoo to capture customer's date of birth -odoo.dob.field=${ODOO_CUSTOMER_DOB_FIELD} - -# Custom property for the res.partner model in odoo to capture customer's weight -odoo.weight.field=${ODOO_CUSTOMER_WEIGHT_FIELD} - -# Used to turn on or off the route that allows to sync extra patient details like weight and/or date of birth -odoo.enable.extra.customer.details.route=${ODOO_ENABLE_EXTRA_CUSTOMER_FIELDS_ROUTE} - -# Used to turn on or off the route that allows to sync extra patient details like weight as part of the customer quotation -odoo.enable.extra.quotation.details.route=${ODOO_ENABLE_EXTRA_QUOTATION_FIELDS_ROUTE} - -# -# *********************** Properties needed by the 'orders' routes **************************************************************** -# - -# Custom table to OpenMRS REST resource name mappings -odoo.custom.table.resource.mappings=orders:order,test_order:order,drug_order:order -# - -# -# *********************** EIP Client shared properties **************************************************************** -# -# TODO: Should probably be part of the Docker image -# - -camel.springboot.xml-routes=classpath*:camel/*.xml,file:routes/*.xml,file:routes/*/*.xml,file:routes/*/*/*.xml -openmrs.db.host=${OPENMRS_DB_HOST} - -# The OpenMRS MySQL database port -openmrs.db.port=${OPENMRS_DB_PORT} - -# The OpenMRS MySQL database name -openmrs.db.name=${OPENMRS_DB_NAME} -# *********************** General EIP sender properties **************************************************************** -# - -# Maximum size of each batch of source records to be read by debezium from the binlog files, maps to the -## debezium MySQL connector property named max.batch.size -#https://debezium.io/documentation/reference/1.6/connectors/mysql.html#mysql-property-max-batch-size -debezium.reader.maxBatchSize=2048 - -#Enabled Oauth when set to true -oauth.enabled=${OAUTH_ENABLED} - -#The client Id of the account -oauth.access.token.uri=${OAUTH_ACCESS_TOKEN_URI} - -#The client Id of the account to use to authenticate -oauth.client.id=${OAUTH_CLIENT_ID} - -#The client secret of the account to use to authenticate -oauth.client.secret=${OAUTH_CLIENT_SECRET} -#Authentication scope, can be multiple values separated by commas -oauth.client.scope=email - -eip.home=/eip-home - -# Camel endpoints that need to be notified of DB events -db-event.destinations=${DB_EVENT_DESTINATIONS_ODOO} - -# A comma separated list of database tables names to watch for changes -eip.watchedTables=patient,person_name,person_address,patient_identifier,orders,test_order,drug_order - -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Logging Configuration ************************************************************************ -# -# Uncomment this to use console logging otherwise defaults to the logback.xml file located on the classpath which is -# configured to log to ${eip.home}/logs/openmrs-eip.log -logging.config=classpath:logback-console.xml - -# Logging level for the application loggers (all built-in routes and classes) -openmrs.eip.log.level=INFO - -# Logging level for ONLY application class loggers -logging.level.org.openmrs.eip=${openmrs.eip.log.level} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Tomcat Configuration ************************************************************************* -# -# Server HTTP port. -server.port=8083 -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** H2 configuration ***************************************************************************** -# -# Whether to enable the console -#spring.h2.console.enabled=false - -# Path at which the console is available, defaults to /h2-console -# spring.h2.console.path= -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Configuration of the OpenMRS Web App ********************************************************* -# -# OpenMRS user credentials -openmrs.username=${OPENMRS_USER} -openmrs.password=${OPENMRS_PASSWORD} - -# OpenMRS base url -openmrs.baseUrl=${OPENMRS_URL}/openmrs - -# The results encounter type for all patient result observations -results.encounterType.uuid=${RESULTS_ENCOUNTER_TYPE_UUID} - -concept.complex.uuid=${CONCEPT_COMPLEX_UUID} - -# ---------------------------------------------------------------------------------------------------------------------- -openmrs.identifier.type.uuid=${OPENMRS_IDENTIFIER_TYPE_UUD} - - -# *********************** OpenMRS Datasource config ******************************************************************** -# -# Driver class of the openMRS datasource (should not be changed in a usual use) -spring.openmrs-datasource.driverClassName=com.mysql.jdbc.Driver -# -# Dialect of the openMRS datasource (should not be changed in a usual use) -spring.openmrs-datasource.dialect=org.hibernate.dialect.MySQLDialect - -# Url of the openMRS datasource, you don't have to change this value as long you've set the placeholder property values -spring.openmrs-datasource.jdbcUrl=jdbc:mysql://${openmrs.db.host}:${openmrs.db.port}/${openmrs.db.name} - -# User name of the openMRS datasource -spring.openmrs-datasource.username=${OPENMRS_DB_USER} - -# Password of the openMRS datasource -spring.openmrs-datasource.password=${OPENMRS_DB_PASSWORD} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Configuration of the Management database ***************************************************** -# -# Driver class of the management datasource (should not be changed in a usual use) -spring.mngt-datasource.driverClassName=com.mysql.jdbc.Driver - -# Dialect of the management datasource (should not be changed in a usual use) -spring.mngt-datasource.dialect=org.hibernate.dialect.MySQLDialect - -# Url of the management datasource -# spring.mngt-datasource.jdbcUrl=jdbc:h2:mem:test;DB_CLOSE_DELAY=30;LOCK_TIMEOUT=10000 -spring.mngt-datasource.jdbcUrl=jdbc:mysql://${openmrs.db.host}:${openmrs.db.port}/${EIP_DB_NAME} - -# User name of the management datasource -spring.mngt-datasource.username=${EIP_DB_USER} - -# Password of the management datasource -spring.mngt-datasource.password=${EIP_DB_PASSWORD} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Debezium Config ****************************************************************************** -# -# For details explanations of this properties, please refer to -# https://debezium.io/documentation/reference/connectors/mysql.html#mysql-connector-properties -# Maps to the connect property named database.server.id, MUST match the server-id value in your my.cnf file when you -# enabled mysql binlog, DO NOT change after setting it -debezium.db.serverId=27002 - -# Unique logical name of the MySQL database server, maps to the debezium MySQL connector property named -# database.server.name, DO NOT change after setting it -debezium.db.serverName=${openmrs.db.name} - -# Database username for debezium user account you created to access the MySQL binlog, maps to the debezium MySQL -# connector property named database.user, it's highly recommended to create separate user account as described at -# https://debezium.io/documentation/reference/connectors/mysql.html#setting-up-mysql -debezium.db.user=${MYSQL_ADMIN_USER} - -# Database password for debezium user account you created to access the MySQL binlog, maps to the debezium MySQL -# connector property named database.password -debezium.db.password=${MYSQL_ADMIN_USER_PASSWORD} - -# Specifies the criteria for running a snapshot when the connector starts, DO NOT change after setting it, maps to the -# debezium MySQL connector property named snapshot.mode -debezium.snapshotMode=schema_only - -# The 2 properties below are debezium engine specific and are documented at -# https://debezium.io/documentation/reference/development/engine.html#engine-properties -# -# Path to file where offsets are to be stored, maps to property named offset.storage.file.filename, DO NOT change after -# setting it -debezium.offsetFilename=offsets.txt - -# Path to file where offsets are to be stored, maps to property named database.history.file.filename, DO NOT change -# after setting it -debezium.historyFilename=dbhistory.txt -# ---------------------------------------------------------------------------------------------------------------------- -debezium.snapshotLockingMode=extended \ No newline at end of file diff --git a/distro/configs/eip-openmrs-senaite/properties/application.properties b/distro/configs/eip-openmrs-senaite/properties/application.properties deleted file mode 100644 index b0e6a50..0000000 --- a/distro/configs/eip-openmrs-senaite/properties/application.properties +++ /dev/null @@ -1,189 +0,0 @@ -# -# *********************** Service-specific properties **************************************************************** -# -# -# URL to connect to the SENAITE REST API -senaite.baseUrl=${SENAITE_URL}/senaite - -# SENAITE username -senaite.username=${SENAITE_USERNAME} - -# SENAITE password -senaite.password=${SENAITE_PASSWORD} - -# FHIR configuration -fhirR4.baseUrl=${openmrs.baseUrl}/ws/fhir2/R4 - - -# -# *********************** EIP Client shared properties **************************************************************** -# -# TODO: Should probably be part of the Docker image -# - -camel.springboot.xml-routes=classpath*:camel/*.xml,file:routes/*.xml,file:routes/*/*.xml,file:routes/*/*/*.xml -openmrs.db.host=${OPENMRS_DB_HOST} - -# The OpenMRS MySQL database port -openmrs.db.port=${OPENMRS_DB_PORT} - -# The OpenMRS MySQL database name -openmrs.db.name=${OPENMRS_DB_NAME} -# *********************** General EIP sender properties **************************************************************** -# - -# Maximum size of each batch of source records to be read by debezium from the binlog files, maps to the -## debezium MySQL connector property named max.batch.size -#https://debezium.io/documentation/reference/1.6/connectors/mysql.html#mysql-property-max-batch-size -debezium.reader.maxBatchSize=2048 - -#Enabled Oauth when set to true -oauth.enabled=${OAUTH_ENABLED} - -#The client Id of the account -oauth.access.token.uri=${OAUTH_ACCESS_TOKEN_URI} - -#The client Id of the account to use to authenticate -oauth.client.id=${OAUTH_CLIENT_ID} - -#The client secret of the account to use to authenticate -oauth.client.secret=${OAUTH_CLIENT_SECRET} -#Authentication scope, can be multiple values separated by commas -oauth.client.scope=email - -eip.home=/eip-home - -# Camel endpoints that need to be notified of DB events -db-event.destinations=${DB_EVENT_DESTINATIONS} - -# A comma separated list of database tables names to watch for changes -eip.watchedTables=patient,person_name,person_address,patient_identifier,orders,test_order - -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Logging Configuration ************************************************************************ -# -# Uncomment this to use console logging otherwise defaults to the logback.xml file located on the classpath which is -# configured to log to ${eip.home}/logs/openmrs-eip.log -logging.config=classpath:logback-console.xml - -# Logging level for the application loggers (all built-in routes and classes) -openmrs.eip.log.level=INFO - -# Logging level for ONLY application class loggers -logging.level.org.openmrs.eip=${openmrs.eip.log.level} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Tomcat Configuration ************************************************************************* -# -# Server HTTP port. -server.port=8083 -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** H2 configuration ***************************************************************************** -# -# Whether to enable the console -#spring.h2.console.enabled=false - -# Path at which the console is available, defaults to /h2-console -# spring.h2.console.path= -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Configuration of the OpenMRS Web App ********************************************************* -# -# OpenMRS user credentials -openmrs.username=${OPENMRS_USER} -openmrs.password=${OPENMRS_PASSWORD} - -# OpenMRS base url -openmrs.baseUrl=${OPENMRS_URL}/openmrs - -# The results encounter type for all patient result observations -results.encounterType.uuid=${RESULTS_ENCOUNTER_TYPE_UUID} - - -concept.complex.uuid=${CONCEPT_COMPLEX_UUID} -# ---------------------------------------------------------------------------------------------------------------------- -openmrs.identifier.type.uuid=${OPENMRS_IDENTIFIER_TYPE_UUD} - - -# *********************** OpenMRS Datasource config ******************************************************************** -# -# Driver class of the openMRS datasource (should not be changed in a usual use) -spring.openmrs-datasource.driverClassName=com.mysql.jdbc.Driver -# -# Dialect of the openMRS datasource (should not be changed in a usual use) -spring.openmrs-datasource.dialect=org.hibernate.dialect.MySQLDialect - -# Url of the openMRS datasource, you don't have to change this value as long you've set the placeholder property values -spring.openmrs-datasource.jdbcUrl=jdbc:mysql://${openmrs.db.host}:${openmrs.db.port}/${openmrs.db.name} - -# User name of the openMRS datasource -spring.openmrs-datasource.username=${OPENMRS_DB_USER} - -# Password of the openMRS datasource -spring.openmrs-datasource.password=${OPENMRS_DB_PASSWORD} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Configuration of the Management database ***************************************************** -# -# Driver class of the management datasource (should not be changed in a usual use) -spring.mngt-datasource.driverClassName=com.mysql.jdbc.Driver - -# Dialect of the management datasource (should not be changed in a usual use) -spring.mngt-datasource.dialect=org.hibernate.dialect.MySQLDialect - -# Url of the management datasource -# spring.mngt-datasource.jdbcUrl=jdbc:h2:mem:test;DB_CLOSE_DELAY=30;LOCK_TIMEOUT=10000 -spring.mngt-datasource.jdbcUrl=jdbc:mysql://${openmrs.db.host}:${openmrs.db.port}/${EIP_DB_NAME} - -# User name of the management datasource -spring.mngt-datasource.username=${EIP_DB_USER} - -# Password of the management datasource -spring.mngt-datasource.password=${EIP_DB_PASSWORD} -# ---------------------------------------------------------------------------------------------------------------------- - - -# *********************** Debezium Config ****************************************************************************** -# -# For details explanations of this properties, please refer to -# https://debezium.io/documentation/reference/connectors/mysql.html#mysql-connector-properties -# Maps to the connect property named database.server.id, MUST match the server-id value in your my.cnf file when you -# enabled mysql binlog, DO NOT change after setting it -debezium.db.serverId=27001 - -# Unique logical name of the MySQL database server, maps to the debezium MySQL connector property named -# database.server.name, DO NOT change after setting it -debezium.db.serverName=${openmrs.db.name} - -# Database username for debezium user account you created to access the MySQL binlog, maps to the debezium MySQL -# connector property named database.user, it's highly recommended to create separate user account as described at -# https://debezium.io/documentation/reference/connectors/mysql.html#setting-up-mysql -debezium.db.user=${MYSQL_ADMIN_USER} - -# Database password for debezium user account you created to access the MySQL binlog, maps to the debezium MySQL -# connector property named database.password -debezium.db.password=${MYSQL_ADMIN_USER_PASSWORD} - -# Specifies the criteria for running a snapshot when the connector starts, DO NOT change after setting it, maps to the -# debezium MySQL connector property named snapshot.mode -debezium.snapshotMode=schema_only - -# The 2 properties below are debezium engine specific and are documented at -# https://debezium.io/documentation/reference/development/engine.html#engine-properties -# -# Path to file where offsets are to be stored, maps to property named offset.storage.file.filename, DO NOT change after -# setting it -debezium.offsetFilename=offsets.txt - -# Path to file where offsets are to be stored, maps to property named database.history.file.filename, DO NOT change -# after setting it -debezium.historyFilename=dbhistory.txt -# ---------------------------------------------------------------------------------------------------------------------- -debezium.snapshotLockingMode=extended \ No newline at end of file diff --git a/distro/pom.xml b/distro/pom.xml index b27dafe..367a6e2 100644 --- a/distro/pom.xml +++ b/distro/pom.xml @@ -34,10 +34,10 @@ 2.1.0 1.4.0-SNAPSHOT 2.2.0 - 1.4.0-SNAPSHOT - 1.4.0-SNAPSHOT + 2.0.0-SNAPSHOT + 2.0.0-SNAPSHOT - + eip-openmrs-senaite eip-odoo-openmrs @@ -81,13 +81,13 @@ com.ozonehis ${eipOpenMRSSenaiteArtifactId} ${eipOpenMRSSenaiteVersion} - zip + jar com.ozonehis ${eipOdooOpenMRSArtifactId} ${eipOdooOpenMRSVersion} - zip + jar @@ -98,6 +98,7 @@ org.apache.maven.plugins maven-dependency-plugin + 3.2.0 Copy Odoo Initializer add-on @@ -129,28 +130,43 @@ - Unpack EIP OpenMRS SENAITE routes to a temporary location - generate-resources + Copy EIP OpenMRS SENAITE JAR + prepare-package - unpack-dependencies + copy - true - ${project.build.directory}/${eipOpenMRSSenaiteArtifactId} - ${eipOpenMRSSenaiteArtifactId} + + + com.ozonehis + ${eipOpenMRSSenaiteArtifactId} + ${eipOpenMRSSenaiteVersion} + jar + true + ${project.build.directory}/${project.artifactId}-${project.version}/binaries/${eipOpenMRSSenaiteArtifactId} + + + true - Unpack EIP Odoo OpenMRS routes in a temporary location - generate-resources + Copy EIP Odoo OpenMRS JAR + prepare-package - unpack-dependencies + copy - true - ${project.build.directory}/${eipOdooOpenMRSArtifactId} - ${eipOdooOpenMRSArtifactId} + + + com.ozonehis + ${eipOdooOpenMRSArtifactId} + ${eipOdooOpenMRSVersion} + jar + true + ${project.build.directory}/${project.artifactId}-${project.version}/binaries/${eipOdooOpenMRSArtifactId} + + @@ -231,46 +247,6 @@ - - - Copy EIP OpenMRS SENAITE routes - prepare-package - - copy-resources - - - - ${project.build.directory}/${project.artifactId}-${project.version}/binaries/eip-openmrs-senaite/routes - true - - - - ${project.build.directory}/${eipOpenMRSSenaiteArtifactId}/routes/senaite - - - - - - - - Copy EIP Odoo OpenMRS routes - prepare-package - - copy-resources - - - - ${project.build.directory}/${project.artifactId}-${project.version}/binaries/eip-odoo-openmrs/routes - true - - - - ${project.build.directory}/${eipOdooOpenMRSArtifactId}/${eipOdooOpenMRSArtifactId}-${eipOdooOpenMRSVersion}/routes/ - - - - - Copy OpenMRS modules @@ -367,17 +343,16 @@ + - Remove unneeded EIP Odoo OpenMRS PRP and Obs routes - process-resources + Copy OpenMRS config for validation + pre-integration-test - + - - + dir="${project.build.directory}/${project.artifactId}-${project.version}/configs/openmrs/initializer_config" /> + @@ -514,4 +489,4 @@ - \ No newline at end of file + diff --git a/pom.xml b/pom.xml index c2e6e00..a15f3be 100644 --- a/pom.xml +++ b/pom.xml @@ -216,6 +216,14 @@ mks-nexus-public https://nexus.mekomsolutions.net/repository/maven-public/ + + mks-nexus-public-snapshots + Mekom Solutions Nexus repo for snapshots + https://nexus.mekomsolutions.net/repository/maven-snapshots + + true + + openmrs-repo OpenMRS Nexus Repository @@ -279,4 +287,4 @@ https://nexus.mekomsolutions.net/repository/maven-snapshots - \ No newline at end of file +