BATCH-2172: Fixed database version check for DB2ZOS

This commit is contained in:
Michael Minella
2014-04-10 16:48:07 -05:00
parent ff84e1fc8e
commit 9b925c2e84
2 changed files with 16 additions and 13 deletions

View File

@@ -16,13 +16,13 @@
package org.springframework.batch.support;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.springframework.jdbc.support.JdbcUtils;
import org.springframework.jdbc.support.MetaDataAccessException;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;
/**
@@ -94,7 +94,7 @@ public enum DatabaseType {
public static DatabaseType fromMetaData(DataSource dataSource) throws MetaDataAccessException {
String databaseProductName =
JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductName").toString();
if ("DB2".equals(databaseProductName)) {
if (StringUtils.hasText(databaseProductName) && !databaseProductName.equals("DB2/Linux") && databaseProductName.startsWith("DB2")) {
String databaseProductVersion =
JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductVersion").toString();
if (!databaseProductVersion.startsWith("SQL")) {

View File

@@ -15,6 +15,11 @@
*/
package org.springframework.batch.support;
import org.junit.Test;
import org.springframework.jdbc.support.MetaDataAccessException;
import javax.sql.DataSource;
import static org.junit.Assert.assertEquals;
import static org.springframework.batch.support.DatabaseType.DB2;
import static org.springframework.batch.support.DatabaseType.DB2ZOS;
@@ -28,11 +33,6 @@ import static org.springframework.batch.support.DatabaseType.SQLSERVER;
import static org.springframework.batch.support.DatabaseType.SYBASE;
import static org.springframework.batch.support.DatabaseType.fromProductName;
import javax.sql.DataSource;
import org.junit.Test;
import org.springframework.jdbc.support.MetaDataAccessException;
/**
*
* @author Lucas Ward
@@ -75,8 +75,11 @@ public class DatabaseTypeTests {
@Test
public void testFromMetaDataForDB2ZOS() throws Exception {
DataSource ds = DatabaseTypeTestUtils.getMockDataSource("DB2", "DSN08015");
assertEquals(DB2ZOS, DatabaseType.fromMetaData(ds));
DataSource oldDs = DatabaseTypeTestUtils.getMockDataSource("DB2", "DSN08015");
assertEquals(DB2ZOS, DatabaseType.fromMetaData(oldDs));
DataSource newDs = DatabaseTypeTestUtils.getMockDataSource("DB2 for DB2 UDB for z/OS", "DSN08015");
assertEquals(DB2ZOS, DatabaseType.fromMetaData(newDs));
}
@Test