Repository: incubator-beam
Updated Branches:
  refs/heads/master 3f8db06bd -> 48917845b


[BEAM-856] Use free network port for the Derby test instance


Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/67215786
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/67215786
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/67215786

Branch: refs/heads/master
Commit: 67215786f99d640283c730e41c70179ae1a5519a
Parents: 3f8db06
Author: Jean-Baptiste Onofré <[email protected]>
Authored: Wed Nov 2 19:22:16 2016 +0100
Committer: Davor Bonaci <[email protected]>
Committed: Thu Nov 10 14:30:01 2016 -0800

----------------------------------------------------------------------
 .../org/apache/beam/sdk/io/jdbc/JdbcIOTest.java | 25 +++++++++++++-------
 1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/67215786/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOTest.java
----------------------------------------------------------------------
diff --git 
a/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOTest.java 
b/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOTest.java
index c7b2de8..fe574af 100644
--- 
a/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOTest.java
+++ 
b/sdks/java/io/jdbc/src/test/java/org/apache/beam/sdk/io/jdbc/JdbcIOTest.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.io.Serializable;
 import java.net.InetAddress;
+import java.net.ServerSocket;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -59,18 +60,26 @@ public class JdbcIOTest implements Serializable {
   private static NetworkServerControl derbyServer;
   private static ClientDataSource dataSource;
 
+  private static int port;
+
   @BeforeClass
   public static void startDatabase() throws Exception {
+    ServerSocket socket = new ServerSocket(0);
+    port = socket.getLocalPort();
+    socket.close();
+
+    LOGGER.info("Starting Derby database on {}", port);
+
     System.setProperty("derby.stream.error.file", "target/derby.log");
 
-    derbyServer = new NetworkServerControl(InetAddress.getByName("localhost"), 
1527);
+    derbyServer = new NetworkServerControl(InetAddress.getByName("localhost"), 
port);
     derbyServer.start(null);
 
     dataSource = new ClientDataSource();
     dataSource.setCreateDatabase("create");
     dataSource.setDatabaseName("target/beam");
     dataSource.setServerName("localhost");
-    dataSource.setPortNumber(1527);
+    dataSource.setPortNumber(port);
 
     try (Connection connection = dataSource.getConnection()) {
       try (Statement statement = connection.createStatement()) {
@@ -129,7 +138,7 @@ public class JdbcIOTest implements Serializable {
   public void testDataSourceConfigurationDriverAndUrl() throws Exception {
     JdbcIO.DataSourceConfiguration config = 
JdbcIO.DataSourceConfiguration.create(
         "org.apache.derby.jdbc.ClientDriver",
-        "jdbc:derby://localhost:1527/target/beam");
+        "jdbc:derby://localhost:" + port + "/target/beam");
     try (Connection conn = config.getConnection()) {
       assertTrue(conn.isValid(0));
     }
@@ -139,7 +148,7 @@ public class JdbcIOTest implements Serializable {
   public void testDataSourceConfigurationUsernameAndPassword() throws 
Exception {
     JdbcIO.DataSourceConfiguration config = 
JdbcIO.DataSourceConfiguration.create(
         "org.apache.derby.jdbc.ClientDriver",
-        "jdbc:derby://localhost:1527/target/beam")
+        "jdbc:derby://localhost:" + port + "/target/beam")
         .withUsername("sa")
         .withPassword("sa");
     try (Connection conn = config.getConnection()) {
@@ -151,7 +160,7 @@ public class JdbcIOTest implements Serializable {
   public void testDataSourceConfigurationNullPassword() throws Exception {
     JdbcIO.DataSourceConfiguration config = 
JdbcIO.DataSourceConfiguration.create(
         "org.apache.derby.jdbc.ClientDriver",
-        "jdbc:derby://localhost:1527/target/beam")
+        "jdbc:derby://localhost:" + port + "/target/beam")
         .withUsername("sa")
         .withPassword(null);
     try (Connection conn = config.getConnection()) {
@@ -163,7 +172,7 @@ public class JdbcIOTest implements Serializable {
   public void testDataSourceConfigurationNullUsernameAndPassword() throws 
Exception {
     JdbcIO.DataSourceConfiguration config = 
JdbcIO.DataSourceConfiguration.create(
         "org.apache.derby.jdbc.ClientDriver",
-        "jdbc:derby://localhost:1527/target/beam")
+        "jdbc:derby://localhost:" + port + "/target/beam")
         .withUsername(null)
         .withPassword(null);
     try (Connection conn = config.getConnection()) {
@@ -256,7 +265,7 @@ public class JdbcIOTest implements Serializable {
         .apply(JdbcIO.<KV<Integer, String>>write()
             .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create(
                 "org.apache.derby.jdbc.ClientDriver",
-                "jdbc:derby://localhost:1527/target/beam"))
+                "jdbc:derby://localhost:" + port + "/target/beam"))
             .withStatement("insert into BEAM values(?, ?)")
             .withPreparedStatementSetter(new 
JdbcIO.PreparedStatementSetter<KV<Integer, String>>() {
               public void setParameters(KV<Integer, String> element, 
PreparedStatement statement)
@@ -289,7 +298,7 @@ public class JdbcIOTest implements Serializable {
         .apply(JdbcIO.<KV<Integer, String>>write()
             .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration.create(
                 "org.apache.derby.jdbc.ClientDriver",
-                "jdbc:derby://localhost:1527/target/beam"))
+                "jdbc:derby://localhost:" + port + "/target/beam"))
             .withStatement("insert into BEAM values(?, ?)")
             .withPreparedStatementSetter(new 
JdbcIO.PreparedStatementSetter<KV<Integer, String>>() {
               public void setParameters(KV<Integer, String> element, 
PreparedStatement statement)

Reply via email to