From bad8c1bee8e757ee3b144c1c7a046618f31d1287 Mon Sep 17 00:00:00 2001 From: Marten Deinum Date: Thu, 8 Oct 2015 12:13:07 +0200 Subject: [PATCH 1/2] Added support for the DB2 AS400 Driver Closes gh-4115 --- .../boot/actuate/health/DataSourceHealthIndicator.java | 8 ++++++++ .../actuate/health/DataSourceHealthIndicatorTests.java | 2 ++ .../boot/autoconfigure/jdbc/DatabaseDriver.java | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java index ddc66925305..6c45a08266d 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java @@ -207,6 +207,14 @@ public class DataSourceHealthIndicator extends AbstractHealthIndicator }, + AS400("DB2 UDB for AS/400", "SELECT 1 FROM SYSIBM.SYSDUMMY1") { + @Override + protected boolean matchesProduct(String product) { + return super.matchesProduct(product) + || product.toLowerCase().contains("as/400"); + } + }, + INFORMIX("Informix Dynamic Server", "select count(*) from systables"), FIREBIRD("Firebird", "SELECT 1 FROM RDB$DATABASE") { diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java index 39af41d6474..94ac816e31b 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java @@ -116,6 +116,8 @@ public class DataSourceHealthIndicatorTests { assertThat(Product.forProduct("Apache Derby"), equalTo(Product.DERBY)); assertThat(Product.forProduct("DB2"), equalTo(Product.DB2)); assertThat(Product.forProduct("DB2/LINUXX8664"), equalTo(Product.DB2)); + assertThat(Product.forProduct("DB2 UDB for AS/400"), equalTo(Product.AS400)); + assertThat(Product.forProduct("DB3 XDB fur AS/400"), equalTo(Product.AS400)); assertThat(Product.forProduct("Informix Dynamic Server"), equalTo(Product.INFORMIX)); assertThat(Product.forProduct("Firebird 2.5.WI"), equalTo(Product.FIREBIRD)); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java index a5baa919b15..daacc3a2e29 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DatabaseDriver.java @@ -93,7 +93,12 @@ enum DatabaseDriver { /** * DB2 Server. */ - DB2("com.ibm.db2.jcc.DB2Driver", "com.ibm.db2.jcc.DB2XADataSource"); + DB2("com.ibm.db2.jcc.DB2Driver", "com.ibm.db2.jcc.DB2XADataSource"), + + /** + * DB2 AS400 Server. + */ + AS400("com.ibm.as400.access.AS400JDBCDriver", "com.ibm.as400.access.AS400JDBCXADataSource"); private final String driverClassName; From b9c885f5d2af58ebc31f74de3549add19e8cad2d Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 9 Oct 2015 17:12:03 +0200 Subject: [PATCH 2/2] Polish Closes gh-4118 --- .../boot/actuate/health/DataSourceHealthIndicator.java | 2 +- .../boot/actuate/health/DataSourceHealthIndicatorTests.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java index 6c45a08266d..30f776e9d20 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/DataSourceHealthIndicator.java @@ -207,7 +207,7 @@ public class DataSourceHealthIndicator extends AbstractHealthIndicator }, - AS400("DB2 UDB for AS/400", "SELECT 1 FROM SYSIBM.SYSDUMMY1") { + DB2_AS400("DB2 UDB for AS/400", "SELECT 1 FROM SYSIBM.SYSDUMMY1") { @Override protected boolean matchesProduct(String product) { return super.matchesProduct(product) diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java index 94ac816e31b..5a0f9bbc529 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/health/DataSourceHealthIndicatorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2014 the original author or authors. + * Copyright 2012-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -116,8 +116,8 @@ public class DataSourceHealthIndicatorTests { assertThat(Product.forProduct("Apache Derby"), equalTo(Product.DERBY)); assertThat(Product.forProduct("DB2"), equalTo(Product.DB2)); assertThat(Product.forProduct("DB2/LINUXX8664"), equalTo(Product.DB2)); - assertThat(Product.forProduct("DB2 UDB for AS/400"), equalTo(Product.AS400)); - assertThat(Product.forProduct("DB3 XDB fur AS/400"), equalTo(Product.AS400)); + assertThat(Product.forProduct("DB2 UDB for AS/400"), equalTo(Product.DB2_AS400)); + assertThat(Product.forProduct("DB3 XDB fur AS/400"), equalTo(Product.DB2_AS400)); assertThat(Product.forProduct("Informix Dynamic Server"), equalTo(Product.INFORMIX)); assertThat(Product.forProduct("Firebird 2.5.WI"), equalTo(Product.FIREBIRD));