Skip to content

Commit bc24705

Browse files
committed
Merge remote-tracking branch 'origin/release-2.0.x' into main
2 parents e062962 + 362e3a7 commit bc24705

File tree

4 files changed

+91
-218
lines changed

4 files changed

+91
-218
lines changed

pom.xml

Lines changed: 13 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@
88
<groupId>ucles.weblab</groupId>
99
<artifactId>weblab-common-java</artifactId>
1010
<packaging>pom</packaging>
11-
<version>0.5-SNAPSHOT</version>
11+
<version>2.0.0-SNAPSHOT</version>
1212

13+
<parent>
14+
<groupId>org.springframework.boot</groupId>
15+
<artifactId>spring-boot-starter-parent</artifactId> <!-- for dependencies + plugin config such as git.properties -->
16+
<version>2.0.2.RELEASE</version>
17+
</parent>
1318
<modules>
1419
<module>weblab-common</module>
1520
</modules>
@@ -56,8 +61,7 @@
5661
</pluginRepositories>
5762

5863
<properties>
59-
<weblab-common-java.version>0.5-SNAPSHOT</weblab-common-java.version>
60-
<aspectj.version>1.8.9</aspectj.version>
64+
<weblab-common-java.version>2.0.0-SNAPSHOT</weblab-common-java.version>
6165
<batik.version>1.7</batik.version>
6266

6367
<!-- common libraries -->
@@ -67,27 +71,16 @@
6771
<commons-io.version>2.4</commons-io.version>
6872

6973
<!-- spring versions -->
70-
<spring-boot.version>1.5.3.RELEASE</spring-boot.version>
71-
<spring-data-jpa.version>1.11.3.RELEASE</spring-data-jpa.version>
72-
<spring-data-mongodb.version>1.10.3.RELEASE</spring-data-mongodb.version>
7374
<spring-security-oauth2.version>2.2.0.RELEASE</spring-security-oauth2.version>
74-
<spring-security-jwt.version>1.0.8.RELEASE</spring-security-jwt.version>
75+
<spring-security-jwt.version>1.0.9.RELEASE</spring-security-jwt.version>
7576
<spring-mvc-cache-control.version>1.1.1-RELEASE</spring-mvc-cache-control.version>
7677
<spring-data-envers.version>1.0.2.RELEASE</spring-data-envers.version>
77-
<spring.version>4.3.8.RELEASE</spring.version>
78-
<spring-security.version>4.2.2.RELEASE</spring-security.version>
79-
<spring-hateoas.version>0.23.0.RELEASE</spring-hateoas.version>
8078

8179
<!-- others -->
8280
<aws-sdk.version>1.11.133</aws-sdk.version>
8381
<kie.version>6.1.0.Final</kie.version>
84-
<sqljdbc.version>4.2</sqljdbc.version>
8582
<activiti.version>5.19.0.1</activiti.version>
86-
<slf4j-api.version>1.7.25</slf4j-api.version>
8783
<guava.version>18.0</guava.version>
88-
<jersey.version>2.23.1</jersey.version>
89-
<lombok.version>1.16.10</lombok.version>
90-
<logback.version>1.1.11</logback.version>
9184

9285
<!-- maven properties -->
9386
<java.version>1.8</java.version>
@@ -96,20 +89,12 @@
9689
<maven.compiler.source>${java.version}</maven.compiler.source>
9790
<maven.compiler.target>${java.version}</maven.compiler.target>
9891

99-
<!--database -->
100-
<hibernate.version>5.0.9.Final</hibernate.version>
101-
<liquibase.version>3.4.2</liquibase.version>
102-
<servlet-api.version>3.1.0</servlet-api.version>
10392

