Skip to content

Commit c0b6419

Browse files
authored
Fix: [AEA-0000] - log correlation id (#76)
## Summary - Routine Change ### Details - change java version to corretto-21.0.2.14.1 (AWS java) - compile for java 21 runtime - add license checker - log a correlation id
1 parent 66cc0cf commit c0b6419

10 files changed

Lines changed: 220 additions & 17 deletions

File tree

.github/workflows/quality_checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/setup-java@v4
1414
with:
1515
java-version: '21'
16-
distribution: 'adopt'
16+
distribution: 'corretto'
1717
- name: Checkout code
1818
uses: actions/checkout@v4
1919
with:

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
maven 3.9.0
2-
java adoptopenjdk-21.0.2+13.0.LTS
2+
java corretto-21.0.2.14.1
33
python 3.8.15
44
poetry 1.8.2
55
shellcheck 0.9.0

licenses/allowedMissingLicense.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0"?>
2+
<missing>
3+
<dependency>
4+
<groupId>jakarta-regexp</groupId>
5+
<artifactId>jakarta-regexp</artifactId>
6+
<version>1.4</version>
7+
</dependency>
8+
</missing>

licenses/licenses.xml

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
<?xml version="1.0"?>
2+
<licenses>
3+
<valid>
4+
<license>
5+
<name>The Apache Software License, Version 2.0</name>
6+
<names>
7+
<name>The Apache Software License, Version 2.0</name>
8+
<name>Apache License, Version 2.0</name>
9+
<name>Apache Software License 2.0</name>
10+
<name>Apache License 2.0</name>
11+
</names>
12+
<urls>
13+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
14+
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
15+
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
16+
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
17+
</urls>
18+
</license>
19+
<license>
20+
<name>Eclipse Public License 1.0</name>
21+
<names>
22+
<name>Eclipse Public License 1.0</name>
23+
<name>Eclipse Public License - v 1.0</name>
24+
<name>Eclipse Distribution License - v 1.0</name>
25+
</names>
26+
<urls>
27+
<url>http://www.eclipse.org/legal/epl-v10.html</url>
28+
<url>http://www.eclipse.org/legal/epl-v10.html</url>
29+
<url>http://www.eclipse.org/org/documents/edl-v10.php</url>
30+
</urls>
31+
</license>
32+
<license>
33+
<name>Eclipse Public License v2.0</name>
34+
<names>
35+
<name>Eclipse Public License v2.0</name>
36+
<name>EPL 2.0</name>
37+
<name>Eclipse Public License - v 2.0</name>
38+
</names>
39+
<urls>
40+
<url>https://www.eclipse.org/legal/epl-v20.html</url>
41+
<url>http://www.eclipse.org/legal/epl-2.0</url>
42+
</urls>
43+
</license>
44+
45+
<license>
46+
<name>The MIT License</name>
47+
<names>
48+
<name>The MIT License</name>
49+
<name>MIT License</name>
50+
</names>
51+
<urls>
52+
<url>http://code.google.com/p/mockito/wiki/License</url>
53+
<url>http://www.opensource.org/licenses/mit-license</url>
54+
</urls>
55+
</license>
56+
<license>
57+
<name>BSD</name>
58+
<names>
59+
<name>BSD</name>
60+
</names>
61+
<urls>
62+
<url>http://asm.objectweb.org/license.html</url>
63+
</urls>
64+
</license>
65+
<license>
66+
<name>BSD License 3</name>
67+
<names>
68+
<name>BSD License 3</name>
69+
</names>
70+
<urls>
71+
<url>http://opensource.org/licenses/BSD-3-Clause</url>
72+
</urls>
73+
</license>
74+
<license>
75+
<name>BSD-2-Clause</name>
76+
<names>
77+
<name>BSD-2-Clause</name>
78+
</names>
79+
<urls>
80+
<url>https://opensource.org/licenses/BSD-2-Clause</url>
81+
</urls>
82+
</license>
83+
<license>
84+
<name>LGPL 2.1</name>
85+
<names>
86+
<name>LGPL 2.1</name>
87+
<name>GNU Lesser General Public License</name>
88+
<url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html</url>
89+
</names>
90+
<urls>
91+
<url>http://www.gnu.org/licenses/lgpl-2.1.html</url>
92+
</urls>
93+
</license>
94+
<license>
95+
<name>MPL 1.1</name>
96+
<names>
97+
<name>MPL 1.1</name>
98+
</names>
99+
<urls>
100+
<url>http://www.mozilla.org/MPL/MPL-1.1.html</url>
101+
</urls>
102+
</license>
103+
<license>
104+
<name>Mozilla Public License Version 2.0</name>
105+
<names>
106+
<name>Mozilla Public License Version 2.0</name>
107+
</names>
108+
<urls>
109+
<url>http://www.mozilla.org/MPL/2.0/</url>
110+
</urls>
111+
</license>
112+
<license>
113+
<name>Unicode/ICU License</name>
114+
<names>
115+
<name>Unicode/ICU License</name>
116+
</names>
117+
<urls>
118+
<url>https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/LICENSE</url>
119+
</urls>
120+
</license>
121+
<license>
122+
<name>GPL2 w/ CPE</name>
123+
<names>
124+
<name>GPL2 w/ CPE</name>
125+
</names>
126+
<urls>
127+
<url>https://www.gnu.org/software/classpath/license.html</url>
128+
</urls>
129+
</license>
130+
<license>
131+
<name>Public Domain, per Creative Commons CC0</name>
132+
<names>
133+
<name>Public Domain, per Creative Commons CC0</name>
134+
</names>
135+
<urls>
136+
<url>http://creativecommons.org/publicdomain/zero/1.0</url>
137+
</urls>
138+
</license>
139+
</valid>
140+
<forbidden>
141+
<license>
142+
<name>GNU General Public License version 2</name>
143+
<names>
144+
<name>GNU General Public License version 2</name>
145+
</names>
146+
<urls>
147+
<url>https://opensource.org/licenses/gpl-2.0.php</url>
148+
</urls>
149+
</license>
150+
</forbidden>
151+
</licenses>

pom.xml

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,22 @@
88
<packaging>jar</packaging>
99
<version>dev</version>
1010
<name>FHIRValidator</name>
11+
<licenses>
12+
<license>
13+
<name>The MIT License</name>
14+
<url>https://opensource.org/license/mit</url>
15+
</license>
16+
</licenses>
1117
<properties>
12-
<maven.compiler.source>1.8</maven.compiler.source>
13-
<maven.compiler.target>1.8</maven.compiler.target>
18+
<maven.compiler.source>21</maven.compiler.source>
19+
<maven.compiler.target>21</maven.compiler.target>
1420
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1521
<fhir.version>7.0.2</fhir.version>
1622
<log4j.version>2.23.1</log4j.version>
1723
<fasterxml.version>2.17.0</fasterxml.version>
1824
<sonar.organization>nhsdigital</sonar.organization>
1925
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
26+
<aspectj.version>1.9.22</aspectj.version>
2027
</properties>
2128
<dependencyManagement>
2229
<dependencies>
@@ -116,7 +123,7 @@
116123
<dependency>
117124
<groupId>org.aspectj</groupId>
118125
<artifactId>aspectjrt</artifactId>
119-
<version>1.9.22</version>
126+
<version>${aspectj.version}</version>
120127
</dependency>
121128
<dependency>
122129
<groupId>com.fasterxml.jackson.core</groupId>
@@ -161,6 +168,27 @@
161168
</resource>
162169
</resources>
163170
<plugins>
171+
<plugin>
172+
<groupId>se.ayoy.maven-plugins</groupId>
173+
<artifactId>ayoy-license-verifier-maven-plugin</artifactId>
174+
<version>1.2.0</version>
175+
<executions>
176+
<execution>
177+
<phase>validate</phase>
178+
<goals>
179+
<goal>verify</goal>
180+
</goals>
181+
</execution>
182+
</executions>
183+
<configuration>
184+
<licenseFile>${project.basedir}/licenses/licenses.xml</licenseFile>
185+
<excludedMissingLicensesFile>
186+
${project.basedir}/licenses/allowedMissingLicense.xml</excludedMissingLicensesFile>
187+
<failOnForbidden>true</failOnForbidden>
188+
<failOnMissing>true</failOnMissing>
189+
<failOnUnknown>true</failOnUnknown>
190+
</configuration>
191+
</plugin>
164192
<plugin>
165193
<artifactId>maven-dependency-plugin</artifactId>
166194
<version>3.6.1</version>
@@ -177,10 +205,15 @@
177205
<groupId>dev.aspectj</groupId>
178206
<artifactId>aspectj-maven-plugin</artifactId>
179207
<version>1.14</version>
208+
<dependencies>
209+
<dependency>
210+
<groupId>org.aspectj</groupId>
211+
<artifactId>aspectjtools</artifactId>
212+
<version>${aspectj.version}</version>
213+
</dependency>
214+
</dependencies>
180215
<configuration>
181-
<source>11</source> <!-- or higher -->
182-
<target>11</target> <!-- or higher -->
183-
<complianceLevel>11</complianceLevel> <!-- or higher -->
216+
<complianceLevel>21</complianceLevel> <!-- or higher -->
184217
<forceAjcCompile>true</forceAjcCompile>
185218
<sources />
186219
<weaveDirectories>

src/main/java/software/nhs/fhirvalidator/controller/ValidateController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package software.nhs.fhirvalidator.controller;
22

33
import java.util.ArrayList;
4+
import java.util.Arrays;
45
import java.util.List;
56
import java.util.Objects;
67
import java.util.stream.Collectors;
@@ -97,7 +98,7 @@ private List<IBaseResource> getResourcesToValidate(IBaseResource inputResource)
9798
return new ArrayList<>();
9899
}
99100

