| /** |
| * 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 |
| * |
| * 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.apache.camel.component.splunk; |
| |
| import com.splunk.SSLSecurityProtocol; |
| import com.splunk.Service; |
| |
| import org.apache.camel.spi.Metadata; |
| import org.apache.camel.spi.UriParam; |
| import org.apache.camel.spi.UriParams; |
| import org.apache.camel.spi.UriPath; |
| import org.apache.camel.util.ObjectHelper; |
| |
| @UriParams |
| public class SplunkConfiguration { |
| |
| private SplunkConnectionFactory connectionFactory; |
| |
| @UriPath(description = "Name has no purpose") @Metadata(required = "true") |
| private String name; |
| @UriParam(defaultValue = "https") |
| private String scheme = Service.DEFAULT_SCHEME; |
| @UriParam(defaultValue = "localhost") |
| private String host = Service.DEFAULT_HOST; |
| @UriParam(defaultValue = "8089") |
| private int port = Service.DEFAULT_PORT; |
| @UriParam(enums = "TLSv1.2,TLSv1.1,TLSv1,SSLv3", defaultValue = "TLSv1.2", label = "security") |
| private SSLSecurityProtocol sslProtocol = SSLSecurityProtocol.TLSv1_2; |
| @UriParam |
| private String app; |
| @UriParam |
| private String owner; |
| @UriParam(label = "security", secret = true) |
| private String username; |
| @UriParam(label = "security", secret = true) |
| private String password; |
| @UriParam(defaultValue = "5000") |
| private int connectionTimeout = 5000; |
| @UriParam(label = "security") |
| private boolean useSunHttpsHandler; |
| |
| @UriParam(label = "producer") |
| private String index; |
| @UriParam(label = "producer") |
| private String sourceType; |
| @UriParam(label = "producer") |
| private String source; |
| @UriParam(label = "producer") |
| private String eventHost; |
| @UriParam(label = "producer") |
| private int tcpReceiverPort; |
| @UriParam(label = "producer", defaultValue = "false") |
| private boolean raw; |
| |
| @UriParam(label = "consumer") |
| private int count; |
| @UriParam(label = "consumer") |
| private String search; |
| @UriParam(label = "consumer") |
| private String savedSearch; |
| @UriParam(label = "consumer") |
| private String earliestTime; |
| @UriParam(label = "consumer") |
| private String latestTime; |
| @UriParam(label = "consumer") |
| private String initEarliestTime; |
| @UriParam(label = "consumer") |
| private Boolean streaming; |
| |
| public String getName() { |
| return name; |
| } |
| |
| public void setName(String name) { |
| this.name = name; |
| } |
| |
| public String getInitEarliestTime() { |
| return initEarliestTime; |
| } |
| |
| /** |
| * Initial start offset of the first search |
| */ |
| public void setInitEarliestTime(String initEarliestTime) { |
| this.initEarliestTime = initEarliestTime; |
| } |
| |
| public int getCount() { |
| return count; |
| } |
| |
| /** |
| * A number that indicates the maximum number of entities to return. |
| */ |
| public void setCount(int count) { |
| this.count = count; |
| } |
| |
| public String getSearch() { |
| return search; |
| } |
| |
| /** |
| * The Splunk query to run |
| */ |
| public void setSearch(String search) { |
| this.search = search; |
| } |
| |
| public String getEarliestTime() { |
| return earliestTime; |
| } |
| |
| /** |
| * Earliest time of the search time window. |
| */ |
| public void setEarliestTime(String earliestTime) { |
| this.earliestTime = earliestTime; |
| } |
| |
| public String getLatestTime() { |
| return latestTime; |
| } |
| |
| /** |
| * Latest time of the search time window. |
| */ |
| public void setLatestTime(String latestTime) { |
| this.latestTime = latestTime; |
| } |
| |
| public int getTcpReceiverPort() { |
| return tcpReceiverPort; |
| } |
| |
| /** |
| * Splunk tcp receiver port |
| */ |
| public void setTcpReceiverPort(int tcpReceiverPort) { |
| this.tcpReceiverPort = tcpReceiverPort; |
| } |
| |
| public boolean isRaw() { |
| return raw; |
| } |
| |
| /** |
| * Should the payload be inserted raw |
| */ |
| public void setRaw(boolean raw) { |
| this.raw = raw; |
| } |
| |
| public String getSourceType() { |
| return sourceType; |
| } |
| |
| /** |
| * Splunk sourcetype argument |
| */ |
| public void setSourceType(String sourceType) { |
| this.sourceType = sourceType; |
| } |
| |
| public String getSource() { |
| return source; |
| } |
| |
| /** |
| * Splunk source argument |
| */ |
| public void setSource(String source) { |
| this.source = source; |
| } |
| |
| public String getEventHost() { |
| return eventHost; |
| } |
| |
| /** |
| * Override the default Splunk event host field |
| */ |
| public void setEventHost(String eventHost) { |
| this.eventHost = eventHost; |
| } |
| |
| /** |
| * Splunk index to write to |
| */ |
| public void setIndex(String index) { |
| this.index = index; |
| } |
| |
| public String getIndex() { |
| return index; |
| } |
| |
| public String getHost() { |
| return host; |
| } |
| |
| /** |
| * Splunk host. |
| */ |
| public void setHost(String host) { |
| this.host = host; |
| } |
| |
| public int getPort() { |
| return port; |
| } |
| |
| /** |
| * Splunk port |
| */ |
| public void setPort(int port) { |
| this.port = port; |
| } |
| |
| public SSLSecurityProtocol getSslProtocol() { |
| return sslProtocol; |
| } |
| |
| /** |
| * Set the ssl protocol to use |
| * |
| * @param sslProtocol |
| */ |
| public void setSslProtocol(SSLSecurityProtocol sslProtocol) { |
| this.sslProtocol = sslProtocol; |
| } |
| |
| public String getScheme() { |
| return scheme; |
| } |
| |
| /** |
| * Splunk scheme |
| */ |
| public void setScheme(String scheme) { |
| this.scheme = scheme; |
| } |
| |
| public String getApp() { |
| return app; |
| } |
| |
| /** |
| * Splunk app |
| */ |
| public void setApp(String app) { |
| this.app = app; |
| } |
| |
| public String getOwner() { |
| return owner; |
| } |
| |
| /** |
| * Splunk owner |
| */ |
| public void setOwner(String owner) { |
| this.owner = owner; |
| } |
| |
| public String getUsername() { |
| return username; |
| } |
| |
| /** |
| * Username for Splunk |
| */ |
| public void setUsername(String username) { |
| this.username = username; |
| } |
| |
| public String getPassword() { |
| return password; |
| } |
| |
| /** |
| * Password for Splunk |
| */ |
| public void setPassword(String password) { |
| this.password = password; |
| } |
| |
| public boolean isStreaming() { |
| return streaming != null ? streaming : false; |
| } |
| |
| /** |
| * Sets streaming mode. |
| * <p> |
| * Streaming mode sends exchanges as they are received, rather than in a batch. |
| */ |
| public void setStreaming(boolean streaming) { |
| this.streaming = streaming; |
| } |
| |
| public int getConnectionTimeout() { |
| return connectionTimeout; |
| } |
| |
| /** |
| * Timeout in MS when connecting to Splunk server |
| */ |
| public void setConnectionTimeout(int timeout) { |
| this.connectionTimeout = timeout; |
| } |
| |
| public boolean isUseSunHttpsHandler() { |
| return useSunHttpsHandler; |
| } |
| |
| /** |
| * Use sun.net.www.protocol.https.Handler Https handler to establish the Splunk Connection. |
| * Can be useful when running in application servers to avoid app. server https handling. |
| */ |
| public void setUseSunHttpsHandler(boolean useSunHttpsHandler) { |
| this.useSunHttpsHandler = useSunHttpsHandler; |
| } |
| |
| public String getSavedSearch() { |
| return this.savedSearch; |
| } |
| |
| /** |
| * The name of the query saved in Splunk to run |
| */ |
| public void setSavedSearch(String savedSearch) { |
| this.savedSearch = savedSearch; |
| } |
| |
| public SplunkConnectionFactory getConnectionFactory() { |
| return connectionFactory != null ? connectionFactory : createDefaultConnectionFactory(); |
| } |
| |
| /** |
| * Splunk connection factory. |
| */ |
| public void setConnectionFactory(SplunkConnectionFactory connectionFactory) { |
| this.connectionFactory = connectionFactory; |
| } |
| |
| private SplunkConnectionFactory createDefaultConnectionFactory() { |
| SplunkConnectionFactory splunkConnectionFactory; |
| if (ObjectHelper.isNotEmpty(getHost()) && getPort() > 0) { |
| splunkConnectionFactory = new SplunkConnectionFactory(getHost(), getPort(), getUsername(), getPassword()); |
| } else { |
| splunkConnectionFactory = new SplunkConnectionFactory(getUsername(), getPassword()); |
| } |
| splunkConnectionFactory.setApp(getApp()); |
| splunkConnectionFactory.setConnectionTimeout(getConnectionTimeout()); |
| splunkConnectionFactory.setScheme(getScheme()); |
| splunkConnectionFactory.setUseSunHttpsHandler(isUseSunHttpsHandler()); |
| splunkConnectionFactory.setSslProtocol(getSslProtocol()); |
| return splunkConnectionFactory; |
| } |
| |
| } |