This is an automated email from the ASF dual-hosted git repository. sruehl pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit c46f6e72279dbb49080cc05c263383c3b6a1e8ae Author: Sebastian Rühl <sebastian.ru...@codecentric.de> AuthorDate: Thu Dec 21 13:27:34 2017 +0100 Bugfix: authenticated connection isn't connected by default --- .../java/org/apache/plc4x/java/PlcDriverManager.java | 10 +++++++--- .../org/apache/plc4x/java/PlcDriverManagerTest.java | 4 ++++ .../java/org/apache/plc4x/java/mock/MockConnection.java | 17 +++++++++++++++-- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/plc4j/core/src/main/java/org/apache/plc4x/java/PlcDriverManager.java b/plc4j/core/src/main/java/org/apache/plc4x/java/PlcDriverManager.java index c9a73f8..d038913 100644 --- a/plc4j/core/src/main/java/org/apache/plc4x/java/PlcDriverManager.java +++ b/plc4j/core/src/main/java/org/apache/plc4x/java/PlcDriverManager.java @@ -52,6 +52,7 @@ public class PlcDriverManager { /** * Connects to a PLC using the given plc connection string. + * * @param url plc connection string. * @return PlcConnection object. * @throws PlcConnectionException an exception if the connection attempt failed. @@ -65,14 +66,17 @@ public class PlcDriverManager { /** * Connects to a PLC using the given plc connection string using given authentication credentials. - * @param url plc connection string. + * + * @param url plc connection string. * @param authentication authentication credentials. * @return PlcConnection object. * @throws PlcConnectionException an exception if the connection attempt failed. */ public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException { PlcDriver driver = getDriver(url); - return driver.connect(url, authentication); + PlcConnection connection = driver.connect(url, authentication); + connection.connect(); + return connection; } private PlcDriver getDriver(String url) throws PlcConnectionException { @@ -80,7 +84,7 @@ public class PlcDriverManager { URI connectionUri = new URI(url); String protocol = connectionUri.getScheme(); PlcDriver driver = driverMap.get(protocol); - if(driver == null) { + if (driver == null) { throw new PlcConnectionException("Unable to find driver for protocol '" + protocol + "'"); } return driver; diff --git a/plc4j/core/src/test/java/org/apache/plc4x/java/PlcDriverManagerTest.java b/plc4j/core/src/test/java/org/apache/plc4x/java/PlcDriverManagerTest.java index 472e0a6..6aacb7b 100644 --- a/plc4j/core/src/test/java/org/apache/plc4x/java/PlcDriverManagerTest.java +++ b/plc4j/core/src/test/java/org/apache/plc4x/java/PlcDriverManagerTest.java @@ -41,6 +41,8 @@ class PlcDriverManagerTest { void getExistingDriverTest() throws PlcException { MockConnection mockConnection = (MockConnection) new PlcDriverManager().getConnection("mock://some-cool-url"); Assertions.assertNull(mockConnection.getAuthentication()); + Assertions.assertTrue(mockConnection.isConnected()); + Assertions.assertTrue(!mockConnection.isClosed()); } /** @@ -54,6 +56,8 @@ class PlcDriverManagerTest { MockConnection mockConnection = (MockConnection) new PlcDriverManager().getConnection("mock://some-cool-url", authentication); Assertions.assertNotNull(mockConnection.getAuthentication()); Assertions.assertTrue(mockConnection.getAuthentication() instanceof PlcUsernamePasswordAuthentication); + Assertions.assertTrue(mockConnection.isConnected()); + Assertions.assertTrue(!mockConnection.isClosed()); } /** diff --git a/plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockConnection.java b/plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockConnection.java index 09cde47..83e833e 100644 --- a/plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockConnection.java +++ b/plc4j/core/src/test/java/org/apache/plc4x/java/mock/MockConnection.java @@ -28,6 +28,9 @@ public class MockConnection extends AbstractPlcConnection { private final PlcAuthentication authentication; + boolean connected = false; + boolean closed = true; + public MockConnection(PlcAuthentication authentication) { this.authentication = authentication; } @@ -36,14 +39,24 @@ public class MockConnection extends AbstractPlcConnection { return authentication; } + public boolean isConnected() { + return connected; + } + + public boolean isClosed() { + return closed; + } + @Override public void connect() throws PlcConnectionException { - + connected = true; + closed = false; } @Override public void close() throws Exception { - + connected = false; + closed = true; } @Override -- To stop receiving notification emails like this one, please contact "commits@plc4x.apache.org" <commits@plc4x.apache.org>.