100-
if (inputResource instanceof Bundle && ((Bundle) inputResource).getType() == Bundle.BundleType.SEARCHSET) {
101+
if (inputResource instanceof Bundle _inputResource && (_inputResource.getType() == Bundle.BundleType.SEARCHSET)) {
101102
List<IBaseResource> bundleResources = new ArrayList<>();
102103
for (Bundle.BundleEntryComponent entry : ((Bundle) inputResource).getEntry()) {
103104
if (entry.getResource().fhirType().equals("Bundle")) {
@@ -111,6 +112,6 @@ private List<IBaseResource> getResourcesToValidate(IBaseResource inputResource)
111112
}
112113
}
113114

114-
return List.of(inputResource);
115+
return Arrays.asList(inputResource);
115116
}
116117
}

src/main/java/software/nhs/fhirvalidator/handler/HandlerStream.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public HandlerStream() {
3838
log.info("Validator is ready");
3939
}
4040

41-
@Logging
41+
@Logging(logEvent = true, clearState = true, correlationIdPath = "/headers/x-request-id")
4242
@Override
4343
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
4444
ByteArrayOutputStream result = new ByteArrayOutputStream();
@@ -47,8 +47,7 @@ public void handleRequest(InputStream inputStream, OutputStream outputStream, Co
4747
for (int length; (length = inputStream.read(buffer)) != -1;) {
4848
result.write(buffer, 0, length);
4949
}
50-
String rawInput = result.toString("UTF-8");
51-
log.info(rawInput);
50+
String rawInput = result.toString();
5251

5352
String validatorResult = validateController.validate(rawInput);
5453

src/main/java/software/nhs/fhirvalidator/service/CapabilityStatementApplier.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import java.io.IOException;
1212
import java.util.List;
13+
import java.util.stream.Collectors;
1314

1415
public class CapabilityStatementApplier {
1516
private final List<CapabilityStatement.CapabilityStatementRestResourceComponent> restResources;
@@ -20,7 +21,7 @@ public CapabilityStatementApplier(
2021
ImplementationGuideParser implementationGuideParser,
2122
List<NpmPackage> npmPackages) {
2223

23-
this.restResources = npmPackages.stream()
24+
this.restResources = (npmPackages.stream()
2425
.flatMap(packageItem -> {
2526
try {
2627
return implementationGuideParser
@@ -32,7 +33,7 @@ public CapabilityStatementApplier(
3233
})
3334
.flatMap(capabilityStatement -> capabilityStatement.getRest().stream())
3435
.flatMap(rest -> rest.getResource().stream())
35-
.toList();
36+
.collect(Collectors.toList()));
3637
}
3738

3839
public void applyCapabilityStatementProfiles(IBaseResource resource) {

src/main/java/software/nhs/fhirvalidator/service/MessageDefinitionApplier.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ public MessageDefinitionApplier(
3131
throw new RuntimeException("error in MessageDefinitionApplier", ex);
3232
}
3333
})
34-
.toList();
34+
.collect(Collectors.toList());
3535
}
3636

3737
public OperationOutcome applyMessageDefinition(IBaseResource resource) {
38-
if (!(resource instanceof Bundle) || ((Bundle) resource).getType() != Bundle.BundleType.MESSAGE) {
38+
if (!(resource instanceof Bundle _resource) || (_resource.getType() != Bundle.BundleType.MESSAGE)) {
3939
return null;
4040
}
4141

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<configuration>
2+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
3+
<encoder>
4+
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
5+
</encoder>
6+
</appender>
7+
<root level="info">
8+
<appender-ref ref="STDOUT" />
9+
</root>
10+
</configuration>

0 commit comments

Comments
 (0)