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>.

Reply via email to