You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2017/12/28 12:03:37 UTC
[incubator-plc4x] 02/02: Bugfix: authenticated connection isn't
connected by default
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 <se...@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" <co...@plc4x.apache.org>.