[
https://issues.apache.org/jira/browse/NIFI-2068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359038#comment-15359038
]
ASF GitHub Bot commented on NIFI-2068:
--------------------------------------
Github user JPercivall commented on a diff in the pull request:
https://github.com/apache/nifi/pull/576#discussion_r69307262
--- 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 --
This sentence doesn't really make sense to me, specifically the "plugin is
available" part
> Add Elasticsearch processors that use the REST API
> --------------------------------------------------
>
> Key: NIFI-2068
> URL: https://issues.apache.org/jira/browse/NIFI-2068
> Project: Apache NiFi
> Issue Type: Improvement
> Reporter: Matt Burgess
> Assignee: Matt Burgess
> Fix For: 1.0.0
>
>
> The current Elasticsearch processors use the Transport Client, and as a
> result there can be some compatibility issues between multiple versions of ES
> clusters. The REST API is much more standard between versions, so it would be
> nice to have ES processors that use the REST API, to enable things like
> migration from an Elasticsearch cluster with an older version to a cluster
> with a newer version.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)