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 2020/02/23 16:37:51 UTC
[maven-shared-utils] branch xml3 created (now fee97f9)
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a change to branch xml3
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git.
at fee97f9 fail fast on empty element names
This branch includes the following new commits:
new fee97f9 fail fast on empty element names
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[maven-shared-utils] 01/01: fail fast on empty element names
Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch xml3
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git
commit fee97f9574d7db4b961d98e4f15eaf275ada69b1
Author: Elliotte Rusty Harold <el...@ibiblio.org>
AuthorDate: Sun Feb 23 11:37:33 2020 -0500
fail fast on empty element names
---
.../shared/utils/xml/PrettyPrintXMLWriter.java | 15 ++++----
.../apache/maven/shared/utils/xml/XMLWriter.java | 26 ++++++++------
.../shared/utils/xml/PrettyPrintXmlWriterTest.java | 41 ++++++++++------------
3 files changed, 42 insertions(+), 40 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
index deb07d2..d948d8e 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
@@ -27,10 +27,8 @@ import org.apache.maven.shared.utils.Os;
/**
* XMLWriter with nice indentation
- */
-/**
+ *
* @author kama
- *
*/
public class PrettyPrintXMLWriter
implements XMLWriter
@@ -214,7 +212,7 @@ public class PrettyPrintXMLWriter
}
/**
- * @param lineSeparator The line separator to be used.
+ * @param lineSeparator the line separator to be output
*/
public void setLineSeparator( String lineSeparator )
{
@@ -227,7 +225,7 @@ public class PrettyPrintXMLWriter
}
/**
- * @param lineIndentParameter The line indent parameter.
+ * @param lineIndentParameter the line indent parameter
*/
public void setLineIndenter( String lineIndentParameter )
{
@@ -242,6 +240,11 @@ public class PrettyPrintXMLWriter
/** {@inheritDoc} */
public void startElement( String elementName ) throws IOException
{
+
+ if (elementName.isEmpty()) {
+ throw new IllegalArgumentException("Element name cannot be empty");
+ }
+
boolean firstLine = ensureDocumentStarted();
completePreviouslyOpenedElement();
@@ -328,7 +331,7 @@ public class PrettyPrintXMLWriter
}
/**
- * Write the documents if not already done.
+ * Write the document if not already done.
*
* @return <code>true</code> if the document headers have freshly been written.
*/
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java
index 0daad8b..32a56d2 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/XMLWriter.java
@@ -30,7 +30,7 @@ public interface XMLWriter
/**
* Sets the encoding of the document.
- * If not set, UTF-8 is being used
+ * If not set, UTF-8 is used.
*
* @param encoding the encoding
* @throws IllegalStateException if the generation of the document has already started
@@ -38,7 +38,7 @@ public interface XMLWriter
void setEncoding( String encoding );
/**
- * Sets the docType of the document.
+ * Sets the DOCTYPE of the document.
*
* @param docType the docType
* @throws IllegalStateException if the generation of the document has already started
@@ -48,15 +48,17 @@ public interface XMLWriter
/**
* Start an XML Element tag.
- * @param name The name of the tag.
- * @throws IOException if starting the element fails.
+ *
+ * @param name the name of the tag
+ * @throws IOException if starting the element fails
*/
void startElement( String name ) throws IOException;
/**
* Add a XML attribute to the current XML Element.
- * This method must get called immediately after {@link #startElement(String)}
+ * This method must get called immediately after {@link #startElement(String)}.
+ *
* @param key The key of the attribute.
* @param value The value of the attribute.
* @throws IllegalStateException if no element tag is currently in process
@@ -65,8 +67,9 @@ public interface XMLWriter
void addAttribute( String key, String value ) throws IOException;
/**
- * Add a value text to the current element tag
- * This will perform XML escaping to guarantee valid content
+ * Add text to the current element tag.
+ * This performs XML escaping to guarantee well-formed content.
+ *
* @param text The text which should be written.
* @throws IllegalStateException if no element tag got started yet
* @throws IOException if writing the text fails.
@@ -74,10 +77,11 @@ public interface XMLWriter
void writeText( String text ) throws IOException;
/**
- * Add a preformatted markup to the current element tag
- * @param text The text which should be written.
- * @throws IllegalStateException if no element tag got started yet
- * @throws IOException if writing the markup fails.
+ * Add preformatted markup to the current element tag.
+ *
+ * @param text the text which should be written
+ * @throws IllegalStateException if no element tag is started yet
+ * @throws IOException if writing the markup fails
*/
void writeMarkup( String text ) throws IOException;
diff --git a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
index f272332..28ba583 100644
--- a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
@@ -1,8 +1,3 @@
-package org.apache.maven.shared.utils.xml;
-
-import java.io.IOException;
-import javax.swing.text.html.HTML;
-import java.io.StringWriter;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -23,13 +18,15 @@ import java.io.StringWriter;
* under the License.
*/
+package org.apache.maven.shared.utils.xml;
+import java.io.IOException;
+import javax.swing.text.html.HTML;
+import java.io.StringWriter;
import org.apache.maven.shared.utils.Os;
import org.apache.maven.shared.utils.StringUtils;
-import org.junit.After;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
/**
@@ -40,26 +37,24 @@ import org.junit.Test;
*/
public class PrettyPrintXmlWriterTest
{
- StringWriter w;
+ private StringWriter w = new StringWriter();;
- PrettyPrintXMLWriter writer;
+ private PrettyPrintXMLWriter writer = new PrettyPrintXMLWriter( w );
- @Before
- public void before()
- throws Exception
- {
- w = new StringWriter();
- writer = new PrettyPrintXMLWriter( w );
- }
-
- @After
- public void after()
- throws Exception
+
+ @Test
+ public void testNoStartTag() throws IOException
{
- writer = null;
- w = null;
+
+ try {
+ writer.startElement( "" );
+ Assert.fail( "allowed empty name" );
+ } catch ( IllegalArgumentException ex ) {
+ Assert.assertEquals( "Element name cannot be empty", ex.getMessage() );
+ }
+
}
-
+
@Test
public void testDefaultPrettyPrintXMLWriter() throws IOException
{