You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dj...@apache.org on 2022/01/05 19:04:23 UTC
[camel] branch camel-3.7.x updated: CAMEL-17433 fix JavadocHelper
This is an automated email from the ASF dual-hosted git repository.
djencks pushed a commit to branch camel-3.7.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.7.x by this push:
new dbd7f19 CAMEL-17433 fix JavadocHelper
dbd7f19 is described below
commit dbd7f19f4c7c6cfc91fdf50392f06cd14bc6ea7a
Author: David Jencks <dj...@apache.org>
AuthorDate: Tue Jan 4 14:45:32 2022 -0800
CAMEL-17433 fix JavadocHelper
---
.../apache/camel/tooling/util/JavadocHelper.java | 9 +++---
.../camel/tooling/util/JavadocHelperTest.java | 36 ++++++++++++++++++++++
2 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java
index 9a89dcf..e940559 100644
--- a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java
+++ b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/JavadocHelper.java
@@ -20,7 +20,7 @@ import static org.apache.camel.tooling.util.Strings.isNullOrEmpty;
public final class JavadocHelper {
- private static final String VALID_CHARS = ".,-='/\\!&%():;#${}";
+ private static final String VALID_CHARS = ".,-='/\\!&%():;#${}<>";
private JavadocHelper() {
}
@@ -87,8 +87,9 @@ public final class JavadocHelper {
}
String s = sb.toString();
- // remove all XML tags
- s = s.replaceAll("<.*?>", "");
+ // remove all XML tags. This isn't complete but likely to find anything actually used.
+ s = s.replaceAll("<(\\w|:|_)(\\w|:|_|-|\\.|\\d)*\\s.*/?>", "");
+ s = s.replaceAll("</(\\w|:|_)(\\w|:|_|-|\\.|\\d)*\\s*>", "");
// remove {@link inlined javadoc links which is special handled
s = s.replaceAll("\\{@link\\s\\w+\\s(\\w+)}", "$1");
s = s.replaceAll("\\{@link\\s([\\w]+)}", "$1");
@@ -130,7 +131,7 @@ public final class JavadocHelper {
return "";
}
// must replace amp first, so we dont replace < to amp later
- text = text.replace("&", "&");
+ text = text.replaceAll("&(?!(amp;)|(lt;)|(gt;)|(quot;))", "&");
text = text.replace("\"", """);
text = text.replace("<", "<");
text = text.replace(">", ">");
diff --git a/tooling/camel-tooling-util/src/test/java/org/apache/camel/tooling/util/JavadocHelperTest.java b/tooling/camel-tooling-util/src/test/java/org/apache/camel/tooling/util/JavadocHelperTest.java
index 6e1698f..05dbfca 100644
--- a/tooling/camel-tooling-util/src/test/java/org/apache/camel/tooling/util/JavadocHelperTest.java
+++ b/tooling/camel-tooling-util/src/test/java/org/apache/camel/tooling/util/JavadocHelperTest.java
@@ -99,4 +99,40 @@ public class JavadocHelperTest {
Assertions.assertEquals("Provides methods to interact with Transactions. E.g. sales, credits, refunds, searches, etc.",
s3);
}
+
+ @Test
+ public void testltgtInJavaDoc() throws Exception {
+ String s = " * valid for versions < 26.0.";
+ String s2 = JavadocHelper.sanitizeDescription(s, false);
+ Assertions.assertEquals(s.substring(3), s2);
+ String s3 = " * valid for versions >= 26.0.";
+ String s4 = JavadocHelper.sanitizeDescription(s3, false);
+ Assertions.assertEquals(s3.substring(3), s4);
+ }
+
+ @Test
+ public void testRemoveXmlTagsInJavaDoc() throws Exception {
+ String s = " * foo <xs:foo a=\"x\" b=\"y\"> bar";
+ String s2 = JavadocHelper.sanitizeDescription(s, false);
+ Assertions.assertEquals("foo bar", s2);
+ String s3 = " * foo </xs:foo> bar";
+ String s4 = JavadocHelper.sanitizeDescription(s3, false);
+ Assertions.assertEquals("foo bar", s4);
+ String s5 = " * foo </xs:foo > bar";
+ String s6 = JavadocHelper.sanitizeDescription(s5, false);
+ Assertions.assertEquals("foo bar", s6);
+ String s7 = " * this < is not an xml > tag";
+ String s8 = JavadocHelper.sanitizeDescription(s7, false);
+ Assertions.assertEquals(s7.substring(3), s8);
+ }
+
+ @Test
+ public void testXmlEncode() throws Exception {
+ String s = "foo & bar > baz < foo " bar";
+ String s2 = JavadocHelper.xmlEncode(s);
+ Assertions.assertEquals(s, s2);
+ String s3 = "foo & bar > baz < foo \" bar";
+ String s4 = JavadocHelper.xmlEncode(s3);
+ Assertions.assertEquals(s, s4);
+ }
}