104-
<!-- jackson spring boot gives 2.8.1 -->
105-
<jackson.version>2.8.2</jackson.version>
106-
<jackson-databind.version>2.8.2-CA-SNAPSHOT</jackson-databind.version>
107-
<jackson-module-jsonSchema.version>2.8.2-CA-SNAPSHOT</jackson-module-jsonSchema.version>
93+
<!-- jackson - Spring 5 requires 2.9.x -->
94+
<jackson.version>2.9.4</jackson.version>
95+
<jackson-databind.version>2.9.4-CA-SNAPSHOT</jackson-databind.version>
96+
<jackson-module-jsonSchema.version>2.9.4-CA-SNAPSHOT</jackson-module-jsonSchema.version>
10897

109-
<!-- test properties -->
110-
<mockito.version>2.15.0</mockito.version>
111-
<spring-boot-test>1.5.3.RELEASE</spring-boot-test>
112-
<spring-test>4.3.8.RELEASE</spring-test>
11398
</properties>
11499

115100
<dependencyManagement>
@@ -244,16 +229,6 @@
244229
<artifactId>kie-spring</artifactId>
245230
<version>${kie.version}</version>
246231
</dependency>
247-
<dependency>
248-
<groupId>org.postgresql</groupId>
249-
<artifactId>postgresql</artifactId>
250-
<version>${postgresql.version}</version>
251-
</dependency>
252-
<dependency>
253-
<groupId>com.microsoft.sqlserver</groupId>
254-
<artifactId>sqljdbc</artifactId>
255-
<version>${sqljdbc.version}</version>
256-
</dependency>
257232
<dependency>
258233
<groupId>com.h2database</groupId>
259234
<artifactId>h2</artifactId>
@@ -371,127 +346,11 @@
371346
</exclusions>
372347
</dependency>
373348

