From 0ab513cd940e95e9f8887e5162df1748a2fd4e07 Mon Sep 17 00:00:00 2001 From: GuillermoTantachuco Date: Mon, 13 Jul 2015 22:04:29 -0500 Subject: [PATCH] Added support for MS-SQL and Azure SQL DB Added support for MS-SQL and Azure SQL DB --- .../SqlServerServiceInfoCreator.java | 16 ++++++++++++++ ...loudfoundry.CloudFoundryServiceInfoCreator | 1 + .../service/common/SqlServerServiceInfo.java | 22 +++++++++++++++++++ .../SqlServerDataSourceCreator.java | 15 +++++++++++++ ...work.cloud.service.ServiceConnectorCreator | 1 + 5 files changed, 55 insertions(+) create mode 100644 spring-cloud-cloudfoundry-connector/src/main/java/org/springframework/cloud/cloudfoundry/SqlServerServiceInfoCreator.java create mode 100644 spring-cloud-core/src/main/java/org/springframework/cloud/service/common/SqlServerServiceInfo.java create mode 100644 spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/SqlServerDataSourceCreator.java diff --git a/spring-cloud-cloudfoundry-connector/src/main/java/org/springframework/cloud/cloudfoundry/SqlServerServiceInfoCreator.java b/spring-cloud-cloudfoundry-connector/src/main/java/org/springframework/cloud/cloudfoundry/SqlServerServiceInfoCreator.java new file mode 100644 index 0000000..6535926 --- /dev/null +++ b/spring-cloud-cloudfoundry-connector/src/main/java/org/springframework/cloud/cloudfoundry/SqlServerServiceInfoCreator.java @@ -0,0 +1,16 @@ +package org.springframework.cloud.cloudfoundry; + +import org.springframework.cloud.service.common.SqlServerServiceInfo; + +public class SqlServerServiceInfoCreator extends + RelationalServiceInfoCreator { + + public SqlServerServiceInfoCreator() { + super(new Tags(), SqlServerServiceInfo.SQLSERVER_SCHEME); } + + @Override + public SqlServerServiceInfo createServiceInfo(String id, String url) { + return new SqlServerServiceInfo(id, url); + } + +} diff --git a/spring-cloud-cloudfoundry-connector/src/main/resources/META-INF/services/org.springframework.cloud.cloudfoundry.CloudFoundryServiceInfoCreator b/spring-cloud-cloudfoundry-connector/src/main/resources/META-INF/services/org.springframework.cloud.cloudfoundry.CloudFoundryServiceInfoCreator index 115353c..9fdad86 100644 --- a/spring-cloud-cloudfoundry-connector/src/main/resources/META-INF/services/org.springframework.cloud.cloudfoundry.CloudFoundryServiceInfoCreator +++ b/spring-cloud-cloudfoundry-connector/src/main/resources/META-INF/services/org.springframework.cloud.cloudfoundry.CloudFoundryServiceInfoCreator @@ -7,3 +7,4 @@ org.springframework.cloud.cloudfoundry.MonitoringServiceInfoCreator org.springframework.cloud.cloudfoundry.SmtpServiceInfoCreator org.springframework.cloud.cloudfoundry.OracleServiceInfoCreator org.springframework.cloud.cloudfoundry.DB2ServiceInfoCreator +org.springframework.cloud.cloudfoundry.SqlServerServiceInfoCreator diff --git a/spring-cloud-core/src/main/java/org/springframework/cloud/service/common/SqlServerServiceInfo.java b/spring-cloud-core/src/main/java/org/springframework/cloud/service/common/SqlServerServiceInfo.java new file mode 100644 index 0000000..8b599f6 --- /dev/null +++ b/spring-cloud-core/src/main/java/org/springframework/cloud/service/common/SqlServerServiceInfo.java @@ -0,0 +1,22 @@ +package org.springframework.cloud.service.common; + +import org.springframework.cloud.service.ServiceInfo; + +@ServiceInfo.ServiceLabel("sqlserver") +public class SqlServerServiceInfo extends RelationalServiceInfo { + private static final String JDBC_URL_TYPE = "sqlserver"; + + public static final String SQLSERVER_SCHEME = JDBC_URL_TYPE; + + public SqlServerServiceInfo(String id, String url) { + super(id, url, JDBC_URL_TYPE); + } + + @Override + public String getJdbcUrl() + { + return String.format("jdbc:%s://%s:%d;database=%s;user=%s;password=%s;", + jdbcUrlDatabaseType, + getHost(), getPort(), getPath(), getUserName(), getPassword()); + } +} diff --git a/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/SqlServerDataSourceCreator.java b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/SqlServerDataSourceCreator.java new file mode 100644 index 0000000..72a27ae --- /dev/null +++ b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/SqlServerDataSourceCreator.java @@ -0,0 +1,15 @@ +package org.springframework.cloud.service.relational; + +import org.springframework.cloud.service.common.SqlServerServiceInfo; +import org.springframework.cloud.service.relational.DataSourceCreator; + +public class SqlServerDataSourceCreator extends DataSourceCreator { + + private static final String[] DRIVERS = new String[]{"com.microsoft.sqlserver.jdbc.SQLServerDriver"}; + private static final String VALIDATION_QUERY = "SELECT 1"; + + public SqlServerDataSourceCreator() { + super("spring-cloud.sqlserver.driver", DRIVERS, VALIDATION_QUERY); + } + +} diff --git a/spring-cloud-spring-service-connector/src/main/resources/META-INF/services/org.springframework.cloud.service.ServiceConnectorCreator b/spring-cloud-spring-service-connector/src/main/resources/META-INF/services/org.springframework.cloud.service.ServiceConnectorCreator index 3fed587..35ddb08 100644 --- a/spring-cloud-spring-service-connector/src/main/resources/META-INF/services/org.springframework.cloud.service.ServiceConnectorCreator +++ b/spring-cloud-spring-service-connector/src/main/resources/META-INF/services/org.springframework.cloud.service.ServiceConnectorCreator @@ -6,3 +6,4 @@ org.springframework.cloud.service.keyval.RedisConnectionFactoryCreator org.springframework.cloud.service.document.MongoDbFactoryCreator org.springframework.cloud.service.messaging.RabbitConnectionFactoryCreator org.springframework.cloud.service.smtp.MailSenderCreator +org.springframework.cloud.service.relational.SqlServerDataSourceCreator