Added DB2DataSourceCreator and related tests. Fixed tags &

username/password in jdbcurl of DB2ServiceInfo
This commit is contained in:
mariobriggs
2015-05-27 12:14:28 +05:30
parent 14c5ffc2e9
commit 5f91189fd9
6 changed files with 67 additions and 3 deletions

View File

@@ -4,7 +4,7 @@ import org.springframework.cloud.service.common.DB2ServiceInfo;
public class DB2ServiceInfoCreator extends RelationalServiceInfoCreator<DB2ServiceInfo> {
public DB2ServiceInfoCreator() {
super(new Tags(), DB2ServiceInfo.DB2_SCHEME);
super(new Tags("sqldb","dashDB","db2"), DB2ServiceInfo.DB2_SCHEME);
}
@Override

View File

@@ -19,9 +19,9 @@ public class DB2ServiceInfo extends RelationalServiceInfo {
return getUriInfo().getUriString();
}
return String.format("jdbc:%s://%s:%d/%s",
return String.format("jdbc:%s://%s:%d/%s:user=%s;password=%s;",
jdbcUrlDatabaseType,
getHost(), getPort(), getPath());
getHost(), getPort(), getPath(), getUserName(), getPassword());
}
}

View File

@@ -0,0 +1,13 @@
package org.springframework.cloud.service.relational;
import org.springframework.cloud.service.common.DB2ServiceInfo;;
public class DB2DataSourceCreator extends DataSourceCreator<DB2ServiceInfo> {
private static final String[] DRIVERS = new String[]{"com.ibm.db2.jcc.DB2Driver"};
private static final String VALIDATION_QUERY = "VALUES 1";
public DB2DataSourceCreator() {
super("spring-cloud.db2.driver", DRIVERS, VALIDATION_QUERY);
}
}

View File

@@ -1,6 +1,7 @@
org.springframework.cloud.service.relational.MysqlDataSourceCreator
org.springframework.cloud.service.relational.PostgresqlDataSourceCreator
org.springframework.cloud.service.relational.OracleDataSourceCreator
org.springframework.cloud.service.relational.DB2DataSourceCreator
org.springframework.cloud.service.keyval.RedisConnectionFactoryCreator
org.springframework.cloud.service.document.MongoDbFactoryCreator
org.springframework.cloud.service.messaging.RabbitConnectionFactoryCreator

View File

@@ -0,0 +1,9 @@
package org.springframework.cloud.service.relational;
import org.springframework.cloud.service.common.DB2ServiceInfo;
public class DB2DataSourceFactoryTest extends AbstractDataSourceFactoryTest<DB2ServiceInfo> {
public DB2ServiceInfo getTestServiceInfo(String id) {
return new DB2ServiceInfo(id, "db2://host:port/db:user=myuser;password=mypassword;");
}
}

View File

@@ -0,0 +1,41 @@
package org.springframework.cloud.service.relational;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.cloud.service.common.DB2ServiceInfo;;
public class DB2ServiceCreatorTest extends AbstractDataSourceCreatorTest<DB2DataSourceCreator, DB2ServiceInfo> {
@Mock private DB2ServiceInfo mockDB2ServiceInfo;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
// set a dummy JDBC driver since we can't yet include a real DB2 driver in the project due to licensing restrictions
System.setProperty("spring-cloud.db2.driver", "com.example.Driver");
}
@Override
public DB2ServiceInfo createServiceInfo() {
when(mockDB2ServiceInfo.getJdbcUrl()).thenReturn("db2://10.20.30.40:50000/database-123:user=myuser;password=mypassword;");
return mockDB2ServiceInfo;
}
@Override
public String getDriverName() {
return "com.example.Driver";
}
@Override
public DB2DataSourceCreator getCreator() {
return new DB2DataSourceCreator();
}
@Override
public String getValidationQueryStart() {
return "VALUES 1";
}
}