374-
<!-- Spring Boot dependencies needed outside of Spring Boot modules -->
375-
<dependency>
376-
<groupId>org.springframework.boot</groupId>
377-
<artifactId>spring-boot-starter-aop</artifactId>
378-
<version>${spring-boot.version}</version>
379-
</dependency>
380-
<dependency>
381-
<groupId>org.springframework.boot</groupId>
382-
<artifactId>spring-boot-starter-web</artifactId>
383-
<version>${spring-boot.version}</version>
384-
</dependency>
385-
<dependency>
386-
<groupId>org.springframework.boot</groupId>
387-
<artifactId>spring-boot-actuator</artifactId>
388-
<version>${spring-boot.version}</version>
389-
</dependency>
390-
<dependency>
391-
<groupId>org.springframework.data</groupId>
392-
<artifactId>spring-data-jpa</artifactId>
393-
<version>${spring-data-jpa.version}</version>
394-
</dependency>
395-
<dependency>
396-
<groupId>org.springframework.data</groupId>
397-
<artifactId>spring-data-mongodb</artifactId>
398-
<version>${spring-data-mongodb.version}</version>
399-
</dependency>
400-
<dependency>
401-
<groupId>org.hibernate</groupId>
402-
<artifactId>hibernate-entitymanager</artifactId>
403-
<version>${hibernate.version}</version>
404-
</dependency>
405-
<dependency>
406-
<groupId>org.hibernate</groupId>
407-
<artifactId>hibernate-jpamodelgen</artifactId>
408-
<version>${hibernate.version}</version>
409-
</dependency>
410-
<dependency>
411-
<groupId>org.springframework</groupId>
412-
<artifactId>spring-aop</artifactId>
413-
<version>${spring.version}</version>
414-
</dependency>
415-
<dependency>
416-
<groupId>org.springframework</groupId>
417-
<artifactId>spring-context</artifactId>
418-
<version>${spring.version}</version>
419-
</dependency>
420-
<dependency>
421-
<groupId>org.springframework</groupId>
422-
<artifactId>spring-core</artifactId>
423-
<version>${spring.version}</version>
424-
</dependency>
425-
<dependency>
426-
<groupId>org.springframework</groupId>
427-
<artifactId>spring-beans</artifactId>
428-
<version>${spring.version}</version>
429-
</dependency>
430-
<dependency>
431-
<groupId>org.springframework</groupId>
432-
<artifactId>spring-expression</artifactId>
433-
<version>${spring.version}</version>
434-
</dependency>
435-
<dependency>
436-
<groupId>org.springframework</groupId>
437-
<artifactId>spring-orm</artifactId>
438-
<version>${spring.version}</version>
439-
</dependency>
440-
<dependency>
441-
<groupId>org.springframework</groupId>
442-
<artifactId>spring-tx</artifactId>
443-
<version>${spring.version}</version>
444-
</dependency>
445-
<dependency>
446-
<groupId>org.springframework</groupId>
447-
<artifactId>spring-webmvc</artifactId>
448-
<version>${spring.version}</version>
449-
</dependency>
450-
<dependency>
451-
<groupId>org.springframework</groupId>
452-
<artifactId>spring-web</artifactId>
453-
<version>${spring.version}</version>
454-
</dependency>
455-
<dependency>
456-
<groupId>org.springframework.security</groupId>
457-
<artifactId>spring-security-config</artifactId>
458-
<version>${spring-security.version}</version>
459-
</dependency>
460-
<dependency>
461-
<groupId>org.springframework.security</groupId>
462-
<artifactId>spring-security-core</artifactId>
463-
<version>${spring-security.version}</version>
464-
</dependency>
465-
<dependency>
466-
<groupId>org.springframework.security</groupId>
467-
<artifactId>spring-security-web</artifactId>
468-
<version>${spring-security.version}</version>
469-
</dependency>
470-
<dependency>
471-
<groupId>org.springframework.hateoas</groupId>
472-
<artifactId>spring-hateoas</artifactId>
473-
<version>${spring-hateoas.version}</version>
474-
</dependency>
475349
<dependency>
476350
<groupId>com.fasterxml.jackson.core</groupId>
477351
<artifactId>jackson-databind</artifactId>
478352
<version>${jackson-databind.version}</version>
479353
</dependency>
480-
<dependency>
481-
<groupId>com.fasterxml.jackson.datatype</groupId>
482-
<artifactId>jackson-datatype-jsr310</artifactId>
483-
<version>${jackson.version}</version>
484-
</dependency>
485-
<dependency>
486-
<groupId>com.fasterxml.jackson.core</groupId>
487-
<artifactId>jackson-core</artifactId>
488-
<version>${jackson.version}</version>
489-
</dependency>
490-
<dependency>
491-
<groupId>com.fasterxml.jackson.core</groupId>
492-
<artifactId>jackson-annotations</artifactId>
493-
<version>${jackson.version}</version>
494-
</dependency>
495354
<dependency>
496355
<groupId>commons-beanutils</groupId>
497356
<artifactId>commons-beanutils</artifactId>
@@ -513,45 +372,6 @@
513372
<artifactId>commons-lang</artifactId>
514373
<version>2.4</version>
515374
</dependency>
516-
<dependency>
517-
<groupId>javax.servlet</groupId>
518-
<artifactId>javax.servlet-api</artifactId>
519-
<version>${servlet-api.version}</version>
520-
</dependency>
521-
<dependency>
522-
<groupId>org.slf4j</groupId>
523-
<artifactId>slf4j-api</artifactId>
524-
<version>${slf4j-api.version}</version>
525-
</dependency>
526-
<dependency>
527-
<groupId>org.liquibase</groupId>
528-
<artifactId>liquibase-core</artifactId>
529-
<version>${liquibase.version}</version>
530-
</dependency>
531-
<dependency>
532-
<groupId>org.projectlombok</groupId>
533-
<artifactId>lombok</artifactId>
534-
<version>${lombok.version}</version>
535-
</dependency>
536-
537-
<!-- tests -->
538-
<dependency>
539-
<groupId>org.mockito</groupId>
540-
<artifactId>mockito-core</artifactId>
541-
<version>${mockito.version}</version>
542-
</dependency>
543-
<dependency>
544-
<groupId>org.springframework.boot</groupId>
545-
<artifactId>spring-boot-test</artifactId>
546-
<scope>test</scope>
547-
<version>${spring-boot-test}</version>
548-
</dependency>
549-
<dependency>
550-
<groupId>org.springframework</groupId>
551-
<artifactId>spring-test</artifactId>
552-
<version>${spring-test}</version>
553-
</dependency>
554-
555375
</dependencies>
556376
</dependencyManagement>
557377

