The bcparis-service is standalone restfull service which process messages using others different systems.
Clone iamp-commons
git clone https://github.com/bcgov-c/iamp-commons.git
Install common-metrics
cd common-metrics
mvn install
Install spring-boot-api-service
cd spring-boot-api-service
mvn install
install com.splunk.logging:splunk-library-javalogging v 1.6.2
git clone https://github.com/splunk/splunk-library-javalogging
git checkout tags/1.6.2
cd splunk-library-javalogging
mvn install
clone this repository
git clone https://github.com/bcgov/bcparis-service
cd bcparis-service
mvn install
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Build the application using the Build
Install MySql, bellow is an example for running mysql on docker
docker run --name test-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<set_password> -e MYSQL_DATABASE=metastore -d mysql:latestCreate a config folder at the root of the solution
mkdif configAdd a new file logback.xml in the config
cd config
touch logback.xmladd the following content to the file
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<springProperty scope="context" name="custom-pattern" source="logging.pattern.custom" />
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) ${custom-pattern} %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
<springProperty scope="context" name="splunk-url" source="splunk.hec.url"/>
<springProperty scope="context" name="splunk-token" source="splunk.hec.token"/>
<springProperty scope="context" name="application-name" source="spring.application.name"/>
<appender name="splunk" class="com.splunk.logging.HttpEventCollectorLogbackAppender">
<url>${splunk-url}</url>
<token>${splunk-token}</token>
<source>${application-name}</source>
<host>${HOSTNAME}</host>
<disableCertificateValidation>true</disableCertificateValidation>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%msg</pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="splunk"/>
</root>
</configuration>Install LomBok plugin from marketplace
File > Settings > Pluggins > Search in repositories > LomBok
Restart
Run Mvn install
If you are experiencing error in the code run Files > Invalidate Caches/Restart. also you can do Right click > Maven > Reimport
Set up the environment varialbles
edit the application configuration and
Configure all the environment variables in .env.template file.
use the SOAP UI collection to interact with the service.
Set up the project url to http://localhost:8080
- POR - Oracle Protection Order Registry BC41029
- Driver - ICBC BC41027
- Vehicle - ICBC BC41028
- Satellite - Check Performance/Round trip execution time
{
"Envelope":{
"Header":{
"Origin":{
"QName":"CPIC.MSG.AGENCY.REMOTE",
"QMgrName":"BMVQ3VIC"
},
"CPICVer":"1.4",
"UDF":"BCPARISTEST",
"Priority":"1",
"Routing":{
"QName":"CPIC.MSG.BMVQ3VIC",
"QMgrName":"BMVQ3VIC"
},
"MsgSrvc":{
"msgActn":"Receive"
}
},
"Body":{
"MsgFFmt":"<![CDATA[SN:M00001-0001 MT:MUF MSID:BRKR-190515-20:02:21 FROM:BC41127 TO:BC41027 TEXT:RE: 8372\nHC IC80300\nBC41027 \nBC41028\nSNME:SMITH/G1:JANE/G2:MARY/DOB:19000101/SEX:F\n\n2019051520022120190515200221\n]]>"
},
"MQMD":{
"feedback":"0",
"replyToQueueManagerName":"CBQ3",
"messageIdByte":"41 4D 51 20 43 42 51 33 20 20 20 20 20 20 20 20 D9 BF 03 5D 85 20 6E 23",
"messageType":"8",
"format":"MQSTR",
"replyToQueueName":"CPIC.RPT.MSG",
"correlationIdByte":"41 4D 51 20 42 4D 56 51 33 56 49 43 20 20 20 20 5D 0A D2 81 20 38 61 02"
}
}
}Available on DEV environment. https://bcparis-service-xqb2qz-dev.pathfinder.bcgov/swagger-ui.html
Message Endpoint PUT /api/v1/message Process a message.
Test Endpoints POST /api/v1/message/test/layer7 Send a message to Layer 7.
POST /api/v1/message/test/satellite Send a Satellite Message.
POST /api/v1/message/test/satellite/all Send all the 13 Satellite Messages.
For more information about the High Level Design and Messages check the confluence page. https://justice.gov.bc.ca/wiki/display/APILM/7.3+High+Level+Design
We use SemVer for versioning. For the versions available, see the release on this repository.
Run
mvn versions:set -DartifactId=* -DgroupId=*
Copyright 2019 Province of British Columbia
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.