Github user mattyb149 commented on a diff in the pull request:
https://github.com/apache/nifi/pull/576#discussion_r69318800
--- Diff:
nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchProcessor.java
---
@@ -17,129 +17,25 @@
package org.apache.nifi.processors.elasticsearch;
import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.components.ValidationContext;
-import org.apache.nifi.components.ValidationResult;
-import org.apache.nifi.components.Validator;
-import org.apache.nifi.logging.ComponentLog;
import org.apache.nifi.processor.AbstractProcessor;
import org.apache.nifi.processor.ProcessContext;
import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.processor.util.StandardValidators;
import org.apache.nifi.ssl.SSLContextService;
-import org.apache.nifi.util.StringUtils;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.client.transport.TransportClient;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.transport.InetSocketTransportAddress;
-
-import java.io.File;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.InetSocketAddress;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
-
+/**
+ * A base class for all Elasticsearch processors
+ */
public abstract class AbstractElasticsearchProcessor extends
AbstractProcessor {
- /**
- * This validator ensures the Elasticsearch hosts property is a valid
list of hostname:port entries
- */
- private static final Validator HOSTNAME_PORT_VALIDATOR = new
Validator() {
- @Override
- public ValidationResult validate(final String subject, final
String input, final ValidationContext context) {
- final List<String> esList = Arrays.asList(input.split(","));
- for (String hostnamePort : esList) {
- String[] addresses = hostnamePort.split(":");
- // Protect against invalid input like
http://127.0.0.1:9300 (URL scheme should not be there)
- if (addresses.length != 2) {
- return new
ValidationResult.Builder().subject(subject).input(input).explanation(
- "Must be in hostname:port form (no scheme such
as http://").valid(false).build();
- }
- }
- return new
ValidationResult.Builder().subject(subject).input(input).explanation(
- "Valid cluster definition").valid(true).build();
- }
- };
-
- protected static final PropertyDescriptor CLUSTER_NAME = new
PropertyDescriptor.Builder()
- .name("Cluster Name")
- .description("Name of the ES cluster (for example,
elasticsearch_brew). Defaults to 'elasticsearch'")
- .required(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .defaultValue("elasticsearch")
- .build();
-
- protected static final PropertyDescriptor HOSTS = new
PropertyDescriptor.Builder()
- .name("ElasticSearch Hosts")
- .description("ElasticSearch Hosts, which should be comma
separated and colon for hostname/port "
- + "host1:port,host2:port,.... For example
testcluster:9300.")
- .required(true)
- .expressionLanguageSupported(false)
- .addValidator(HOSTNAME_PORT_VALIDATOR)
- .build();
-
public static final PropertyDescriptor PROP_SSL_CONTEXT_SERVICE = new
PropertyDescriptor.Builder()
.name("SSL Context Service")
.description("The SSL Context Service used to provide client
certificate information for TLS/SSL "
- + "connections. This service only applies if the
Shield plugin is available.")
+ + "connections. This service only applies if the
Elasticsearch endpoints have been protected by SSLShield plugin is available.")
--- End diff --
I've already changed that locally but didn't push since I knew there'd be
more comments forthcoming :)
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---