You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/11/26 11:32:40 UTC
[camel] branch main updated: camel-splunk-hec - Add endpoint url suffix configuration to enable options and raw transports (#8774)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new f0a7bf34258 camel-splunk-hec - Add endpoint url suffix configuration to enable options and raw transports (#8774)
f0a7bf34258 is described below
commit f0a7bf34258740d1cf66af9efbc9c78f86fa0024
Author: Martin Kremers <in...@martinkremers.de>
AuthorDate: Sat Nov 26 12:32:32 2022 +0100
camel-splunk-hec - Add endpoint url suffix configuration to enable options and raw transports (#8774)
Signed-off-by: Martin Kremers <in...@martinkremers.de>
---
.../splunkhec/SplunkHECEndpointConfigurer.java | 6 ++++++
.../splunkhec/SplunkHECEndpointUriFactory.java | 3 ++-
.../camel/component/splunkhec/splunk-hec.json | 1 +
.../splunkhec/SplunkHECConfiguration.java | 24 ++++++++++++++++++++++
.../component/splunkhec/SplunkHECProducer.java | 4 ++--
.../splunkhec/SplunkHECConfigurationTest.java | 6 ++++++
6 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointConfigurer.java b/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointConfigurer.java
index 24bfee9ad62..b87621b0bff 100644
--- a/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointConfigurer.java
+++ b/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointConfigurer.java
@@ -35,6 +35,8 @@ public class SplunkHECEndpointConfigurer extends PropertyConfigurerSupport imple
case "source": target.getConfiguration().setSource(property(camelContext, java.lang.String.class, value)); return true;
case "sourcetype":
case "sourceType": target.getConfiguration().setSourceType(property(camelContext, java.lang.String.class, value)); return true;
+ case "splunkendpoint":
+ case "splunkEndpoint": target.getConfiguration().setSplunkEndpoint(property(camelContext, java.lang.String.class, value)); return true;
case "time": target.getConfiguration().setTime(property(camelContext, java.lang.Long.class, value)); return true;
default: return false;
}
@@ -57,6 +59,8 @@ public class SplunkHECEndpointConfigurer extends PropertyConfigurerSupport imple
case "source": return java.lang.String.class;
case "sourcetype":
case "sourceType": return java.lang.String.class;
+ case "splunkendpoint":
+ case "splunkEndpoint": return java.lang.String.class;
case "time": return java.lang.Long.class;
default: return null;
}
@@ -80,6 +84,8 @@ public class SplunkHECEndpointConfigurer extends PropertyConfigurerSupport imple
case "source": return target.getConfiguration().getSource();
case "sourcetype":
case "sourceType": return target.getConfiguration().getSourceType();
+ case "splunkendpoint":
+ case "splunkEndpoint": return target.getConfiguration().getSplunkEndpoint();
case "time": return target.getConfiguration().getTime();
default: return null;
}
diff --git a/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointUriFactory.java b/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointUriFactory.java
index 6f56ca456b4..071689b1ac5 100644
--- a/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointUriFactory.java
+++ b/components/camel-splunk-hec/src/generated/java/org/apache/camel/component/splunkhec/SplunkHECEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class SplunkHECEndpointUriFactory extends org.apache.camel.support.compon
private static final Set<String> SECRET_PROPERTY_NAMES;
private static final Set<String> MULTI_VALUE_PREFIXES;
static {
- Set<String> props = new HashSet<>(12);
+ Set<String> props = new HashSet<>(13);
props.add("bodyOnly");
props.add("headersOnly");
props.add("host");
@@ -31,6 +31,7 @@ public class SplunkHECEndpointUriFactory extends org.apache.camel.support.compon
props.add("skipTlsVerify");
props.add("source");
props.add("sourceType");
+ props.add("splunkEndpoint");
props.add("splunkURL");
props.add("time");
props.add("token");
diff --git a/components/camel-splunk-hec/src/generated/resources/org/apache/camel/component/splunkhec/splunk-hec.json b/components/camel-splunk-hec/src/generated/resources/org/apache/camel/component/splunkhec/splunk-hec.json
index acb073ed6c7..5ff292cb02e 100644
--- a/components/camel-splunk-hec/src/generated/resources/org/apache/camel/component/splunkhec/splunk-hec.json
+++ b/components/camel-splunk-hec/src/generated/resources/org/apache/camel/component/splunkhec/splunk-hec.json
@@ -37,6 +37,7 @@
"index": { "kind": "parameter", "displayName": "Index", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel", "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Splunk index to write to" },
"source": { "kind": "parameter", "displayName": "Source", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel", "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Splunk source argument" },
"sourceType": { "kind": "parameter", "displayName": "Source Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel", "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Splunk sourcetype argument" },
+ "splunkEndpoint": { "kind": "parameter", "displayName": "Splunk Endpoint", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/services\/collector\/event", "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Splunk endpoint Defaults to \/services\/collector\/event To writ [...]
"time": { "kind": "parameter", "displayName": "Time", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Time this even occurred. By default, the time will be when this event hits the splunk server." },
"lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may other [...]
"https": { "kind": "parameter", "displayName": "Https", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.splunkhec.SplunkHECConfiguration", "configurationField": "configuration", "description": "Contact HEC over https." },
diff --git a/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECConfiguration.java b/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECConfiguration.java
index 078d003f0d0..6d1695ce67b 100644
--- a/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECConfiguration.java
+++ b/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECConfiguration.java
@@ -36,6 +36,8 @@ public class SplunkHECConfiguration {
private String source = "camel";
@UriParam
private String host;
+ @UriParam(defaultValue = "/services/collector/event")
+ private String splunkEndpoint = "/services/collector/event";
@UriParam(label = "security")
private boolean skipTlsVerify;
@UriParam(label = "security", defaultValue = "true")
@@ -99,6 +101,26 @@ public class SplunkHECConfiguration {
this.host = host;
}
+ /**
+ * Splunk endpoint
+ * Defaults to /services/collector/event
+ * To write RAW data like JSON use /services/collector/raw
+ * For a list of all endpoints refer to splunk documentation (HTTP Event Collector REST API endpoints)
+ * Example for Spunk 8.2.x: https://docs.splunk.com/Documentation/SplunkCloud/8.2.2203/Data/HECRESTendpoints
+ *
+ * To extract timestamps in Splunk>8.0 /services/collector/event?auto_extract_timestamp=true
+ * Remember to utilize RAW{} for questionmarks or slashes in parameters, see:
+ * https://camel.apache.org/manual/faq/how-do-i-configure-endpoints.html
+ * #HowdoIconfigureendpoints-Configuringparametervaluesusingrawvalues
+ */
+ public void setSplunkEndpoint(String splunkEndpoint) {
+ this.splunkEndpoint = splunkEndpoint;
+ }
+
+ public String getSplunkEndpoint() {
+ return this.splunkEndpoint;
+ }
+
public boolean isSkipTlsVerify() {
return skipTlsVerify;
}
@@ -153,4 +175,6 @@ public class SplunkHECConfiguration {
public void setTime(Long time) {
this.time = time;
}
+
+
}
diff --git a/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECProducer.java b/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECProducer.java
index ec2cf813760..e1c5314ad04 100644
--- a/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECProducer.java
+++ b/components/camel-splunk-hec/src/main/java/org/apache/camel/component/splunkhec/SplunkHECProducer.java
@@ -72,8 +72,8 @@ public class SplunkHECProducer extends DefaultProducer {
Map<String, Object> payload = createPayload(exchange.getIn());
HttpPost httppost = new HttpPost(
- (endpoint.getConfiguration().isHttps() ? "https" : "http") + "://" + endpoint.getSplunkURL()
- + "/services/collector/event");
+ (endpoint.getConfiguration().isHttps() ? "https" : "http") + "://"
+ + endpoint.getSplunkURL() + endpoint.getConfiguration().getSplunkEndpoint());
httppost.addHeader("Authorization", " Splunk " + endpoint.getToken());
EntityTemplate entityTemplate = new EntityTemplate(outputStream -> MAPPER.writer().writeValue(outputStream, payload));
diff --git a/components/camel-splunk-hec/src/test/java/org/apache/camel/component/splunkhec/SplunkHECConfigurationTest.java b/components/camel-splunk-hec/src/test/java/org/apache/camel/component/splunkhec/SplunkHECConfigurationTest.java
index c377994072b..fa8306e94e6 100644
--- a/components/camel-splunk-hec/src/test/java/org/apache/camel/component/splunkhec/SplunkHECConfigurationTest.java
+++ b/components/camel-splunk-hec/src/test/java/org/apache/camel/component/splunkhec/SplunkHECConfigurationTest.java
@@ -36,6 +36,12 @@ public class SplunkHECConfigurationTest {
assertEquals("mine", config.getHost());
}
+ @Test
+ public void testDefaultEndpoint() {
+ SplunkHECConfiguration config = new SplunkHECConfiguration();
+ assertEquals("/services/collector/event", config.getSplunkEndpoint());
+ }
+
@Test
public void testDefaultIndex() {
SplunkHECConfiguration config = new SplunkHECConfiguration();