You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/26 11:46:18 UTC
[incubator-plc4x] 01/02: Merge branch 'master' of
github.com:apache/incubator-plc4x into resync-github
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch resync-github
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 260b62966ce5ba3fbefa39feb65055eec8fe7a29
Merge: 138891f c5a2adf
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Fri Oct 26 13:27:15 2018 +0200
Merge branch 'master' of github.com:apache/incubator-plc4x into resync-github
.../org/apache/plc4x/java/PlcDriverManager.java | 4 +-
.../plc4x/java/PlcDriverManagerInterface.java | 29 ++++
.../plc4x/java/connectionpool/ConnectionProxy.java | 24 ++++
.../java/connectionpool/PlcConnectionManager.java | 154 +++++++++++++++++++++
.../java/connectionpool/PlcConnectionProxy.java | 101 ++++++++++++++
.../exceptions/NoConnectionAvailableException.java | 30 ++++
.../java/exceptions/NotConnectedException.java | 34 +++++
.../connectionpool/PlcConnectionManagerTest.java | 99 +++++++++++++
.../connectionpool/PlcConnectionProxyTest.java | 74 ++++++++++
.../connectionpool/PooledPlcDriverManager.java | 2 +
10 files changed, 550 insertions(+), 1 deletion(-)
diff --cc plc4j/utils/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManager.java
index 3816598,b59cb7d..6f91165
--- a/plc4j/utils/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManager.java
+++ b/plc4j/utils/connection-pool/src/main/java/org/apache/plc4x/java/utils/connectionpool/PooledPlcDriverManager.java
@@@ -72,19 -76,15 +72,21 @@@ public class PooledPlcDriverManager ext
@Override
public PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException {
- Pair<String, PlcAuthentication> argPair = Pair.of(url, authentication);
- ObjectPool<PlcConnection> pool = retrieveFromPool(argPair);
+ PoolKey poolKey = PoolKey.of(url, authentication);
+ ObjectPool<PlcConnection> pool = retrieveFromPool(poolKey);
try {
- LOGGER.debug("Try to borrow an object for url {} and authentication {}", url, authentication);
+ if (LOGGER.isDebugEnabled()) {
+ if (authentication != noPlcAuthentication) {
+ LOGGER.debug("Try to borrow an object for url {} and authentication {}", url, authentication);
+ } else {
+ LOGGER.debug("Try to borrow an object for url {}", url);
+ }
+ }
PlcConnection plcConnection = pool.borrowObject();
+ // TODO 25-10-2018 jf: Return a real wrapper object. This implementation leaks the connection.
+ // The connection can be reused by the pool but is still referenced and can thus still be used.
return (PlcConnection) Proxy.newProxyInstance(classLoader, new Class[]{PlcConnection.class}, (o, method, objects) -> {
- if (method.getName().equals("close")) {
+ if ("close".equals(method.getName())) {
LOGGER.debug("close called on {}. Returning to {}", plcConnection, pool);
pool.returnObject(plcConnection);
return null;