diff --git a/java-lib/pom.xml b/java-lib/pom.xml index 2c875d1..3e5abbd 100644 --- a/java-lib/pom.xml +++ b/java-lib/pom.xml @@ -3,12 +3,12 @@ 4.0.0 java-lib - 2022-10.2-SNAPSHOT + proxy-new-SNAPSHOT com.wavefront javalib - 2022-10.2-SNAPSHOT + proxy-new-SNAPSHOT Wavefront Shared Java Library @@ -117,11 +117,11 @@ test 4.0.1 - - javax.ws.rs - javax.ws.rs-api - 2.1.1 - + + javax.ws.rs + javax.ws.rs-api + 2.1.1 + @@ -250,4 +250,4 @@ - + \ No newline at end of file diff --git a/java-lib/src/main/java/com/wavefront/api/EventAPI.java b/java-lib/src/main/java/com/wavefront/api/EventAPI.java index e74f981..a6feffa 100644 --- a/java-lib/src/main/java/com/wavefront/api/EventAPI.java +++ b/java-lib/src/main/java/com/wavefront/api/EventAPI.java @@ -2,10 +2,7 @@ import com.wavefront.dto.Event; -import javax.ws.rs.Consumes; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; @@ -25,4 +22,11 @@ public interface EventAPI { @Path("v2/wfproxy/event") Response proxyEvents(@HeaderParam("X-WF-PROXY-ID") final UUID proxyId, final List eventBatch); + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("v2/wfproxy/event") + Response proxyEventsString(@HeaderParam("X-WF-PROXY-ID") final UUID proxyId, + final String eventBatch); } diff --git a/java-lib/src/main/java/com/wavefront/api/LogAPI.java b/java-lib/src/main/java/com/wavefront/api/LogAPI.java index ae44f95..2dbe03b 100644 --- a/java-lib/src/main/java/com/wavefront/api/LogAPI.java +++ b/java-lib/src/main/java/com/wavefront/api/LogAPI.java @@ -2,10 +2,7 @@ import com.wavefront.dto.Log; -import javax.ws.rs.Consumes; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.List; @@ -23,4 +20,10 @@ public interface LogAPI { @Consumes(MediaType.APPLICATION_JSON) @Path("le-mans/v1/streams/ingestion-pipeline-stream") Response proxyLogs(@HeaderParam("agent") final String agentProxyId, final List logBatch); + + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.TEXT_PLAIN) + @Path("le-mans/v1/streams/ingestion-pipeline-stream") + Response proxyLogsStr(@HeaderParam("agent") final String agentProxyId, final String logBatch); } diff --git a/java-lib/src/main/java/com/wavefront/metrics/JsonMetricsGenerator.java b/java-lib/src/main/java/com/wavefront/metrics/JsonMetricsGenerator.java index c538296..d572c0c 100644 --- a/java-lib/src/main/java/com/wavefront/metrics/JsonMetricsGenerator.java +++ b/java-lib/src/main/java/com/wavefront/metrics/JsonMetricsGenerator.java @@ -38,8 +38,11 @@ import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.SortedMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Nullable; +import javax.annotation.RegEx; import static com.wavefront.common.MetricsToTimeseries.sanitize; @@ -146,24 +149,19 @@ private static void writeBuildMetrics(ResourceBundle props, JsonGenerator json, } static int extractVersion(String versionStr) { - int version = 0; - String[] components = versionStr.split("\\."); - for (int i = 0; i < Math.min(3, components.length); i++) { - String component = components[i]; - if (StringUtils.isNotBlank(component) && StringUtils.isNumeric(component)) { - version *= 1000; // we'll assume this will fit. 3.123.0 will become 3123000. - version += Integer.valueOf(component); - } else { - version = 0; // not actually a convertable name (probably something with SNAPSHOT). - break; + final String regex = "^(\\d*)\\.(\\d*)\\.?(\\d*)?"; + final Pattern pattern = Pattern.compile(regex); + final Matcher matcher = pattern.matcher(versionStr); + + int x = 0, y = 0, z = 0; + if (matcher.find()) { + x = Integer.valueOf(matcher.group(1)); + y = Integer.valueOf(matcher.group(2)); + if (!matcher.group(3).equals("")) { + z = Integer.valueOf(matcher.group(3)); } } - if (components.length == 2) { - version *= 1000; - } else if (components.length == 1) { - version *= 1000000; // make sure 3 outputs 3000000 - } - return version; + return (x * 1_000_000 + y * 1_000 + z); } private static void mergeMapIntoJson(JsonGenerator jsonGenerator, Map metrics) throws IOException { diff --git a/java-lib/src/test/java/com/wavefront/metrics/JsonMetricsGeneratorTest.java b/java-lib/src/test/java/com/wavefront/metrics/JsonMetricsGeneratorTest.java index d01d50a..b83f2f6 100644 --- a/java-lib/src/test/java/com/wavefront/metrics/JsonMetricsGeneratorTest.java +++ b/java-lib/src/test/java/com/wavefront/metrics/JsonMetricsGeneratorTest.java @@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicLong; import static com.google.common.truth.Truth.assertThat; +import static com.wavefront.metrics.JsonMetricsGenerator.extractVersion; /** * Basic unit tests around {@link JsonMetricsGenerator} @@ -278,4 +279,15 @@ public void testWavefrontHistogramBulkUpdateHandlesNullParams() throws IOExcepti assertThat(json).isEqualTo("{\"test.metric\":{\"bins\":[]}}"); } + + @Test + public void testExtractVersion(){ + assertThat(extractVersion("12.1")).isEqualTo(12_001_000); + assertThat(extractVersion("12.1.0")).isEqualTo(12_001_000); + assertThat(extractVersion("12.1.1")).isEqualTo(12_001_001); + assertThat(extractVersion("12.1-SNAPSHOT")).isEqualTo(12_001_000); + assertThat(extractVersion("12.1.0-SNAPSHOT")).isEqualTo(12_001_000); + assertThat(extractVersion("12")).isEqualTo(0); + assertThat(extractVersion("SNAPSHOT")).isEqualTo(0); + } } diff --git a/pom.xml b/pom.xml index c6e013c..3f16538 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.wavefront javalib - 2022-10.2-SNAPSHOT + proxy-new-SNAPSHOT java-lib yammer-metrics @@ -378,4 +378,4 @@ - + \ No newline at end of file diff --git a/yammer-metrics/pom.xml b/yammer-metrics/pom.xml index c9efda4..4d3f3ce 100644 --- a/yammer-metrics/pom.xml +++ b/yammer-metrics/pom.xml @@ -3,12 +3,12 @@ javalib com.wavefront - 2022-10.2-SNAPSHOT + proxy-new-SNAPSHOT 4.0.0 yammer-metrics - 2022-10.2-SNAPSHOT + proxy-new-SNAPSHOT Wavefront Yammer Metrics @@ -94,4 +94,4 @@ - + \ No newline at end of file