Skip to content

Commit a89d8a2

Browse files
author
Vihas Splunk
committed
Merge branch 'develop' into prep-2.2.0
2 parents 379c223 + 4cf0e85 commit a89d8a2

File tree

2 files changed

+51
-7
lines changed

2 files changed

+51
-7
lines changed

src/main/java/com/splunk/hecclient/HecURIBuilder.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.splunk.hecclient;
22

3+
import org.apache.http.Consts;
34
import org.apache.http.client.utils.URIBuilder;
5+
import org.apache.http.client.utils.URLEncodedUtils;
46

57
import java.net.URI;
68
import java.net.URISyntaxException;
@@ -18,9 +20,18 @@ public HecURIBuilder(String baseUrl, HecConfig hecConfig) {
1820

1921
public URI getURI(String endpoint) {
2022
try {
21-
URIBuilder uriBuilder = new URIBuilder(baseUrl)
22-
.setPath(endpoint);
23-
23+
URIBuilder uriBuilder = new URIBuilder(baseUrl);
24+
int idx = endpoint.indexOf('?');
25+
if (idx == -1) {
26+
// json endpoint
27+
uriBuilder = uriBuilder.setPath(endpoint);
28+
} else {
29+
// in case of raw endpoint, the endpoint will be in form "/services/collector/raw?index=xxx&source=xxx"
30+
// extract the path and params via a split on '?'
31+
uriBuilder = uriBuilder.setPath(endpoint.substring(0, idx));
32+
uriBuilder = uriBuilder.setParameters(URLEncodedUtils.parse(endpoint.substring(idx+1), Consts.UTF_8));
33+
}
34+
2435
if (hecConfig.getAutoExtractTimestamp() != null) {
2536
uriBuilder.addParameter(AUTO_EXTRACT_TIMESTAMP_PARAMETER, hecConfig.getAutoExtractTimestamp().toString());
2637
}

src/test/java/com/splunk/hecclient/HecURIBuilderTest.java

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,28 @@
99
import static com.splunk.hecclient.JsonEventBatch.ENDPOINT;
1010

1111
public class HecURIBuilderTest {
12+
private static final String RAW_ENDPOINT = "/services/collector/raw?index=main&source=source";
1213
private static final String BASE_URL = "https://localhost:8088";
1314
private static final String TOKEN = "mytoken";
1415

1516
@Test
1617
public void testDefaultValues() {
17-
HecConfig hecConfig = new HecConfig(Collections.emptyList(), TOKEN);
18-
HecURIBuilder builder = new HecURIBuilder(BASE_URL, hecConfig);
18+
{
19+
HecConfig hecConfig = new HecConfig(Collections.emptyList(), TOKEN);
20+
HecURIBuilder builder = new HecURIBuilder(BASE_URL, hecConfig);
21+
22+
URI uri = builder.getURI(ENDPOINT);
23+
24+
Assert.assertEquals("https://localhost:8088/services/collector/event", uri.toString());
25+
}
26+
{
27+
HecConfig hecConfig = new HecConfig(Collections.emptyList(), TOKEN);
28+
HecURIBuilder builder = new HecURIBuilder(BASE_URL, hecConfig);
1929

20-
URI uri = builder.getURI(ENDPOINT);
30+
URI uri = builder.getURI(RAW_ENDPOINT);
2131

22-
Assert.assertEquals("https://localhost:8088/services/collector/event", uri.toString());
32+
Assert.assertEquals("https://localhost:8088/services/collector/raw?index=main&source=source", uri.toString());
33+
}
2334
}
2435

2536
@Test
@@ -46,5 +57,27 @@ public void testAutoExtractTimestamp() {
4657
HecURIBuilder.AUTO_EXTRACT_TIMESTAMP_PARAMETER + "=false",
4758
uri.toString());
4859
}
60+
{
61+
HecConfig hecConfig = new HecConfig(Collections.emptyList(), TOKEN)
62+
.setAutoExtractTimestamp(false);
63+
HecURIBuilder builder = new HecURIBuilder(BASE_URL, hecConfig);
64+
65+
URI uri = builder.getURI(RAW_ENDPOINT);
66+
67+
Assert.assertEquals("https://localhost:8088/services/collector/raw?index=main&source=source&" +
68+
HecURIBuilder.AUTO_EXTRACT_TIMESTAMP_PARAMETER + "=false",
69+
uri.toString());
70+
}
71+
{
72+
HecConfig hecConfig = new HecConfig(Collections.emptyList(), TOKEN)
73+
.setAutoExtractTimestamp(true);
74+
HecURIBuilder builder = new HecURIBuilder(BASE_URL, hecConfig);
75+
76+
URI uri = builder.getURI(RAW_ENDPOINT);
77+
78+
Assert.assertEquals("https://localhost:8088/services/collector/raw?index=main&source=source&" +
79+
HecURIBuilder.AUTO_EXTRACT_TIMESTAMP_PARAMETER + "=true",
80+
uri.toString());
81+
}
4982
}
5083
}

0 commit comments

Comments
 (0)