This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch feature/cdutz/connection-cache-and-scraper-ng in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit b01d1fbebf5bac1ae126263b491b98368a2ce0ec Author: Christofer Dutz <[email protected]> AuthorDate: Wed Jan 11 15:46:22 2023 +0100 feat(plc4j/api): Introduced a new PlcConnectionManager interface, which just contains the getConnection variants in preparation of building a drop-in replacement plc-connection cache. --- .../org/apache/plc4x/java/PlcDriverManager.java | 3 +- .../plc4x/java/api/PlcConnectionManager.java | 45 ++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/PlcDriverManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/PlcDriverManager.java index 1514b4c080..5c25b61d0d 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/PlcDriverManager.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/PlcDriverManager.java @@ -19,6 +19,7 @@ package org.apache.plc4x.java; import org.apache.plc4x.java.api.PlcConnection; +import org.apache.plc4x.java.api.PlcConnectionManager; import org.apache.plc4x.java.api.authentication.PlcAuthentication; import org.apache.plc4x.java.api.exceptions.PlcConnectionException; import org.apache.plc4x.java.api.PlcDriver; @@ -32,7 +33,7 @@ import java.util.Map; import java.util.ServiceLoader; import java.util.Set; -public class PlcDriverManager { +public class PlcDriverManager implements PlcConnectionManager { private static final Logger LOGGER = LoggerFactory.getLogger(PlcDriverManager.class); diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java new file mode 100644 index 0000000000..98511ad75a --- /dev/null +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/PlcConnectionManager.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.plc4x.java.api; + +import org.apache.plc4x.java.api.authentication.PlcAuthentication; +import org.apache.plc4x.java.api.exceptions.PlcConnectionException; + +public interface PlcConnectionManager { + + /** + * 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. + */ + PlcConnection getConnection(String url) throws PlcConnectionException; + + /** + * Connects to a PLC using the given plc connection string using given authentication credentials. + * + * @param url plc connection string. + * @param authentication authentication credentials. + * @return PlcConnection object. + * @throws PlcConnectionException an exception if the connection attempt failed. + */ + PlcConnection getConnection(String url, PlcAuthentication authentication) throws PlcConnectionException; + +}