@@ -606,11 +426,6 @@
606426
</plugins>
607427
<pluginManagement>
608428
<plugins>
609-
<plugin>
610-
<groupId>org.apache.maven.plugins</groupId>
611-
<artifactId>maven-surefire-plugin</artifactId>
612-
<version>2.20</version>
613-
</plugin>
614429
<plugin>
615430
<groupId>org.gaul</groupId>
616431
<artifactId>modernizer-maven-plugin</artifactId>
@@ -670,7 +485,7 @@
670485
<configuration>
671486
<redirectTestOutputToFile>true</redirectTestOutputToFile>
672487
<reportsDirectory>../shippable/testresults</reportsDirectory>
673-
<tempDir>${project.build.directory}/surefire</tempDir>
488+
<workingDirectory>${project.build.directory}/surefire</workingDirectory>
674489
</configuration>
675490
</plugin>
676491
</plugins>

weblab-common/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>weblab-common-java</artifactId>
77
<groupId>ucles.weblab</groupId>
8-
<version>0.5-SNAPSHOT</version>
8+
<version>2.0.0-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -18,6 +18,11 @@
1818
<artifactId>liquibase-core</artifactId>
1919
<optional>true</optional>
2020
</dependency>
21+
<dependency>
22+
<groupId>org.springframework.boot</groupId>
23+
<artifactId>spring-boot-actuator</artifactId>
24+
<optional>true</optional>
25+
</dependency>
2126
<dependency>
2227
<groupId>org.springframework.data</groupId>
2328
<artifactId>spring-data-mongodb</artifactId>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package ucles.weblab.common.config;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
6+
import org.springframework.boot.actuate.health.Health;
7+
import org.springframework.boot.actuate.health.Health.Builder;
8+
import org.springframework.core.env.Environment;
9+
10+
import java.util.List;
11+
12+
import static java.util.stream.Collectors.toList;
13+
import static org.springframework.boot.actuate.health.Status.UP;
14+
15+
/**
16+
* Fail health check if configuration is missing.
17+
* If the configuration is missing at startup, then an exception will be thrown to prevent startup. If after
18+
* startup a configuration variable is removed dynamically (e.g. when using Spring Cloud), then the heath check
19+
* will change from UP to DOWN.
20+
* To see details, the property management.endpoint.health.show-details must be set to 'when_authorized' or 'always'
21+
* */
22+
public class ConfigurationHealthCheck extends AbstractHealthIndicator {
23+
24+
private final Logger log = LoggerFactory.getLogger(getClass());
25+
26+
private final Environment environment;
27+
28+
/** e.g. ["spring.datasource.hikari.maximum-pool-size", "suppress.errors"] */
29+
private final List<String> requiredProperties;
30+
31+
32+
public ConfigurationHealthCheck(Environment environment, List<String> requiredProperties) {
33+
this.environment = environment;
34+
this.requiredProperties = requiredProperties;
35+
36+
Builder bldr = new Builder();
37+
doHealthCheck(bldr);
38+
Health health = bldr.build();
39+
40+
if (health.getStatus() != UP) {
41+
throw new RuntimeException("System failed configuration healthcheck: " + health.toString());
42+
}
43+
}
44+
45+
46+
@Override
47+
final protected void doHealthCheck(Builder bldr) {
48+
49+
List<String> missing = requiredProperties.stream()
50+
.filter(key -> !environment.containsProperty(key))
51+
.collect(toList());
52+
53+
if (missing.isEmpty()) {
54+
bldr.up();
55+
} else {
56+
log.error("Environment health check failed. The following properties are not configured: {}", missing);
57+
bldr
58+
.withDetail("missing-properties", missing)
59+
.down();
60+
}
61+
}
62+
}

0 commit comments

Comments
 (0)