Bug 1672: Generated javadoc contains 35/26235/6
authorIgor Foltin <ifoltin@cisco.com>
Mon, 28 Sep 2015 14:08:43 +0000 (16:08 +0200)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 10 Nov 2015 17:08:08 +0000 (17:08 +0000)
symbols of javadoc comment tags

Fixed encoding of html tags
and yang description in generated
javadoc comments.

Change-Id: Ic0512287345bc633c36325217e89aa9726a4056b
Signed-off-by: Igor Foltin <igor.foltin@pantheon.sk>
Signed-off-by: Igor Foltin <ifoltin@cisco.com>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/YangTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/EnumTemplate.xtend
binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/yangtools/sal/java/api/generator/test/EndodingInJavaDocTest.java

index 26d72d831fcd3ff5d649666951f6ba5a0d351a40..6738a665ddb7a5486a99d5cfb9df067aa33a6941 100644 (file)
@@ -717,7 +717,6 @@ class YangTemplate {
         var boolean isFirstElementOnNewLineEmptyChar = false;
         val lineIndent = computeNextLineIndent(nextLineIndent);
 
-        formattedText = formattedText.replace("*/", "&#42;&#47;");
         formattedText = NEWLINE_OR_TAB.removeFrom(formattedText);
         formattedText = formattedText.replaceAll(" +", " ");
 
index d3c2908c81224aaf072c16122e4965b93dd8d1d6..3ea37adec35f9878609be7ae2f2f3693db8c660a 100644 (file)
@@ -213,20 +213,18 @@ abstract class BaseTemplate {
     }
 
     private static final CharMatcher AMP_MATCHER = CharMatcher.is('&');
-    private static final CharMatcher GT_MATCHER = CharMatcher.is('>');
-    private static final CharMatcher LT_MATCHER = CharMatcher.is('<');
+    private static final Pattern HTTP_LINK_MATCHER = Pattern.compile("<http(.+)>");
 
     def encodeJavadocSymbols(String description) {
         if (description.nullOrEmpty) {
             return description;
         }
 
-        var ret = description.replace("*/", "&#42;&#47;")
-
         // FIXME: Use Guava's HtmlEscapers once we have it available
-        ret = AMP_MATCHER.replaceFrom(ret, "&amp;");
-        ret = GT_MATCHER.replaceFrom(ret, "&gt;");
-        ret = LT_MATCHER.replaceFrom(ret, "&lt;");
+        var ret = AMP_MATCHER.replaceFrom(description, "&amp;");
+        ret = HTTP_LINK_MATCHER.matcher(ret).replaceAll("&lt;http$1&gt;");
+        ret = ret.replace("*/", "&#42;&#47;")
+
         return ret;
     }
 
@@ -279,7 +277,7 @@ abstract class BaseTemplate {
         var StringBuilder lineBuilder = new StringBuilder();
         var boolean isFirstElementOnNewLineEmptyChar = false;
 
-        formattedText = formattedText.encodeJavadocSymbols
+        formattedText = encodeJavadocSymbols(formattedText)
         formattedText = NL_MATCHER.removeFrom(formattedText)
         formattedText = TAB_MATCHER.removeFrom(formattedText)
         formattedText = SPACES_PATTERN.matcher(formattedText).replaceAll(" ")
index 92466b2bd2b2d7ad8e27360ddca0c982dc860cc6..7316fa055536ca2d043c6f6d9081ec13629e31df 100644 (file)
@@ -42,7 +42,7 @@ class EnumTemplate extends BaseTemplate {
     }
 
     def writeEnumItem(String name, int value, String description) '''
-        «asJavadoc(formatToParagraph(description)
+        «asJavadoc(description
         «name»(«value»)
     '''
 
index 330b28e46201e3aeb1afacc7d2f962bf442ed4db..a5170d76f07d1ad0f4c3ceb81be859972860dc5b 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
 package org.opendaylight.yangtools.sal.java.api.generator.test;
 
 import static org.junit.Assert.assertTrue;
@@ -7,6 +15,7 @@ import static org.opendaylight.yangtools.sal.java.api.generator.test.Compilation
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.cleanUp;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.getSourceFiles;
 import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.testCompilation;
+
 import com.google.common.collect.ImmutableSet;
 import java.io.File;
 import java.util.List;
@@ -22,7 +31,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 public class EndodingInJavaDocTest extends BaseCompilationTest {
 
     @Test
-    public void testAugmentToUsesInAugment() throws Exception {
+    public void testJavadocEncodingCompilation() throws Exception {
         final File sourcesOutputDir = new File(GENERATOR_OUTPUT_PATH + FS + "encoding-javadoc");
         assertTrue("Failed to create test file '" + sourcesOutputDir + "'", sourcesOutputDir.mkdir());
         final File compiledOutputDir = new File(COMPILER_OUTPUT_PATH + FS + "encoding-javadoc");