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/28 14:56:16 UTC
[maven-doxia] branch master updated: DOXIA-698Make Sink implement AutoCloseable (#160)
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
The following commit(s) were added to refs/heads/master by this push:
new b113dc75 DOXIA-698Make Sink implement AutoCloseable (#160)
b113dc75 is described below
commit b113dc75a5982bb503e0e7c1be5da815744ef166
Author: Elliotte Rusty Harold <el...@users.noreply.github.com>
AuthorDate: Tue Mar 28 10:56:08 2023 -0400
DOXIA-698Make Sink implement AutoCloseable (#160)
---
.../maven/doxia/sink/impl/Xhtml5BaseSinkTest.java | 405 ++++-----------------
.../java/org/apache/maven/doxia/sink/Sink.java | 2 +-
2 files changed, 81 insertions(+), 326 deletions(-)
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..48705219 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();
@@ -77,8 +70,7 @@ public class Xhtml5BaseSinkTest {
@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);
@@ -151,8 +143,6 @@ public class Xhtml5BaseSinkTest {
sink.text("caption&1");
sink.tableCaption_();
sink.table_();
- } finally {
- sink.close();
}
String actual = writer.toString();
@@ -172,26 +162,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,28 +184,19 @@ 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 +205,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 +229,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 +248,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 +263,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 +278,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 +293,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 +308,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 +323,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 +338,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 +360,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 +388,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 +410,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 +438,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 +465,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 +499,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 +520,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 +532,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 +556,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 +571,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 +584,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 +606,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 +628,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 +650,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 +677,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 +690,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 +703,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 +716,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 +731,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 +740,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,11 +753,10 @@ public class Xhtml5BaseSinkTest {
*/
@Test
public void testHiddenTableRowStriping() {
- try {
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
SinkEventAttributeSet attributes2 = new SinkEventAttributeSet();
SinkEventAttributeSet attributes3 = new SinkEventAttributeSet();
attributes3.addAttributes(attributes);
- sink = new Xhtml5BaseSink(writer);
sink.table();
sink.tableRows();
@@ -972,23 +788,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 expected = new StringBuilder("<table class=\"bodyTable\">");
+ expected.append(EOL).append("<tr class=\"a\"></tr>").append(EOL);
+ expected.append("<tr style=\"bold\" class=\"b\"></tr>").append(EOL);
+ expected.append("<tr class=\"hidden xyz abc a\"></tr>").append(EOL);
+ expected.append("<tr class=\"abc hidden xyz a\"></tr>").append(EOL);
+ expected.append("<tr class=\"a\"></tr>").append(EOL);
+ expected.append("<tr class=\"not-hidden xyz b\"></tr>").append(EOL);
+ expected.append("<tr class=\"xyz not-hidden a\"></tr>").append(EOL);
+ expected.append("<tr style=\"bold\" class=\"xyz abc hidden b\"></tr>").append(EOL);
+ expected.append("<tr class=\"xyz hidden-not b\"></tr>").append(EOL);
+ expected.append("<tr class=\"a\"></tr></table>");
+
+ String xmlExpected = expected.toString();
assertEquals(xmlExpected, writer.toString());
}
@@ -997,13 +811,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 +824,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 +837,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 +845,6 @@ public class Xhtml5BaseSinkTest {
sink.tableCaption_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1055,13 +857,9 @@ public class Xhtml5BaseSinkTest {
@Test
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 +872,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 +887,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 +906,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 +925,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 +983,6 @@ public class Xhtml5BaseSinkTest {
sink.inline_();
sink.inline_();
sink.inline_();
- } finally {
- sink.close();
}
assertEquals(
@@ -1209,16 +995,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 +1012,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 +1029,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 +1051,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 +1063,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 +1081,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 +1099,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,23 +1120,19 @@ 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());
}
/**
- * Test unicode chracters in tables. DOXIA-433.
+ * Test unicode characters in tables. DOXIA-433.
*/
@Test
public void testSpecialCharacters() {
- try {
- sink = new Xhtml5BaseSink(writer);
+ try (Xhtml5BaseSink sink = new Xhtml5BaseSink(writer)) {
sink.table();
sink.tableRows();
sink.tableRow(null);
@@ -1385,8 +1142,6 @@ public class Xhtml5BaseSinkTest {
sink.tableRow_();
sink.tableRows_();
sink.table_();
- } finally {
- sink.close();
}
final String result = writer.toString();
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 6fddbc22..c89ad68e 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
@@ -52,7 +52,7 @@ package org.apache.maven.doxia.sink;
* @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
* @author ltheussl
*/
-public interface Sink {
+public interface Sink extends AutoCloseable {
/**
* A numbering to handle a number list.