You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by el...@apache.org on 2023/03/25 16:43:18 UTC
[maven-doxia] 02/02: DOXIA-698 Make Sink implement AutoCloseable
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch sink
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 213a0f2a3ddc601c50756bf053139ba6fc8aff22
Author: Elliotte Rusty Harold <el...@ibiblio.org>
AuthorDate: Sat Mar 25 12:43:03 2023 -0400
DOXIA-698 Make Sink implement AutoCloseable
---
.../maven/doxia/sink/impl/AbstractSinkTest.java | 5 +-
.../maven/doxia/sink/impl/Xhtml5BaseSinkTest.java | 411 ++++-----------------
.../maven/doxia/module/xdoc/XdocSinkTest.java | 16 +-
.../maven/doxia/module/xhtml5/Xhtml5SinkTest.java | 20 +-
.../java/org/apache/maven/doxia/sink/Sink.java | 4 +-
5 files changed, 89 insertions(+), 367 deletions(-)
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
index d6e51818..117cb970 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java
@@ -104,12 +104,9 @@ public abstract class AbstractSinkTest extends AbstractModuleTest {
@Test
public final void testTestDocument() throws IOException {
Writer writer = (isXmlSink() ? getXmlTestWriter("testDocument") : getTestWriter("testDocument"));
- Sink testSink = createSink(writer);
-
- try {
+ try (Sink testSink = createSink(writer)) {
SinkTestDocument.generate(testSink);
} finally {
- testSink.close();
IOUtils.closeQuietly(writer);
}
}
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
index 530936e1..f91e63d5 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java
@@ -37,7 +37,6 @@ import static org.junit.jupiter.api.Assertions.*;
public class Xhtml5BaseSinkTest {
protected static final String LS = Markup.EOL;
private final SinkEventAttributes attributes = SinkEventAttributeSet.BOLD;
- private Xhtml5BaseSink sink;
private Writer writer;
String EOL = System.lineSeparator();
@@ -50,9 +49,7 @@ public class Xhtml5BaseSinkTest {
@Test
public void testSpaceAfterClosingTag() {
// DOXIA-189
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.paragraph();
sink.text("There should be no space before the ");
sink.italic();
@@ -60,10 +57,6 @@ public class Xhtml5BaseSinkTest {
sink.italic_();
sink.text(".");
sink.paragraph_();
- } finally {
- if (sink != null) {
- sink.close();
- }
}
String actual = writer.toString();
@@ -72,14 +65,10 @@ public class Xhtml5BaseSinkTest {
assertEquals(expected, actual);
}
- /**
- */
@Test
public void testNestedTables() {
// DOXIA-177
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows(new int[] {Sink.JUSTIFY_CENTER}, false);
sink.tableRow();
@@ -151,8 +140,6 @@ public class Xhtml5BaseSinkTest {
sink.text("caption&1");
sink.tableCaption_();
sink.table_();
- } finally {
- sink.close();
}
String actual = writer.toString();
@@ -172,26 +159,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testArticle() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.article();
sink.article_();
- } finally {
- sink.close();
}
assertEquals("<article></article>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.article(attributes);
sink.article_();
- } finally {
- sink.close();
}
assertEquals("<article style=\"bold\"></article>", writer.toString());
@@ -202,26 +181,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testNavigation() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.navigation();
sink.navigation_();
- } finally {
- sink.close();
}
assertEquals("<nav></nav>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.navigation(attributes);
sink.navigation_();
- } finally {
- sink.close();
}
assertEquals("<nav style=\"bold\"></nav>", writer.toString());
@@ -232,26 +203,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSidebar() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.sidebar();
sink.sidebar_();
- } finally {
- sink.close();
}
assertEquals("<aside></aside>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.sidebar(attributes);
sink.sidebar_();
- } finally {
- sink.close();
}
assertEquals("<aside style=\"bold\"></aside>", writer.toString());
@@ -264,15 +227,11 @@ public class Xhtml5BaseSinkTest {
public void testSection() {
final int level = Xhtml5BaseSink.SECTION_LEVEL_1;
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section(level, attributes);
sink.sectionTitle(level, attributes);
sink.sectionTitle_(level);
sink.section_(level);
- } finally {
- sink.close();
}
assertEquals("<section style=\"bold\">" + LS + "<h1 style=\"bold\"></h1></section>", writer.toString());
@@ -287,15 +246,11 @@ public class Xhtml5BaseSinkTest {
final SinkEventAttributeSet set =
new SinkEventAttributeSet("name", "section name", "class", "foo", "id", "bar");
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section(level, set);
sink.sectionTitle(level, null);
sink.sectionTitle_(level);
sink.section_(level);
- } finally {
- sink.close();
}
assertEquals("<section class=\"foo\" id=\"bar\">" + LS + "<h1></h1></section>", writer.toString());
@@ -306,16 +261,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSection1() {
-
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section1();
sink.sectionTitle1();
sink.sectionTitle1_();
sink.section1_();
- } finally {
- sink.close();
}
assertEquals("<section>" + LS + "<h1></h1></section>", writer.toString());
@@ -326,16 +276,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSection2() {
-
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section2();
sink.sectionTitle2();
sink.sectionTitle2_();
sink.section2_();
- } finally {
- sink.close();
}
assertEquals("<section>" + LS + "<h2></h2></section>", writer.toString());
@@ -346,16 +291,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSection3() {
-
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section3();
sink.sectionTitle3();
sink.sectionTitle3_();
sink.section3_();
- } finally {
- sink.close();
}
assertEquals("<section>" + LS + "<h3></h3></section>", writer.toString());
@@ -366,15 +306,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSection4() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section4();
sink.sectionTitle4();
sink.sectionTitle4_();
sink.section4_();
- } finally {
- sink.close();
}
assertEquals("<section>" + LS + "<h4></h4></section>", writer.toString());
@@ -385,15 +321,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSection5() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.section5();
sink.sectionTitle5();
sink.sectionTitle5_();
sink.section5_();
- } finally {
- sink.close();
}
assertEquals("<section>" + LS + "<h5></h5></section>", writer.toString());
@@ -404,26 +336,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testHeader() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.header();
sink.header_();
- } finally {
- sink.close();
}
assertEquals("<header></header>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.header(attributes);
sink.header_();
- } finally {
- sink.close();
}
assertEquals("<header style=\"bold\"></header>", writer.toString());
@@ -434,30 +358,22 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testContent() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.content();
sink.content();
sink.content_();
sink.content_();
- } finally {
- sink.close();
}
assertEquals("<main>" + EOL + "<div class=\"content\"></div></main>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.content(attributes);
sink.content(attributes);
sink.content_();
sink.content_();
- } finally {
- sink.close();
}
assertEquals(
@@ -470,26 +386,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testFooter() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.footer();
sink.footer_();
- } finally {
- sink.close();
}
assertEquals("<footer></footer>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.footer(attributes);
sink.footer_();
- } finally {
- sink.close();
}
assertEquals("<footer style=\"bold\"></footer>", writer.toString());
@@ -500,30 +408,22 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testList() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.list();
sink.listItem();
sink.listItem_();
sink.list_();
- } finally {
- sink.close();
}
assertEquals("<ul>" + LS + "<li></li></ul>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.list(attributes);
sink.listItem(attributes);
sink.listItem_();
sink.list_();
- } finally {
- sink.close();
}
assertEquals("<ul style=\"bold\">" + LS + "<li style=\"bold\"></li></ul>", writer.toString());
@@ -536,30 +436,22 @@ public class Xhtml5BaseSinkTest {
public void testNumberedList() {
final int numbering = Xhtml5BaseSink.NUMBERING_DECIMAL;
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.numberedList(numbering);
sink.numberedListItem();
sink.numberedListItem_();
sink.numberedList_();
- } finally {
- sink.close();
}
assertEquals("<ol style=\"list-style-type: decimal\">" + LS + "<li></li></ol>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.numberedList(numbering, attributes);
sink.numberedListItem(attributes);
sink.numberedListItem_();
sink.numberedList_();
- } finally {
- sink.close();
}
assertEquals(
@@ -571,34 +463,26 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testDefinitionList() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.definitionList();
sink.definedTerm();
sink.definedTerm_();
sink.definition();
sink.definition_();
sink.definitionList_();
- } finally {
- sink.close();
}
assertEquals("<dl>" + LS + "<dt></dt>" + LS + "<dd></dd></dl>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.definitionList(attributes);
sink.definedTerm(attributes);
sink.definedTerm_();
sink.definition(attributes);
sink.definition_();
sink.definitionList_();
- } finally {
- sink.close();
}
assertEquals(
@@ -613,16 +497,12 @@ public class Xhtml5BaseSinkTest {
public void testFigure() {
final String src = "src.jpg";
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.figure(attributes);
sink.figureGraphics(src, attributes);
sink.figureCaption(attributes);
sink.figureCaption_();
sink.figure_();
- } finally {
- sink.close();
}
assertEquals(
@@ -638,11 +518,8 @@ public class Xhtml5BaseSinkTest {
public void testFigureGraphics() {
String src = "source.png";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.figureGraphics(src, attributes);
- } finally {
- sink.close();
}
assertEquals("<img src=\"source.png\" style=\"bold\" />", writer.toString());
@@ -653,26 +530,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testParagraph() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.paragraph();
sink.paragraph_();
- } finally {
- sink.close();
}
assertEquals("<p></p>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.paragraph(attributes);
sink.paragraph_();
- } finally {
- sink.close();
}
assertEquals("<p style=\"bold\"></p>", writer.toString());
@@ -685,12 +554,9 @@ public class Xhtml5BaseSinkTest {
public void testData() {
String value = "value";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.data(value, attributes);
sink.data_();
- } finally {
- sink.close();
}
assertEquals("<data value=\"value\" style=\"bold\"></data>", writer.toString());
@@ -703,12 +569,9 @@ public class Xhtml5BaseSinkTest {
public void testTime() {
String datetime = "datetime";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.time(datetime, attributes);
sink.time_();
- } finally {
- sink.close();
}
assertEquals("<time datetime=\"datetime\" style=\"bold\"></time>", writer.toString());
@@ -719,26 +582,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testAddress() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.address();
sink.address_();
- } finally {
- sink.close();
}
assertEquals("<address></address>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.address(attributes);
sink.address_();
- } finally {
- sink.close();
}
assertEquals("<address style=\"bold\"></address>", writer.toString());
@@ -749,26 +604,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testBlockquote() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.blockquote();
sink.blockquote_();
- } finally {
- sink.close();
}
assertEquals("<blockquote></blockquote>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.blockquote(attributes);
sink.blockquote_();
- } finally {
- sink.close();
}
assertEquals("<blockquote style=\"bold\"></blockquote>", writer.toString());
@@ -779,26 +626,18 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testDivision() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.division();
sink.division_();
- } finally {
- sink.close();
}
assertEquals("<div></div>", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.division(attributes);
sink.division_();
- } finally {
- sink.close();
}
assertEquals("<div style=\"bold\"></div>", writer.toString());
@@ -809,13 +648,9 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testVerbatimSource() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.verbatim(SinkEventAttributeSet.SOURCE);
sink.verbatim_();
- } finally {
- sink.close();
}
assertEquals("<div class=\"verbatim source\">" + LS + "<pre></pre></div>", writer.toString());
@@ -840,13 +675,9 @@ public class Xhtml5BaseSinkTest {
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.verbatim(att);
sink.verbatim_();
- } finally {
- sink.close();
}
assertEquals(expected, writer.toString());
@@ -857,13 +688,9 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testHorizontalRule() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.horizontalRule();
sink.horizontalRule(attributes);
- } finally {
- sink.close();
}
assertEquals("<hr /><hr style=\"bold\" />", writer.toString());
@@ -874,13 +701,9 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTable() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table(attributes);
sink.table_();
- } finally {
- sink.close();
}
assertEquals("</table>", writer.toString());
@@ -891,15 +714,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTableRows() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
assertEquals("<table class=\"bodyTable\"></table>", writer.toString());
@@ -910,9 +729,7 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTableRow() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableRow(attributes);
@@ -921,8 +738,6 @@ public class Xhtml5BaseSinkTest {
sink.tableRow_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
String xmlExpected = "<table class=\"bodyTable\">" + EOL + "<tr style=\"bold\" class=\"a\"></tr>" + EOL
@@ -936,12 +751,10 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testHiddenTableRowStriping() {
- try {
- SinkEventAttributeSet attributes2 = new SinkEventAttributeSet();
- SinkEventAttributeSet attributes3 = new SinkEventAttributeSet();
- attributes3.addAttributes(attributes);
- sink = new Xhtml5BaseSink(writer);
-
+ SinkEventAttributeSet attributes2 = new SinkEventAttributeSet();
+ SinkEventAttributeSet attributes3 = new SinkEventAttributeSet();
+ attributes3.addAttributes(attributes);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableRow();
@@ -972,23 +785,21 @@ public class Xhtml5BaseSinkTest {
sink.tableRow_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
- }
-
- StringBuilder sbExpeted = new StringBuilder("<table class=\"bodyTable\">");
- sbExpeted.append(EOL).append("<tr class=\"a\"></tr>").append(EOL);
- sbExpeted.append("<tr style=\"bold\" class=\"b\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"hidden xyz abc a\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"abc hidden xyz a\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"a\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"not-hidden xyz b\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"xyz not-hidden a\"></tr>").append(EOL);
- sbExpeted.append("<tr style=\"bold\" class=\"xyz abc hidden b\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"xyz hidden-not b\"></tr>").append(EOL);
- sbExpeted.append("<tr class=\"a\"></tr></table>");
-
- String xmlExpected = sbExpeted.toString();
+ }
+
+ StringBuilder sbExpected = new StringBuilder("<table class=\"bodyTable\">");
+ sbExpected.append(EOL).append("<tr class=\"a\"></tr>").append(EOL);
+ sbExpected.append("<tr style=\"bold\" class=\"b\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"hidden xyz abc a\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"abc hidden xyz a\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"a\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"not-hidden xyz b\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"xyz not-hidden a\"></tr>").append(EOL);
+ sbExpected.append("<tr style=\"bold\" class=\"xyz abc hidden b\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"xyz hidden-not b\"></tr>").append(EOL);
+ sbExpected.append("<tr class=\"a\"></tr></table>");
+
+ String xmlExpected = sbExpected.toString();
assertEquals(xmlExpected, writer.toString());
}
@@ -997,13 +808,9 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTableCell() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.tableCell(attributes);
sink.tableCell_();
- } finally {
- sink.close();
}
assertEquals("<td style=\"bold\"></td>", writer.toString());
@@ -1014,13 +821,9 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTableHeaderCell() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.tableHeaderCell(attributes);
sink.tableHeaderCell_();
- } finally {
- sink.close();
}
assertEquals("<th style=\"bold\"></th>", writer.toString());
@@ -1031,9 +834,7 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testTableCaption() {
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableCaption(attributes);
@@ -1041,8 +842,6 @@ public class Xhtml5BaseSinkTest {
sink.tableCaption_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1056,12 +855,9 @@ public class Xhtml5BaseSinkTest {
public void testAnchor() {
String name = "anchor";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.anchor(name, attributes);
sink.anchor_();
- } finally {
- sink.close();
}
assertEquals("<a id=\"anchor\" style=\"bold\"></a>", writer.toString());
@@ -1074,12 +870,9 @@ public class Xhtml5BaseSinkTest {
public void testLink() {
final String name = "link.html";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.link(name, attributes);
sink.link_();
- } finally {
- sink.close();
}
assertEquals("<a style=\"bold\" href=\"link.html\"></a>", writer.toString());
@@ -1092,12 +885,9 @@ public class Xhtml5BaseSinkTest {
public void testLinkExternal() {
final String name = "https://www.apache.org";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.link(name, attributes);
sink.link_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1114,12 +904,9 @@ public class Xhtml5BaseSinkTest {
attributes2.addAttributes(attributes);
attributes2.addAttribute(SinkEventAttributes.CLASS, "cs1 cs2");
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.link(name, attributes2);
sink.link_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1136,8 +923,7 @@ public class Xhtml5BaseSinkTest {
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.inline(SinkEventAttributeSet.Semantics.EMPHASIS);
sink.inline(SinkEventAttributeSet.Semantics.STRONG);
sink.inline(SinkEventAttributeSet.Semantics.SMALL);
@@ -1195,8 +981,6 @@ public class Xhtml5BaseSinkTest {
sink.inline_();
sink.inline_();
sink.inline_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1209,16 +993,13 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testItalic() {
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.inline(SinkEventAttributeSet.Semantics.ITALIC);
sink.inline_();
sink.inline(SinkEventAttributeSet.Semantics.BOLD);
sink.inline_();
sink.inline(SinkEventAttributeSet.Semantics.CODE);
sink.inline_();
- } finally {
- sink.close();
}
assertEquals("<i></i><b></b><code></code>", writer.toString());
@@ -1229,14 +1010,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testLineBreak() {
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.lineBreak(attributes);
sink.lineBreakOpportunity(attributes);
sink.pageBreak();
sink.nonBreakingSpace();
- } finally {
- sink.close();
}
assertEquals("<br style=\"bold\" /><wbr style=\"bold\" /><!-- PB --> ", writer.toString());
@@ -1249,22 +1027,16 @@ public class Xhtml5BaseSinkTest {
public void testText() {
String text = "a text & \u00c6";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.text(text);
- } finally {
- sink.close();
}
assertEquals("a text & Æ", writer.toString());
writer = new StringWriter();
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.text(text, attributes);
- } finally {
- sink.close();
}
assertEquals("a text & Æ", writer.toString());
@@ -1277,11 +1049,8 @@ public class Xhtml5BaseSinkTest {
public void testRawText() {
String text = "raw text";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.rawText(text);
- } finally {
- sink.close();
}
assertEquals("raw text", writer.toString());
@@ -1292,14 +1061,11 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testComment() {
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.comment("a comment");
sink.comment(" a comment");
sink.comment("a comment ");
sink.comment(" a comment ");
- } finally {
- sink.close();
}
assertEquals("<!--a comment--><!-- a comment--><!--a comment --><!-- a comment -->", writer.toString());
@@ -1313,11 +1079,8 @@ public class Xhtml5BaseSinkTest {
final String name = "unknown";
final Object[] requiredParams = null;
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.unknown(name, requiredParams, attributes);
- } finally {
- sink.close();
}
assertEquals("", writer.toString());
@@ -1334,15 +1097,11 @@ public class Xhtml5BaseSinkTest {
final SinkEventAttributes src =
new SinkEventAttributeSet(SinkEventAttributes.SRC, "http://ex.com/ex.js?v=l&l=e");
- try {
- sink = new Xhtml5BaseSink(writer);
-
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.unknown(script, startTag, src);
sink.unknown(script, endTag, null);
sink.figureGraphics("http://ex.com/ex.jpg?v=l&l=e", src);
- } finally {
- sink.close();
}
String result = writer.toString();
@@ -1359,11 +1118,8 @@ public class Xhtml5BaseSinkTest {
// DOXIA-314
String text = "a text '𝟭'";
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.text(text);
- } finally {
- sink.close();
}
assertEquals("a text '𝟭'", writer.toString());
@@ -1374,8 +1130,7 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testSpecialCharacters() {
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableRow(null);
@@ -1385,8 +1140,6 @@ public class Xhtml5BaseSinkTest {
sink.tableRow_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
final String result = writer.toString();
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
index ee951c3b..e23eac26 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
@@ -330,17 +330,11 @@ public class XdocSinkTest extends AbstractSinkTest {
@Test
public void testVerbatimSource() {
Writer writer = new StringWriter();
- XdocSink sink = null;
-
- try {
- sink = new XdocSink(writer);
-
+ try (XdocSink sink = new XdocSink(writer)) {
sink.verbatim(null);
sink.verbatim_();
sink.verbatim(SinkEventAttributeSet.SOURCE);
sink.verbatim_();
- } finally {
- sink.close();
}
assertEquals("<pre></pre><source></source>", writer.toString());
@@ -352,19 +346,13 @@ public class XdocSinkTest extends AbstractSinkTest {
@Test
public void testLinkWithTarget() {
Writer writer = new StringWriter();
- XdocSink sink = null;
-
- try {
- sink = new XdocSink(writer);
-
+ try (XdocSink sink = new XdocSink(writer)) {
sink.link("name");
sink.link_();
SinkEventAttributes attrs = new SinkEventAttributeSet();
attrs.addAttribute(Attribute.TARGET, "nirvana");
sink.link("name", attrs);
sink.link_();
- } finally {
- sink.close();
}
assertEquals("<a href=\"name\"></a><a target=\"nirvana\" href=\"name\"></a>", writer.toString());
diff --git a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
index f1dc2916..2f7f6391 100644
--- a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
+++ b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5SinkTest.java
@@ -53,10 +53,8 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
*/
@Test
public void testLinks() {
- Xhtml5Sink sink = null;
Writer writer = new StringWriter();
- try {
- sink = (Xhtml5Sink) createSink(writer);
+ try (Xhtml5Sink sink = (Xhtml5Sink) createSink(writer)) {
sink.link("http:/www.xdoc.com");
sink.link_();
sink.link("./index.html#anchor");
@@ -65,10 +63,6 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
sink.link_();
sink.link("index.html");
sink.link_();
- } finally {
- if (sink != null) {
- sink.close();
- }
}
String actual = writer.toString();
@@ -325,11 +319,9 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
*/
@Test
public void testEntities() {
- Xhtml5Sink sink = null;
Writer writer = new StringWriter();
- try {
- sink = new Xhtml5Sink(writer);
+ try (Xhtml5Sink sink = new Xhtml5Sink(writer)) {
sink.section(Sink.SECTION_LEVEL_1, null);
sink.header();
sink.sectionTitle(Sink.SECTION_LEVEL_1, null);
@@ -340,8 +332,6 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
sink.text("&", null);
sink.paragraph_();
sink.section_(Sink.SECTION_LEVEL_1);
- } finally {
- sink.close();
}
assertEquals("<section><header>\n<h1>&</h1></header>\n<p>&</p></section>", writer.toString());
@@ -352,11 +342,9 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
*/
@Test
public void testHead() {
- Xhtml5Sink sink = null;
Writer writer = new StringWriter();
- try {
- sink = new Xhtml5Sink(writer);
+ try (Xhtml5Sink sink = new Xhtml5Sink(writer)) {
sink.head();
sink.title();
sink.text("Title");
@@ -370,8 +358,6 @@ public class Xhtml5SinkTest extends AbstractSinkTest {
atts.addAttribute("href", "http://maven.apache.org/");
sink.unknown("base", new Object[] {HtmlMarkup.TAG_TYPE_SIMPLE}, atts);
sink.head_();
- } finally {
- sink.close();
}
String expected =
diff --git a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
index 4502bc1b..2d13faac 100644
--- a/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
+++ b/doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Sink.java
@@ -18,8 +18,6 @@
*/
package org.apache.maven.doxia.sink;
-import java.io.AutoCloseable;
-
/**
* A <i>Sink</i> consumes Doxia events to produce a resultant output format
* (eg Docbook, PDF, XHTML...).
@@ -54,7 +52,7 @@ import java.io.AutoCloseable;
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
* @author ltheussl
*/
-public interface Sink implements AutoCloseable {
+public interface Sink extends AutoCloseable {
/**
* A numbering to handle a number list.