diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c32394f --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,117 @@ +/* + * Copyright 2007-present 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.5"; + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if(mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if(mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if(!outputFile.getParentFile().exists()) { + if(!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index 9cc84ea..0d5e649 100644 Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index c315043..fa87ad7 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1 +1,2 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.0/apache-maven-3.5.0-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar diff --git a/cnb-bindings-boot/pom.xml b/cnb-bindings-boot/pom.xml deleted file mode 100644 index 407f894..0000000 --- a/cnb-bindings-boot/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - - - org.springframework.cloud - cnb-bindings-parent - 0.0.1.BUILD-SNAPSHOT - - - cnb-bindings-boot - CNB Bindings Spring Boot - Java CNB Spring Boot Support - - - - org.springframework.cloud - cnb-bindings-jdbc - ${project.version} - - - - org.springframework.boot - spring-boot - - - org.junit.vintage - junit-vintage-engine - - - - - org.mockito - mockito-core - test - - - - diff --git a/cnb-bindings-boot/src/main/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessor.java b/cnb-bindings-boot/src/main/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessor.java deleted file mode 100644 index cf0de3f..0000000 --- a/cnb-bindings-boot/src/main/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessor.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.boot; - -import java.util.Map; - -import org.springframework.cloud.cnb.Binding; -import org.springframework.cloud.cnb.jdbc.JdbcBinding; - - -public class DataSourceCnbBindingProcessor implements CnbBindingProcessor { - @Override - public boolean accept(Binding binding) { - return JdbcBinding.isJDCBBinding(binding); - } - - @Override - public void process(Binding binding, Map properties) { - JdbcBinding jdbcBinding = new JdbcBinding(binding); - properties.put("spring.datasource.url", jdbcBinding.getJdbcUrl()); - properties.put("spring.datasource.username", jdbcBinding.getUsername()); - properties.put("spring.datasource.password", jdbcBinding.getPassword()); - properties.put("spring.datasource.driver-class-name", jdbcBinding.getDriverClassName()); - } - - @Override - public CnbBindingProcessorProperties getProperties() { - return CnbBindingProcessorProperties.builder() - .propertyPrefixes("spring.datasource") - .build(); - } -} diff --git a/cnb-bindings-boot/src/main/resources/META-INF/spring.factories b/cnb-bindings-boot/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 6862e0d..0000000 --- a/cnb-bindings-boot/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,11 +0,0 @@ -# Environment Post Processors -org.springframework.boot.env.EnvironmentPostProcessor=\ - org.springframework.cloud.cnb.boot.CnbBindingsPostProcessor -# Also register as a ApplicationListener to log what occurred in the post processing step -org.springframework.context.ApplicationListener=\ - org.springframework.cloud.cnb.boot.CnbBindingsPostProcessor -# CnbBindingsPostProcessor delegates to these CnbBindingsProcessors for each CF service -org.springframework.cloud.cnb.boot.CnbBindingProcessor=\ - org.springframework.cloud.cnb.boot.DataSourceCnbBindingProcessor - - diff --git a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessorTests.java b/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessorTests.java deleted file mode 100644 index 6dd57a8..0000000 --- a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/DataSourceCnbBindingProcessorTests.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.boot; - - -import java.util.HashMap; -import java.util.Map; - -import org.junit.Test; - -import org.springframework.cloud.cnb.Binding; - - -import static org.assertj.core.api.Assertions.assertThat; - -public class DataSourceCnbBindingProcessorTests { - - @Test - public void acceptIfJdbcTest() { - DataSourceCnbBindingProcessor bindingProcessor = new DataSourceCnbBindingProcessor(); - Map bindingMetadata = new HashMap(); - bindingMetadata.put("kind", "mysql"); - Binding binding = new Binding(bindingMetadata, new HashMap()); - assertThat(bindingProcessor.accept(binding)).isTrue(); - } - - @Test - public void rejectIfNotJdbcTest() { - DataSourceCnbBindingProcessor bindingProcessor = new DataSourceCnbBindingProcessor(); - Map bindingMetadata = new HashMap(); - bindingMetadata.put("kind", "redis"); - Binding binding = new Binding(bindingMetadata, new HashMap()); - assertThat(bindingProcessor.accept(binding)).isFalse(); - } - - @Test - public void processDataSourcePropertiesTest() { - DataSourceCnbBindingProcessor bindingProcessor = new DataSourceCnbBindingProcessor(); - Map bindingMetadata = new HashMap(); - bindingMetadata.put("kind", "test-kind"); - Map bindingSecret = new HashMap(); - bindingSecret.put("hostname", "10.0.4.35"); - bindingSecret.put("port", "3306"); - bindingSecret.put("db", "some-db"); - bindingSecret.put("username", "some-username"); - bindingSecret.put("password", "some-password"); - Binding binding = new Binding(bindingMetadata, bindingSecret); - Map properties = new HashMap(); - bindingProcessor.process(binding, properties); - assertThat(properties.get("spring.datasource.url")).isEqualTo("jdbc:testscheme://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - assertThat(properties.get("spring.datasource.username")).isEqualTo("some-username"); - assertThat(properties.get("spring.datasource.password")).isEqualTo("some-password"); - assertThat(properties.get("spring.datasource.driver-class-name")).isEqualTo("test.kind.fake.jdbc.Driver"); - } - - @Test - public void processorPropertiesTest() { - DataSourceCnbBindingProcessor bindingProcessor = new DataSourceCnbBindingProcessor(); - CnbBindingProcessorProperties processorProperties = bindingProcessor.getProperties(); - } - -} diff --git a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/EnvMock.java b/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/EnvMock.java deleted file mode 100644 index 69a2cd0..0000000 --- a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/EnvMock.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.cnb.boot.test; - -import java.util.HashMap; -import java.util.Map; - -import mockit.MockUp; - -import org.springframework.cloud.cnb.Bindings; - - -/** - * @author Emily Casey - **/ -public class EnvMock { - private MockUp mockUp; - - public EnvMock(String cnbBindingsPath) { - - Map env = System.getenv(); - this.mockUp = new MockUp() { - @mockit.Mock - public String getenv(String name) { - if (name.equalsIgnoreCase(Bindings.CNB_BINDINGS)) { - return cnbBindingsPath; - } - return env.get(name); - } - - @mockit.Mock - public Map getenv() { - Map finalMap = new HashMap<>(); - finalMap.putAll(env); - finalMap.put("CNB_BINDINGS", cnbBindingsPath); - return finalMap; - } - }; - } -} diff --git a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/TestJdbcKind.java b/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/TestJdbcKind.java deleted file mode 100644 index a9c61f6..0000000 --- a/cnb-bindings-boot/src/test/java/org/springframework/cloud/cnb/boot/test/TestJdbcKind.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.boot.test; - -import org.springframework.cloud.cnb.Binding; -import org.springframework.cloud.cnb.jdbc.JdbcKind; - -public class TestJdbcKind implements JdbcKind { - - @Override - public boolean forBinding(Binding binding) { - if (binding.getKind().equals("test-kind")) { - return true; - } - return false; - } - - @Override - public String getScheme() { - return "testscheme"; - } - - @Override - public String getDriverClassName() { - return "test.kind.fake.jdbc.Driver"; - } -} diff --git a/cnb-bindings-boot/src/test/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind b/cnb-bindings-boot/src/test/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind deleted file mode 100644 index 112161c..0000000 --- a/cnb-bindings-boot/src/test/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind +++ /dev/null @@ -1 +0,0 @@ -org.springframework.cloud.cnb.boot.test.TestJdbcKind \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/kind b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/kind deleted file mode 100644 index 0d46ca3..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/kind +++ /dev/null @@ -1 +0,0 @@ -mysql \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/provider b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/provider deleted file mode 100644 index 17c9ec1..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/provider +++ /dev/null @@ -1 +0,0 @@ -p-mysql \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/tags b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/tags deleted file mode 100644 index 06a445d..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/metadata/tags +++ /dev/null @@ -1 +0,0 @@ -mysql,relational \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/db b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/db deleted file mode 100644 index fe26725..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/db +++ /dev/null @@ -1 +0,0 @@ -mysql_name \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/hostname b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/hostname deleted file mode 100644 index bdcbc7f..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/hostname +++ /dev/null @@ -1 +0,0 @@ -10.0.4.35 \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/password b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/password deleted file mode 100644 index d297279..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/password +++ /dev/null @@ -1 +0,0 @@ -mysql_password \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/port b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/port deleted file mode 100644 index 080d920..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/port +++ /dev/null @@ -1 +0,0 @@ -3306 \ No newline at end of file diff --git a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/username b/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/username deleted file mode 100644 index 1dc5c4a..0000000 --- a/cnb-bindings-boot/src/test/resources/test-bindings/p-mysql/secret/username +++ /dev/null @@ -1 +0,0 @@ -mysql_username \ No newline at end of file diff --git a/cnb-bindings-jdbc/pom.xml b/cnb-bindings-jdbc/pom.xml deleted file mode 100644 index 642b9ab..0000000 --- a/cnb-bindings-jdbc/pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - 4.0.0 - - - org.springframework.cloud - cnb-bindings-parent - 0.0.1.BUILD-SNAPSHOT - - - cnb-bindings-jdbc - CNB Bindings JDBC - CNB Bindings JDBC Support Library - - - - org.springframework.cloud - cnb-bindings - ${project.version} - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.mariadb.jdbc - mariadb-java-client - test - - - diff --git a/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcBinding.java b/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcBinding.java deleted file mode 100644 index 718b187..0000000 --- a/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcBinding.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.jdbc; - -import java.util.ServiceLoader; - -import org.springframework.cloud.cnb.Binding; -import org.springframework.cloud.cnb.core.IllegalBindingException; - - -public class JdbcBinding { - private static final String JDBC_PREFIX = "jdbc:"; - private final Binding binding; - private final JdbcKind kind; - - public static boolean isJDCBBinding(Binding binding) { - ServiceLoader loader = ServiceLoader.load(JdbcKind.class); - for (JdbcKind kind : loader) { - if (kind.forBinding(binding)) { - return true; - } - } - return false; - } - - public JdbcBinding(Binding binding) { - ServiceLoader loader = ServiceLoader.load(JdbcKind.class); - for (JdbcKind kind : loader) { - if (kind.forBinding(binding)) { - this.kind = kind; - this.binding = binding; - return; - } - } - throw new IllegalBindingException("no matching jdbc kind for binding"); - } - - public String getJdbcUrl() { - return String.format("%s%s://%s/%s%s", JDBC_PREFIX, kind.getScheme(), - buildHost(), - buildPath(), - buildQuery() - ); - } - - public String getDriverClassName() { - return kind.getDriverClassName(); - } - - private String buildHost() { - return String.format("%s:%s", - binding.getSecret().get("hostname"), - binding.getSecret().get("port") - ); - } - - private String buildPath() { - return binding.getSecret().get("db"); - } - - private String buildQuery() { - return String.format("?user=%s&password=%s", - binding.getSecret().get("username"), - binding.getSecret().get("password") - ); - } - - public String getUsername() { - return binding.getSecret().get("username"); - } - - public String getPassword() { - return binding.getSecret().get("password"); - } -} diff --git a/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcKind.java b/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcKind.java deleted file mode 100644 index 4104342..0000000 --- a/cnb-bindings-jdbc/src/main/java/org/springframework/cloud/cnb/jdbc/JdbcKind.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.jdbc; - -import org.springframework.cloud.cnb.Binding; - -public interface JdbcKind { - boolean forBinding(Binding binding); - String getScheme(); - String getDriverClassName(); -} diff --git a/cnb-bindings-jdbc/src/main/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind b/cnb-bindings-jdbc/src/main/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind deleted file mode 100644 index a2b9069..0000000 --- a/cnb-bindings-jdbc/src/main/resources/META-INF/services/org.springframework.cloud.cnb.jdbc.JdbcKind +++ /dev/null @@ -1,5 +0,0 @@ -org.springframework.cloud.cnb.jdbc.MysqlJdbcKind -org.springframework.cloud.cnb.jdbc.DB2JdbcKind -org.springframework.cloud.cnb.jdbc.OracleJdbcKind -org.springframework.cloud.cnb.jdbc.PostgresJdbcKind -org.springframework.cloud.cnb.jdbc.SqlServerJdbcKind \ No newline at end of file diff --git a/cnb-bindings-jdbc/src/test/java/org/springframework/cloud/cnb/jdbc/JdbcBindingTest.java b/cnb-bindings-jdbc/src/test/java/org/springframework/cloud/cnb/jdbc/JdbcBindingTest.java deleted file mode 100644 index 8374062..0000000 --- a/cnb-bindings-jdbc/src/test/java/org/springframework/cloud/cnb/jdbc/JdbcBindingTest.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.cnb.jdbc; - -import java.util.HashMap; -import java.util.Map; - -import org.junit.Test; - -import org.springframework.cloud.cnb.Binding; - -import static org.assertj.core.api.Assertions.assertThat; - - -public class JdbcBindingTest { - - @Test - public void testIsJdbcBinding_false() { - Binding notJdbcBinding = bindingWithKind("not-registered"); - assertThat(JdbcBinding.isJDCBBinding(notJdbcBinding)).isFalse(); - } - - @Test - public void testJdbcBinding_mysql() { - Binding mysqlBinding = bindingWithKind("mysql"); - assertThat(JdbcBinding.isJDCBBinding(mysqlBinding)).isTrue(); - JdbcBinding jdbcBinding = new JdbcBinding(mysqlBinding); - assertThat(jdbcBinding.getJdbcUrl()). - isEqualTo("jdbc:mysql://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - } - - @Test - public void testJdbcBinding_oracle() { - Binding oracleBinding = bindingWithKind("oracle"); - assertThat(JdbcBinding.isJDCBBinding(oracleBinding)).isTrue(); - JdbcBinding jdbcBinding = new JdbcBinding(oracleBinding); - assertThat(jdbcBinding.getJdbcUrl()) - .isEqualTo("jdbc:oracle://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - assertThat(jdbcBinding.getDriverClassName()). - isEqualTo("oracle.jdbc.OracleDriver"); - } - - @Test - public void testJdbcBinding_postgres() { - Binding postgresBinding = bindingWithKind("postgres"); - assertThat(JdbcBinding.isJDCBBinding(postgresBinding)).isTrue(); - JdbcBinding jdbcBinding = new JdbcBinding(postgresBinding); - assertThat(jdbcBinding.getJdbcUrl()) - .isEqualTo("jdbc:postgres://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - assertThat(jdbcBinding.getDriverClassName()). - isEqualTo("org.postgresql.Driver"); - } - - @Test - public void testJdbcBinding_postgresql() { - Binding postgresBinding = bindingWithKind("postgresql"); - assertThat(JdbcBinding.isJDCBBinding(postgresBinding)).isTrue(); - JdbcBinding jdbcBinding = new JdbcBinding(postgresBinding); - assertThat(jdbcBinding.getJdbcUrl()) - .isEqualTo("jdbc:postgres://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - assertThat(jdbcBinding.getDriverClassName()). - isEqualTo("org.postgresql.Driver"); - } - - @Test - public void testJdbcBinding_sqlserver() { - Binding sqlserverBinding = bindingWithKind("sqlserver"); - assertThat(JdbcBinding.isJDCBBinding(sqlserverBinding)).isTrue(); - JdbcBinding jdbcBinding = new JdbcBinding(sqlserverBinding); - assertThat(jdbcBinding.getJdbcUrl()) - .isEqualTo("jdbc:sqlserver://10.0.4.35:3306/some-db?user=some-username&password=some-password"); - assertThat(jdbcBinding.getDriverClassName()). - isEqualTo("com.microsoft.sqlserver.jdbc.SQLServerDriver"); - } - - public Binding bindingWithKind(String kind) { - Map metadata = new HashMap(); - metadata.put("kind", kind); - Map secret = new HashMap(); - secret.put("hostname", "10.0.4.35"); - secret.put("port", "3306"); - secret.put("db", "some-db"); - secret.put("username", "some-username"); - secret.put("password", "some-password"); - return new Binding(metadata, secret); - } -} diff --git a/cnb-bindings/pom.xml b/cnb-bindings/pom.xml deleted file mode 100644 index d102d79..0000000 --- a/cnb-bindings/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - 4.0.0 - - - org.springframework.cloud - cnb-bindings-parent - 0.0.1.BUILD-SNAPSHOT - - - cnb-bindings - CNB Bindings - Java CNB Bindings Core Library - - - - org.jetbrains - annotations - provided - - - org.springframework.boot - spring-boot-starter - provided - - - - org.mariadb.jdbc - mariadb-java-client - test - - - org.mockito - mockito-core - test - - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.vintage - junit-vintage-engine - - - - - - diff --git a/mvnw b/mvnw index 5bf251c..d2f0ea3 100755 --- a/mvnw +++ b/mvnw @@ -108,13 +108,12 @@ if $cygwin ; then CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi -# For Migwn, ensure paths are in UNIX format before anything is touched +# For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then @@ -200,8 +199,89 @@ if [ -z "$BASE_DIR" ]; then exit 1; fi +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java @@ -216,6 +296,11 @@ if $cygwin; then MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ diff --git a/mvnw.cmd b/mvnw.cmd index 019bd74..b26ab24 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -35,7 +35,9 @@ @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME @@ -115,10 +117,47 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end diff --git a/pom.xml b/pom.xml index f67f2cb..8afe232 100644 --- a/pom.xml +++ b/pom.xml @@ -5,13 +5,12 @@ 4.0.0 org.springframework.cloud - cnb-bindings-parent + bindings 0.0.1.BUILD-SNAPSHOT - pom - CNB Bindings Parent + Cloud Native Buildpacks Bindings Java Library for Accessing CNB Bindings - https://github.com/spring-cloud-incubator/cnb-bindings + https://github.com/spring-cloud-incubator/bindings @@ -21,9 +20,9 @@ - https://github.com/spring-cloud-incubator/cnb-bindings - scm:git:git://github.com/spring-cloud-incubator/cnb-bindings.git - scm:git:ssh://git@github.com/spring-cloud-incubator/cnb-bindings.git + https://github.com/spring-cloud-incubator/bindings + scm:git:git://github.com/spring-cloud-incubator/bindings.git + scm:git:ssh://git@github.com/spring-cloud-incubator/bindings.git @@ -42,19 +41,6 @@ UTF-8 - - cnb-bindings - cnb-bindings-jdbc - cnb-bindings-boot - - - - - Emily Casey - ekcasey - - - @@ -64,56 +50,84 @@ pom import - - - org.jetbrains - annotations - ${jetbrains-annotations.version} - + + + org.jetbrains + annotations + ${jetbrains-annotations.version} + provided + + + org.springframework.boot + spring-boot-starter + provided + + + + org.mariadb.jdbc + mariadb-java-client + test + + + org.mockito + mockito-core + test + + + org.springframework.boot + spring-boot-starter-test + test + + + org.junit.vintage + junit-vintage-engine + + + + + - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - -Werror - -Xlint:all - -Xlint:-options - -Xlint:-processing - -Xlint:-serial - - true - - - - org.apache.maven.plugins - maven-source-plugin - ${maven-source-plugin.version} - - - attach-sources - - jar - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - random - - - - + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + -Werror + -Xlint:all + -Xlint:-options + -Xlint:-processing + -Xlint:-serial + + true + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + random + + + diff --git a/src/checkstyle/checkstyle-header.txt b/src/checkstyle/checkstyle-header.txt deleted file mode 100644 index bc142db..0000000 --- a/src/checkstyle/checkstyle-header.txt +++ /dev/null @@ -1,15 +0,0 @@ -^\Q/*\E$ -^\Q * Copyright \E(20\d\d\-)?20\d\d\Q the original author or authors.\E$ -^\Q *\E$ -^\Q * Licensed under the Apache License, Version 2.0 (the "License");\E$ -^\Q * you may not use this file except in compliance with the License.\E$ -^\Q * You may obtain a copy of the License at\E$ -^\Q *\E$ -^\Q * http://www.apache.org/licenses/LICENSE-2.0\E$ -^\Q *\E$ -^\Q * Unless required by applicable law or agreed to in writing, software\E$ -^\Q * distributed under the License is distributed on an "AS IS" BASIS,\E$ -^\Q * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\E$ -^\Q * See the License for the specific language governing permissions and\E$ -^\Q * limitations under the License.\E$ -^\Q */\E$ diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml deleted file mode 100644 index 348389d..0000000 --- a/src/checkstyle/checkstyle.xml +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/Binding.java b/src/main/java/org/springframework/cloud/bindings/Binding.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/Binding.java rename to src/main/java/org/springframework/cloud/bindings/Binding.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/Bindings.java b/src/main/java/org/springframework/cloud/bindings/Bindings.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/Bindings.java rename to src/main/java/org/springframework/cloud/bindings/Bindings.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessor.java b/src/main/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessor.java rename to src/main/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/BindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/BindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/BindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/BindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessor.java b/src/main/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessor.java similarity index 100% rename from cnb-bindings/src/main/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessor.java rename to src/main/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessor.java diff --git a/cnb-bindings/src/main/resources/META-INF/spring.factories b/src/main/resources/META-INF/spring.factories similarity index 100% rename from cnb-bindings/src/main/resources/META-INF/spring.factories rename to src/main/resources/META-INF/spring.factories diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingTest.java b/src/test/java/org/springframework/cloud/bindings/BindingTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingTest.java rename to src/test/java/org/springframework/cloud/bindings/BindingTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/BindingsEnvironmentPostProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingsTests.java b/src/test/java/org/springframework/cloud/bindings/BindingsTests.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/BindingsTests.java rename to src/test/java/org/springframework/cloud/bindings/BindingsTests.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/CassandraBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/Db2BindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/FluentMap.java b/src/test/java/org/springframework/cloud/bindings/FluentMap.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/FluentMap.java rename to src/test/java/org/springframework/cloud/bindings/FluentMap.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/MongoDbBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/MySqlBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/OracleBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/PostgreSqlBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/RedisBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessorTest.java b/src/test/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessorTest.java similarity index 100% rename from cnb-bindings/src/test/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessorTest.java rename to src/test/java/org/springframework/cloud/bindings/SqlServerBindingsPropertiesProcessorTest.java diff --git a/cnb-bindings/src/test/resources/test-name-1/metadata/kind b/src/test/resources/test-name-1/metadata/kind similarity index 100% rename from cnb-bindings/src/test/resources/test-name-1/metadata/kind rename to src/test/resources/test-name-1/metadata/kind diff --git a/cnb-bindings/src/test/resources/test-name-1/metadata/provider b/src/test/resources/test-name-1/metadata/provider similarity index 100% rename from cnb-bindings/src/test/resources/test-name-1/metadata/provider rename to src/test/resources/test-name-1/metadata/provider diff --git a/cnb-bindings/src/test/resources/test-name-1/secret/test-key b/src/test/resources/test-name-1/secret/test-key similarity index 100% rename from cnb-bindings/src/test/resources/test-name-1/secret/test-key rename to src/test/resources/test-name-1/secret/test-key diff --git a/cnb-bindings/src/test/resources/test-name-2/metadata/kind b/src/test/resources/test-name-2/metadata/kind similarity index 100% rename from cnb-bindings/src/test/resources/test-name-2/metadata/kind rename to src/test/resources/test-name-2/metadata/kind diff --git a/cnb-bindings/src/test/resources/test-name-2/metadata/provider b/src/test/resources/test-name-2/metadata/provider similarity index 100% rename from cnb-bindings/src/test/resources/test-name-2/metadata/provider rename to src/test/resources/test-name-2/metadata/provider diff --git a/cnb-bindings/src/test/resources/test-name-2/secret/test-key b/src/test/resources/test-name-2/secret/test-key similarity index 100% rename from cnb-bindings/src/test/resources/test-name-2/secret/test-key rename to src/test/resources/test-name-2/secret/test-key