From 28b21388f8860b1a32a2114a98d3df6766e1d323 Mon Sep 17 00:00:00 2001 From: Laurent Cohen Date: Mon, 11 Jun 2018 07:21:09 +0200 Subject: [PATCH] implemented issue JPPF-531 --- JPPF/docs/manual/Customization.odt | Bin 465261 -> 466055 bytes .../AbstractCsvConnectionStrategy.java | 126 ++++++++++ .../JPPFCsvFileConnectionStrategy.java | 215 ++++++------------ .../JPPFCsvPropertyConnectionStrategy.java | 85 +++++++ .../node/connection/MyConnectionStrategy.java | 71 ------ 5 files changed, 285 insertions(+), 212 deletions(-) create mode 100644 node/src/java/org/jppf/node/connection/AbstractCsvConnectionStrategy.java create mode 100644 node/src/java/org/jppf/node/connection/JPPFCsvPropertyConnectionStrategy.java delete mode 100644 node/src/java/org/jppf/node/connection/MyConnectionStrategy.java diff --git a/JPPF/docs/manual/Customization.odt b/JPPF/docs/manual/Customization.odt index 4b626ca3e3461f0c4f3130d5a41a2f927c08524c..bad01fec7309a7a78860a5714e91506a3a1d5988 100644 GIT binary patch delta 81245 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 diff --git a/node/src/java/org/jppf/node/connection/AbstractCsvConnectionStrategy.java b/node/src/java/org/jppf/node/connection/AbstractCsvConnectionStrategy.java new file mode 100644 index 0000000000..9ab7c9f1f8 --- /dev/null +++ b/node/src/java/org/jppf/node/connection/AbstractCsvConnectionStrategy.java @@ -0,0 +1,126 @@ +/* + * JPPF. + * Copyright (C) 2005-2017 JPPF Team. + * http://www.jppf.org + * + * Licensed 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 + * + * http://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.jppf.node.connection; + +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; + +import org.jppf.utils.RegexUtils; +import org.slf4j.*; + +/** + * Common abstact super class for connection strategies that read connection from groups of comma-separated values. + * @author Laurent Cohen + * @since 6.0 + */ +public abstract class AbstractCsvConnectionStrategy implements DriverConnectionStrategy { + /** + * Logger for this class. + */ + private static Logger log = LoggerFactory.getLogger(AbstractCsvConnectionStrategy.class); + /** + * The queue in which {@code DriverConnectionInfo} objects are stored. + */ + final Queue queue = new LinkedBlockingQueue<>(); + /** + * The fallback strategy to use in case the CSV file is not found or none of the driver defintions it contains is valid. + */ + final DriverConnectionStrategy fallbackStrategy; + + /** + * Find and read the CSV data. + */ + public AbstractCsvConnectionStrategy() { + readAllConnectionInfo(); + fallbackStrategy = queue.isEmpty() ? new JPPFDefaultConnectionStrategy() : null; + if (log.isDebugEnabled()) { + if (queue.isEmpty()) log.debug("no valid driver definition found, falling back to default strategy"); + else { + final StringBuilder sb = new StringBuilder("driver definitions:"); + for (final DriverConnectionInfo info: queue) sb.append('\n').append(info); + log.debug(sb.toString()); + } + } + } + + @Override + public DriverConnectionInfo nextConnectionInfo(final DriverConnectionInfo currentInfo, final ConnectionContext context) { + if (fallbackStrategy != null) return fallbackStrategy.nextConnectionInfo(currentInfo, context); + if (log.isDebugEnabled()) log.debug("new connection request with prevInfo={} and context={}", currentInfo, context); + if ((currentInfo != null) && (context.getReason() == ConnectionReason.MANAGEMENT_REQUEST)) { + return currentInfo; + } + final DriverConnectionInfo info = queue.poll(); + queue.offer(info); + return info; + } + + /** + * Parse the CSV file specified in the configuration and convert each line + * into a {@link DriverConnectionInfo} which is then added to the queue. + */ + void readAllConnectionInfo() { + try { + final List lines = getConnectionInfoAsLines(); + for (final String line: lines) { + final DriverConnectionInfo info = parseLine(line.trim()); + if (info != null) { + if (log.isDebugEnabled()) log.debug("got connection info: {}", info); + queue.offer(info); + } + } + } catch (final Exception e) { + log.error(e.getMessage(), e); + } + } + + /** + * @return a list of csv-fromatted lines. + */ + abstract List getConnectionInfoAsLines(); + + /** + * Parse a CSV line to generate a driver connection info. + * @param csv the csv line to parse. + * @return a {@link DriverConnectionInfo} instance, or {@code null} if the CSV is not valid or a comment. + */ + static DriverConnectionInfo parseLine(final String csv) { + if (csv.startsWith("#")) return null; + final String[] tokens = RegexUtils.COMMA_PATTERN.split(csv); + if ((tokens != null) && (tokens.length == 4)) { + for (int i=0; isecure, host, port, recovery_port - *

where: - *

- *

Additionally, any line starting with a '#' (after trimming) will be considered as a comment and ignored. - *

The file location is read from the configuration property {@code 'jppf.node.connection.strategy.file'}. - * It will first be looked up in the file system, then in the classpath if it is not found in the file system. - * If no file is found at all, the node will fall back to the {@link JPPFDefaultConnectionStrategy JPPF default strategy} and use the configuration to find the driver connection information. - *

The listed drivers will be used as if they were arrayed in a "circle", - * with the driver selection mechanism rotating one tick each time {@code nextConnectionInfo()} is invoked. - * @author Laurent Cohen - * @since 4.1 - */ -public class JPPFCsvFileConnectionStrategy implements DriverConnectionStrategy { - /** - * Logger for this class. - */ - private static Logger log = LoggerFactory.getLogger(JPPFCsvFileConnectionStrategy.class); - /** - * The queue in which {@code DriverConnectionInfo} objects are stored. - */ - private final Queue queue = new LinkedBlockingQueue<>(); - /** - * The fallback strategy to use in case the CSV file is not found or none of the driver defintions it contains is valid. - */ - private final DriverConnectionStrategy fallbackStrategy; - - /** - * Find and read the CSV file. - */ - public JPPFCsvFileConnectionStrategy() { - readCsvFile(); - fallbackStrategy = queue.isEmpty() ? new JPPFDefaultConnectionStrategy() : null; - if (log.isDebugEnabled()) { - if (queue.isEmpty()) log.debug("no valid driver definition found, falling back to default strategy"); - else { - final StringBuilder sb = new StringBuilder("driver definitions:"); - for (final DriverConnectionInfo info: queue) sb.append('\n').append(info); - log.debug(sb.toString()); - } - } - } - - @Override - public DriverConnectionInfo nextConnectionInfo(final DriverConnectionInfo currentInfo, final ConnectionContext context) { - if (fallbackStrategy != null) return fallbackStrategy.nextConnectionInfo(currentInfo, context); - if (log.isDebugEnabled()) log.debug("new connection request with prevInfo={} and context={}", currentInfo, context); - if ((currentInfo != null) && (context.getReason() == ConnectionReason.MANAGEMENT_REQUEST)) { - return currentInfo; - } - final DriverConnectionInfo info = queue.poll(); - queue.offer(info); - return info; - } - - /** - * Parse the CSV file specified in the configuration and convert each line - * into a {@link DriverConnectionInfo} which is then added to the queue. - */ - private void readCsvFile() { - try { - String path = JPPFConfiguration.getProperties().getString("jppf.server.connection.strategy.file"); - if ((path != null) && !(path = path.trim()).isEmpty()) { - final Reader reader = FileUtils.getFileReader(path); - if (reader != null) { - final List lines = FileUtils.textFileAsLines(reader); - for (final String line: lines) { - final DriverConnectionInfo info = parseLine(line.trim()); - if (info != null) queue.offer(info); - } - } - } - } catch (final Exception e) { - log.error(e.getMessage(), e); - } - } - - /** - * Parse a CSV line to generate a driver connection info. - * @param csv the csv line to parse. - * @return a {@link DriverConnectionInfo} instance, or {@code null} if the CSV is not valid or a comment. - */ - private static DriverConnectionInfo parseLine(final String csv) { - if (csv.startsWith("#")) return null; - final String[] tokens = RegexUtils.COMMA_PATTERN.split(csv); - if ((tokens != null) && (tokens.length == 4)) { - for (int i=0; isecure, host, port, recovery_port + *

where: + *

    + *
  • secure is a boolean value (either 'true' or 'false', case-insenssitive) indicating whether a SSL/TLS connection should be established. + * any value that is not 'true' will be interpreted as 'false'.
  • + *
  • host is the host name or ip address of the driver to connect to
  • + *
  • port is the port to connect to on the driver host
  • + *
  • recovery_port is a valid port number for the recovery heartbeat mechanism, or a negative value to disable recovery for the node
  • + *
+ *

Additionally, any line starting with a '#' (after trimming) will be considered as a comment and ignored. + *

The file location is read from the configuration property {@code 'jppf.node.connection.strategy.file'}. + * It will first be looked up in the file system, then in the classpath if it is not found in the file system. + * If no file is found at all, the node will fall back to the {@link JPPFDefaultConnectionStrategy JPPF default strategy} and use the configuration to find the driver connection information. + *

The listed drivers will be used as if they were arrayed in a "circle", + * with the driver selection mechanism rotating one tick each time {@code nextConnectionInfo()} is invoked. + * @author Laurent Cohen + * @since 4.1 + */ +public class JPPFCsvFileConnectionStrategy extends AbstractCsvConnectionStrategy { + /** + * Logger for this class. + */ + private static Logger log = LoggerFactory.getLogger(JPPFCsvFileConnectionStrategy.class); + + /** + * Find and read the CSV file. + */ + public JPPFCsvFileConnectionStrategy() { + super(); + } + + @Override + List getConnectionInfoAsLines() { + try { + String path = JPPFConfiguration.getProperties().getString("jppf.server.connection.strategy.file"); + if ((path != null) && !(path = path.trim()).isEmpty()) { + final Reader reader = FileUtils.getFileReader(path); + if (reader != null) return FileUtils.textFileAsLines(reader); + } + } catch (final Exception e) { + log.error(e.getMessage(), e); + } + return Collections.emptyList(); + } +} diff --git a/node/src/java/org/jppf/node/connection/JPPFCsvPropertyConnectionStrategy.java b/node/src/java/org/jppf/node/connection/JPPFCsvPropertyConnectionStrategy.java new file mode 100644 index 0000000000..e4fcd28496 --- /dev/null +++ b/node/src/java/org/jppf/node/connection/JPPFCsvPropertyConnectionStrategy.java @@ -0,0 +1,85 @@ +/* + * JPPF. + * Copyright (C) 2005-2017 JPPF Team. + * http://www.jppf.org + * + * Licensed 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 + * + * http://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.jppf.node.connection; + +import java.util.*; + +import org.jppf.utils.JPPFConfiguration; +import org.slf4j.*; + +/** + * This implementation of {@link DriverConnectionStrategy} reads a list of drivers from a configuration property with the following format: + *

jppf.server.connection.strategy.definitions = secure1, host1, port1, recovery_port1 | ... | secureN, hostN, portN, recovery_portN + *

where: + *

    + *
  • each connection definition is represented as a group of comma-separated values
  • + *
  • csv groups are separated with the '|' (pipe) character
  • + *
  • in each csv group:
  • + *
      + *
    • securei is a boolean value (either 'true' or 'false', case-insenssitive) indicating whether a SSL/TLS connection should be established. + * any value that is not 'true' will be interpreted as 'false'.
    • + *
    • hosti is the host name or ip address of the driver to connect to
    • + *
    • porti is the port to connect to on the driver host
    • + *
    • recovery_porti is a valid port number for the recovery heartbeat mechanism, or a negative value to disable recovery for the node
    • + *
    + *
+ *

Additionally, any group of comma-separated values starting with a '#' (after trimming) will be considered a comment and ignored. + * This allows writing the value of the property on multiple lines, with comments, as follows: + *

jppf.server.connection.strategy.definitions = \
+ *   # definition for server 1 |\
+ *   false, my.host1.org, 11111, -1 |\
+ *   # definition for server 2 |\
+ *   true, my.host2.org, 11443, 2222
+ * 
+ *

The listed drivers will be used as if they were arrayed in a "circle", + * with the driver selection mechanism rotating one tick each time {@code nextConnectionInfo()} is invoked. + * @author Laurent Cohen + * @since 6.0 + */ +public class JPPFCsvPropertyConnectionStrategy extends AbstractCsvConnectionStrategy { + /** + * Logger for this class. + */ + private static Logger log = LoggerFactory.getLogger(JPPFCsvPropertyConnectionStrategy.class); + + /** + * Find and read the connection information. + */ + public JPPFCsvPropertyConnectionStrategy() { + super(); + } + + @Override + List getConnectionInfoAsLines() { + try { + String content = JPPFConfiguration.getProperties().getString("jppf.server.connection.strategy.definitions"); + if ((content != null) && !(content = content.trim()).isEmpty()) { + final String[] lines = content.split("\\|"); + if ((lines != null) && (lines.length > 0)) { + final List result = Arrays.asList(lines); + if (log.isDebugEnabled()) log.debug("found connection definitions in the configuration: {}", result); + return result; + } + } + } catch (final Exception e) { + log.error(e.getMessage(), e); + } + return Collections.emptyList(); + } +} diff --git a/node/src/java/org/jppf/node/connection/MyConnectionStrategy.java b/node/src/java/org/jppf/node/connection/MyConnectionStrategy.java deleted file mode 100644 index 57631e764d..0000000000 --- a/node/src/java/org/jppf/node/connection/MyConnectionStrategy.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * JPPF. - * Copyright (C) 2005-2017 JPPF Team. - * http://www.jppf.org - * - * Licensed 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 - * - * http://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.jppf.node.connection; - -import java.util.Queue; -import java.util.concurrent.LinkedBlockingQueue; - -/** - * This implementation of {@link DriverConnectionStrategy} reads a list of drivers - * from a CSV file where each line has the following format: - *

secure, host, port, recovery_port - *

where: - *

    - *
  • secure is a boolean value (either 'true' or 'false', case-insenssitive) indicating whether a SSL/TLS connection should be established. - * any value that is not 'true' will be interpreted as 'false'.
  • - *
  • host is the host name or ip address of the driver to connect to
  • - *
  • port is the port to connect to on the driver host
  • - *
  • recovery_port is a valid port number for the recovery heartbeat mechanism, or a negative value to disable recovery for the node
  • - *
- *

Additionally, any line starting with a '#' (after trimming) will be considered as a comment and ignored. - *

The file location is read from the configuration property 'jppf.node.connection.strategy.file'. - * It will first be looked up in the file system, then in the classpath if it is not found in the file system. - * If no file is found at all, the node will fall back to the {@link JPPFDefaultConnectionStrategy JPPF default strategy} and use the configuration to find the driver connection information. - *

The listed drivers will be used as if they were arrayed in a "circle", - * with the driver selection mechanism rotating one tick each time {@code nextConnectionInfo()} is invoked. - * @author Laurent Cohen - * @since 4.1 - */ -public class MyConnectionStrategy implements DriverConnectionStrategy { - /** - * The queue in which {@code DriverConnectionInfo} objects are stored. - */ - private final Queue queue = new LinkedBlockingQueue<>(); - - /** - * Initialize the set of drivers to connect to. - */ - public MyConnectionStrategy() { - queue.offer(new JPPFDriverConnectionInfo(false, "192.168.1.11", 11111, -1)); - queue.offer(new JPPFDriverConnectionInfo(false, "192.168.1.12", 11111, -1)); - queue.offer(new JPPFDriverConnectionInfo(true, "192.168.1.13", 11143, -1)); - } - - @Override - public DriverConnectionInfo nextConnectionInfo( - final DriverConnectionInfo currentInfo, final ConnectionContext context) { - if ((currentInfo != null) && - (context.getReason() == ConnectionReason.MANAGEMENT_REQUEST)) { - return currentInfo; - } - final DriverConnectionInfo info = queue.poll(); - queue.offer(info); - return info; - } -}