From 5dbfe003ab7581ce0f6569a55573abc6f0f39feb Mon Sep 17 00:00:00 2001 From: CherfaElyes Date: Thu, 8 Feb 2024 16:12:13 +0100 Subject: [PATCH 1/2] Issue #15: Manage url and path in the HTTP Criterion parser * Updated HttpCriterion class to add getPath() method that retrieves path field value * Updated CriterionSinkProduceVisitor to manage different url usecases --- .../criteria/CriterionSinkProduceVisitor.java | 22 ++++++++++++++++++- .../model/criteria/HttpCriterion.java | 9 ++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java index 72009b0..95e19d5 100644 --- a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java +++ b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java @@ -70,11 +70,31 @@ public void visit(HttpCriterion httpCriterion) { sink.text(" below to the managed host succeeds:"); sink.list(); sink.listItem(); + // Retrieve URL and Path Fields values + String urlField = httpCriterion.getUrl(); + String pathField = httpCriterion.getPath(); + // Initialize the final URL value + String url = ""; + // If both URL and Path fields aren't null, concatenate them + if(urlField != null && pathField != null) { + String.format( + "%s%s%s", + urlField, + urlField.endsWith("/") || pathField.startsWith("/") ? "" : "/", + urlField.endsWith("/") && pathField.startsWith("/") ? pathField.substring(1) : pathField + ); + // if Only URL field value is found, use it + } else if (urlField != null) { + url = urlField; + // if Only Path field value is found, use it + } else if (pathField != null) { + url = pathField; + } sink.rawText( String.format( "%s %s", httpCriterion.getMethodOrDefault("GET"), - SinkHelper.replaceWithHtmlCode(httpCriterion.getUrl()) + SinkHelper.replaceWithHtmlCode(url) ) ); sink.listItem_(); diff --git a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java index 9d9bf71..fb90f18 100644 --- a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java +++ b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java @@ -65,6 +65,15 @@ public String getMethodOrDefault(final String defaultValue) { public String getUrl() { return nonNullTextOrDefault(criterion.get("url"), null); } + + /** + * Gets the Path from the criterion, or {@code null} if not present. + * + * @return The Path from the criterion, or {@code null} if not present. + */ + public String getPath() { + return nonNullTextOrDefault(criterion.get("path"), null); + } /** * Gets the header from the criterion, or {@code null} if not present. From 4a2c2b03519ead69179668cd486bde5b8699d804 Mon Sep 17 00:00:00 2001 From: CherfaElyes Date: Thu, 8 Feb 2024 16:44:41 +0100 Subject: [PATCH 2/2] Issue #15: Manage url and path in the HTTP Criterion parser * Reformat the code using prettier --- .../model/criteria/CriterionSinkProduceVisitor.java | 8 ++++---- .../connector/producer/model/criteria/HttpCriterion.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java index 95e19d5..fafac01 100644 --- a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java +++ b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/CriterionSinkProduceVisitor.java @@ -76,17 +76,17 @@ public void visit(HttpCriterion httpCriterion) { // Initialize the final URL value String url = ""; // If both URL and Path fields aren't null, concatenate them - if(urlField != null && pathField != null) { + if (urlField != null && pathField != null) { String.format( "%s%s%s", urlField, urlField.endsWith("/") || pathField.startsWith("/") ? "" : "/", urlField.endsWith("/") && pathField.startsWith("/") ? pathField.substring(1) : pathField - ); - // if Only URL field value is found, use it + ); + // if Only URL field value is found, use it } else if (urlField != null) { url = urlField; - // if Only Path field value is found, use it + // if Only Path field value is found, use it } else if (pathField != null) { url = pathField; } diff --git a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java index fb90f18..acbb0d1 100644 --- a/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java +++ b/src/main/java/org/sentrysoftware/maven/metricshub/connector/producer/model/criteria/HttpCriterion.java @@ -65,7 +65,7 @@ public String getMethodOrDefault(final String defaultValue) { public String getUrl() { return nonNullTextOrDefault(criterion.get("url"), null); } - + /** * Gets the Path from the criterion, or {@code null} if not present. *