[DOXIA-591] Use Java 7 syntax

- 'for' loop replaceable with 'foreach' 
- 'indexOf()' replace with 'contains()'
- replace StringBuffer with StringBuilder
- remove unnecessary boxing/unboxing
- use <>
- collapse identical catch Exceptions
- replace if with switch
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java b/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java
index 0f1d49e..086d225 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexEntry.java
@@ -51,7 +51,7 @@
     /**
      * The child entries.
      */
-    private List<IndexEntry> childEntries = new ArrayList<IndexEntry>();
+    private List<IndexEntry> childEntries = new ArrayList<>();
 
     /**
      * System-dependent EOL.
@@ -155,7 +155,7 @@
     {
         if ( entries == null )
         {
-            childEntries = new ArrayList<IndexEntry>();
+            childEntries = new ArrayList<>();
         }
 
         this.childEntries = entries;
@@ -301,7 +301,7 @@
 
         message.append( EOL );
 
-        StringBuilder indent = new StringBuilder( "" );
+        StringBuilder indent = new StringBuilder();
 
         for ( int i = 0; i < depth; i++ )
         {
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java
index 3dd3fb8..3a78b63 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/index/IndexingSink.java
@@ -77,7 +77,7 @@
      */
     public IndexingSink( IndexEntry sectionEntry )
     {
-        stack = new Stack<IndexEntry>();
+        stack = new Stack<>();
         stack.push( sectionEntry );
 
         init();
@@ -257,7 +257,7 @@
                 // -----------------------------------------------------------------------
 
                 // append text to current entry
-                IndexEntry entry = (IndexEntry) stack.lastElement();
+                IndexEntry entry = stack.lastElement();
 
                 String title = entry.getTitle() + text;
                 title = title.replaceAll( "[\\r\\n]+", "" );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java
index d03f75f..896f612 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/SwfMacro.java
@@ -59,91 +59,86 @@
                 continue;
             }
             String str = (String) parameterObject;
-            if ( key.equals( "src" ) )
+            switch ( key )
             {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    src = str;
-                }
-            }
-            else if ( key.equals( "id" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    id = str;
-                }
-            }
-            else if ( key.equals( "width" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    width = str;
-                }
-            }
-            else if ( key.equals( "height" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    height = str;
-                }
-            }
-            else if ( key.equals( "quality" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    quality = str;
-                }
-            }
-            else if ( key.equals( "menu" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    menu = str;
-                }
-            }
-            else if ( key.equals( "loop" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    loop = str;
-                }
-            }
-            else if ( key.equals( "play" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    play = str;
-                }
-            }
-            else if ( key.equals( "version" ) )
-            {
-                // enable version shorthand
-                // TODO: put in other shorthand versions
-                if ( str.equals( "6" ) )
-                {
-                    version = "6,0,29,0";
-                }
-                else
-                {
-                    if ( str.equals( "9" ) )
+                case "src":
+                    if ( StringUtils.isNotEmpty( str ) )
                     {
-                        version = "9,0,45,0";
+                        src = str;
+                    }
+                    break;
+                case "id":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        id = str;
+                    }
+                    break;
+                case "width":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        width = str;
+                    }
+                    break;
+                case "height":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        height = str;
+                    }
+                    break;
+                case "quality":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        quality = str;
+                    }
+                    break;
+                case "menu":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        menu = str;
+                    }
+                    break;
+                case "loop":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        loop = str;
+                    }
+                    break;
+                case "play":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        play = str;
+                    }
+                    break;
+                case "version":
+                    // enable version shorthand
+                    // TODO: put in other shorthand versions
+                    if ( str.equals( "6" ) )
+                    {
+                        version = "6,0,29,0";
                     }
                     else
                     {
-                        if ( StringUtils.isNotEmpty( str ) )
+                        if ( str.equals( "9" ) )
                         {
-                            version = str;
+                            version = "9,0,45,0";
+                        }
+                        else
+                        {
+                            if ( StringUtils.isNotEmpty( str ) )
+                            {
+                                version = str;
+                            }
                         }
                     }
-                }
-            }
-            else if ( key.equals( "allowScript" ) )
-            {
-                if ( StringUtils.isNotEmpty( str ) )
-                {
-                    allowScript = str;
-                }
+                    break;
+                case "allowScript":
+                    if ( StringUtils.isNotEmpty( str ) )
+                    {
+                        allowScript = str;
+                    }
+                    break;
+                 default:
+                        // ignore all other
             }
         }
 
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
index ae85ca8..2166a3e 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetMacro.java
@@ -47,7 +47,7 @@
     /**
      * Holds the cache.
      */
-    private static Map<String, String> cache = new HashMap<String, String>();
+    private static Map<String, String> cache = new HashMap<>();
 
     private static final int HOUR = 60;
 
@@ -59,7 +59,7 @@
     /**
      * Holds the time cache.
      */
-    private static Map<String, Long> timeCached = new HashMap<String, Long>();
+    private static Map<String, Long> timeCached = new HashMap<>();
 
     /**
      * Debug.
@@ -103,7 +103,7 @@
 
         if ( verbatimParam != null && !"".equals( verbatimParam ) )
         {
-            verbatim = Boolean.valueOf( verbatimParam ).booleanValue();
+            verbatim = Boolean.valueOf( verbatimParam );
         }
 
         String encoding = (String) request.getParameter( "encoding" );
@@ -274,7 +274,7 @@
     {
         String globalId = globalSnippetId( url, id );
 
-        return timeCached.containsKey( globalId ) ? timeCached.get( globalId ).longValue() : 0;
+        return timeCached.containsKey( globalId ) ? timeCached.get( globalId ) : 0;
     }
 
     /**
@@ -321,7 +321,7 @@
     {
         cache.put( globalSnippetId( url, id ), content );
 
-        timeCached.put( globalSnippetId( url, id ), Long.valueOf( System.currentTimeMillis() ) );
+        timeCached.put( globalSnippetId( url, id ), System.currentTimeMillis() );
     }
 
     /**
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetReader.java b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetReader.java
index 4ae468a..12d3e22 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetReader.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/macro/snippet/SnippetReader.java
@@ -145,7 +145,7 @@
             reader = new BufferedReader( new InputStreamReader( source.openStream(), encoding ) );
         }
 
-        List<String> lines = new ArrayList<String>();
+        List<String> lines = new ArrayList<>();
         try
         {
             boolean capture = false;
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
index ec25f19..dbeed05 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/AbstractXmlParser.java
@@ -427,7 +427,7 @@
      */
     protected void handleUnknown( XmlPullParser parser, Sink sink, int type )
     {
-        Object[] required = new Object[] { Integer.valueOf( type ) };
+        Object[] required = new Object[] { type };
 
         SinkEventAttributeSet attribs = getAttributesFromParser( parser );
 
@@ -565,7 +565,7 @@
     {
         if ( entities == null )
         {
-            entities = new LinkedHashMap<String, String>();
+            entities = new LinkedHashMap<>();
         }
 
         return entities;
@@ -673,11 +673,10 @@
         if ( entitiesCount > 0 )
         {
             final String txt = StringUtils.replace( text, ENTITY_START, "\n" + ENTITY_START );
-            BufferedReader reader = new BufferedReader( new StringReader( txt ) );
-            String line;
-            String tmpLine = "";
-            try
+            try ( BufferedReader reader = new BufferedReader( new StringReader( txt ) ) )
             {
+                String line;
+                String tmpLine = "";
                 Matcher matcher;
                 while ( ( line = reader.readLine() ) != null )
                 {
@@ -709,10 +708,6 @@
             {
                 // nop
             }
-            finally
-            {
-                IOUtil.close( reader );
-            }
         }
     }
 
@@ -724,7 +719,7 @@
         implements EntityResolver
     {
         /** Map with systemId as key and the content of systemId as byte[]. */
-        protected static final Map<String, byte[]> ENTITY_CACHE = new Hashtable<String, byte[]>();
+        protected static final Map<String, byte[]> ENTITY_CACHE = new Hashtable<>();
 
         /** {@inheritDoc} */
         public InputSource resolveEntity( String publicId, String systemId )
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
index 70dac8d..58c45c8 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java
@@ -70,7 +70,7 @@
     private boolean inVerbatim;
 
     /** Used to keep track of closing tags for content events */
-    private Stack<String> divStack = new Stack<String>();
+    private Stack<String> divStack = new Stack<>();
 
     /** Used to wrap the definedTerm with its definition, even when one is omitted */
     boolean hasDefinitionListItem = false;
@@ -804,7 +804,7 @@
 
         if ( isScriptBlock() )
         {
-            sink.unknown( CDATA, new Object[] { Integer.valueOf( CDATA_TYPE ), text}, null );
+            sink.unknown( CDATA, new Object[] { CDATA_TYPE, text }, null );
         }
         else
         {
@@ -1163,25 +1163,25 @@
 
         if ( style != null )
         {
-            if ( "list-style-type: upper-alpha".equals( style ) )
+            switch ( style )
             {
-                numbering = Sink.NUMBERING_UPPER_ALPHA;
-            }
-            else if ( "list-style-type: lower-alpha".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_LOWER_ALPHA;
-            }
-            else if ( "list-style-type: upper-roman".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_UPPER_ROMAN;
-            }
-            else if ( "list-style-type: lower-roman".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_LOWER_ROMAN;
-            }
-            else if ( "list-style-type: decimal".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_DECIMAL;
+                case "list-style-type: upper-alpha":
+                    numbering = Sink.NUMBERING_UPPER_ALPHA;
+                    break;
+                case "list-style-type: lower-alpha":
+                    numbering = Sink.NUMBERING_LOWER_ALPHA;
+                    break;
+                case "list-style-type: upper-roman":
+                    numbering = Sink.NUMBERING_UPPER_ROMAN;
+                    break;
+                case "list-style-type: lower-roman":
+                    numbering = Sink.NUMBERING_LOWER_ROMAN;
+                    break;
+                case "list-style-type: decimal":
+                    numbering = Sink.NUMBERING_DECIMAL;
+                    break;
+                default:
+                    // ignore all other
             }
         }
 
@@ -1275,13 +1275,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( log );
         warnMessages.put( key, set );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
index b2424fe..4cfab7b 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/XhtmlBaseParser.java
@@ -814,7 +814,7 @@
 
         if ( isScriptBlock() )
         {
-            sink.unknown( CDATA, new Object[] { Integer.valueOf( CDATA_TYPE ), text}, null );
+            sink.unknown( CDATA, new Object[] { CDATA_TYPE, text }, null );
         }
         else
         {
@@ -1172,25 +1172,25 @@
 
         if ( style != null )
         {
-            if ( "list-style-type: upper-alpha".equals( style ) )
+            switch ( style )
             {
-                numbering = Sink.NUMBERING_UPPER_ALPHA;
-            }
-            else if ( "list-style-type: lower-alpha".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_LOWER_ALPHA;
-            }
-            else if ( "list-style-type: upper-roman".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_UPPER_ROMAN;
-            }
-            else if ( "list-style-type: lower-roman".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_LOWER_ROMAN;
-            }
-            else if ( "list-style-type: decimal".equals( style ) )
-            {
-                numbering = Sink.NUMBERING_DECIMAL;
+                case "list-style-type: upper-alpha":
+                    numbering = Sink.NUMBERING_UPPER_ALPHA;
+                    break;
+                case "list-style-type: lower-alpha":
+                    numbering = Sink.NUMBERING_LOWER_ALPHA;
+                    break;
+                case "list-style-type: upper-roman":
+                    numbering = Sink.NUMBERING_UPPER_ROMAN;
+                    break;
+                case "list-style-type: lower-roman":
+                    numbering = Sink.NUMBERING_LOWER_ROMAN;
+                    break;
+                case "list-style-type: decimal":
+                    numbering = Sink.NUMBERING_DECIMAL;
+                    break;
+                default:
+                    // ignore all other
             }
         }
 
@@ -1275,13 +1275,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( log );
         warnMessages.put( key, set );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
index 8f0e179..7b88cb6 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/module/DefaultParserModuleManager.java
@@ -45,7 +45,7 @@
     {
         if ( parserModulesValues == null )
         {
-            Map<Class<?>, ParserModule> parserModulesTmp = new LinkedHashMap<Class<?>, ParserModule>();
+            Map<Class<?>, ParserModule> parserModulesTmp = new LinkedHashMap<>();
             for ( ParserModule module : parserModules.values() )
             {
                 parserModulesTmp.put( module.getClass(), module );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/RandomAccessSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/RandomAccessSink.java
index 4a873d4..62f6e07 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/RandomAccessSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/RandomAccessSink.java
@@ -52,9 +52,9 @@
 

     private Sink coreSink;

 

-    private List<Sink> sinks = new ArrayList<Sink>();

+    private List<Sink> sinks = new ArrayList<>();

 

-    private List<ByteArrayOutputStream> outputStreams = new ArrayList<ByteArrayOutputStream>();

+    private List<ByteArrayOutputStream> outputStreams = new ArrayList<>();

 

     private Sink currentSink;

 

diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSet.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSet.java
index 9374dbd..818f6b5 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSet.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSet.java
@@ -96,7 +96,7 @@
 
     static
     {
-        UNDERLINE = new SinkEventAttributeSet( new String[] {DECORATION, "underline"} ).unmodifiable();
+        UNDERLINE = new SinkEventAttributeSet( DECORATION, "underline" ).unmodifiable();
         OVERLINE = new SinkEventAttributeSet( new String[] {DECORATION, "overline"} ).unmodifiable();
         LINETHROUGH = new SinkEventAttributeSet( new String[] {DECORATION, "line-through"} ).unmodifiable();
         BOXED = new SinkEventAttributeSet( new String[] {DECORATION, "boxed"} ).unmodifiable();
@@ -130,7 +130,7 @@
      */
     public SinkEventAttributeSet( int size )
     {
-        attribs = new LinkedHashMap<String, Object>( size );
+        attribs = new LinkedHashMap<>( size );
     }
 
     /**
@@ -149,7 +149,7 @@
             throw new IllegalArgumentException( "Missing attribute!" );
         }
 
-        attribs = new LinkedHashMap<String, Object>( n / 2 );
+        attribs = new LinkedHashMap<>( n / 2 );
 
         for ( int i = 0; i < n; i += 2 )
         {
@@ -165,7 +165,7 @@
      */
     public SinkEventAttributeSet( AttributeSet attributes )
     {
-        attribs = new LinkedHashMap<String, Object>( attributes.getAttributeCount() );
+        attribs = new LinkedHashMap<>( attributes.getAttributeCount() );
 
         Enumeration<?> names = attributes.getAttributeNames();
 
@@ -362,7 +362,7 @@
     public Object clone()
     {
         SinkEventAttributeSet attr = new SinkEventAttributeSet( attribs.size() );
-        attr.attribs = new LinkedHashMap<String, Object>( attribs );
+        attr.attribs = new LinkedHashMap<>( attribs );
 
         if ( resolveParent != null )
         {
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
index 4ad403a..6be2d56 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java
@@ -67,10 +67,10 @@
     private boolean headFlag;
 
     /** Keep track of the main and div tags for content events. */
-    protected Stack<Tag> contentStack = new Stack<Tag>();
+    protected Stack<Tag> contentStack = new Stack<>();
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<Tag>> inlineStack = new Stack<List<Tag>>();
+    protected Stack<List<Tag>> inlineStack = new Stack<>();
 
     /** An indication on if we're inside a paragraph flag. */
     private boolean paragraphFlag;
@@ -135,13 +135,13 @@
     {
         this.writer = new PrintWriter( out );
 
-        this.cellJustifStack = new LinkedList<int[]>();
-        this.isCellJustifStack = new LinkedList<Boolean>();
-        this.cellCountStack = new LinkedList<Integer>();
-        this.tableContentWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionXMLWriterStack = new LinkedList<PrettyPrintXMLWriter>();
-        this.tableCaptionStack = new LinkedList<String>();
+        this.cellJustifStack = new LinkedList<>();
+        this.isCellJustifStack = new LinkedList<>();
+        this.cellCountStack = new LinkedList<>();
+        this.tableContentWriterStack = new LinkedList<>();
+        this.tableCaptionWriterStack = new LinkedList<>();
+        this.tableCaptionXMLWriterStack = new LinkedList<>();
+        this.tableCaptionStack = new LinkedList<>();
 
         init();
     }
@@ -1414,7 +1414,7 @@
 
         if ( boxed )
         {
-            divAtts = new SinkEventAttributeSet( new String[] { Attribute.CLASS.toString(), "source" } );
+            divAtts = new SinkEventAttributeSet( Attribute.CLASS.toString(), "source" );
         }
 
         atts.removeAttribute( SinkEventAttributes.DECORATION );
@@ -1526,14 +1526,14 @@
         String tableCaption = null;
         if ( !this.tableCaptionStack.isEmpty() && this.tableCaptionStack.getLast() != null )
         {
-            tableCaption = this.tableCaptionStack.removeLast().toString();
+            tableCaption = this.tableCaptionStack.removeLast();
         }
 
         if ( tableCaption != null )
         {
             // DOXIA-177
             StringBuilder sb = new StringBuilder();
-            sb.append( tableContent.substring( 0, tableContent.indexOf( Markup.GREATER_THAN ) + 1 ) );
+            sb.append( tableContent, 0, tableContent.indexOf( Markup.GREATER_THAN ) + 1 );
             sb.append( tableCaption );
             sb.append( tableContent.substring( tableContent.indexOf( Markup.GREATER_THAN ) + 1 ) );
 
@@ -1580,7 +1580,7 @@
 
         writeStartTag( HtmlMarkup.TABLE, att );
 
-        this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+        this.cellCountStack.addLast( 0 );
     }
 
     /** {@inheritDoc} */
@@ -1647,7 +1647,7 @@
         if ( !this.cellCountStack.isEmpty() )
         {
             this.cellCountStack.removeLast();
-            this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+            this.cellCountStack.addLast( 0 );
         }
     }
 
@@ -1761,7 +1761,7 @@
             && !this.cellCountStack.isEmpty() )
         {
             int cellCount = Integer.parseInt( this.cellCountStack.removeLast().toString() );
-            this.cellCountStack.addLast( Integer.valueOf( ++cellCount ) );
+            this.cellCountStack.addLast( ++cellCount );
         }
     }
 
@@ -1976,7 +1976,7 @@
     {
         if ( !headFlag )
         {
-            List<Tag> tags = new ArrayList<Tag>();
+            List<Tag> tags = new ArrayList<>();
 
             if ( attributes != null )
             {
@@ -2288,7 +2288,7 @@
             return;
         }
 
-        int tagType = ( (Integer) requiredParams[0] ).intValue();
+        int tagType = (Integer) requiredParams[0];
 
         if ( tagType == ENTITY_TYPE )
         {
@@ -2512,13 +2512,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( mesg );
         warnMessages.put( key, set );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
index bf6c28a..74dcc60 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSink.java
@@ -129,7 +129,7 @@
     protected boolean tableRows = false;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<Tag>> inlineStack = new Stack<List<Tag>>();
+    protected Stack<List<Tag>> inlineStack = new Stack<>();
 
     /** Map of warn messages with a String as key to describe the error type and a Set as value.
      * Using to reduce warn messages. */
@@ -148,13 +148,13 @@
     {
         this.writer = new PrintWriter( out );
 
-        this.cellJustifStack = new LinkedList<int[]>();
-        this.isCellJustifStack = new LinkedList<Boolean>();
-        this.cellCountStack = new LinkedList<Integer>();
-        this.tableContentWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionXMLWriterStack = new LinkedList<PrettyPrintXMLWriter>();
-        this.tableCaptionStack = new LinkedList<String>();
+        this.cellJustifStack = new LinkedList<>();
+        this.isCellJustifStack = new LinkedList<>();
+        this.cellCountStack = new LinkedList<>();
+        this.tableContentWriterStack = new LinkedList<>();
+        this.tableCaptionWriterStack = new LinkedList<>();
+        this.tableCaptionXMLWriterStack = new LinkedList<>();
+        this.tableCaptionStack = new LinkedList<>();
 
         init();
     }
@@ -1232,7 +1232,7 @@
 
         if ( boxed )
         {
-            divAtts = new SinkEventAttributeSet( new String[] { Attribute.CLASS.toString(), "source" } );
+            divAtts = new SinkEventAttributeSet( Attribute.CLASS.toString(), "source" );
         }
 
         atts.removeAttribute( SinkEventAttributes.DECORATION );
@@ -1344,14 +1344,14 @@
         String tableCaption = null;
         if ( !this.tableCaptionStack.isEmpty() && this.tableCaptionStack.getLast() != null )
         {
-            tableCaption = this.tableCaptionStack.removeLast().toString();
+            tableCaption = this.tableCaptionStack.removeLast();
         }
 
         if ( tableCaption != null )
         {
             // DOXIA-177
             StringBuilder sb = new StringBuilder();
-            sb.append( tableContent.substring( 0, tableContent.indexOf( Markup.GREATER_THAN ) + 1 ) );
+            sb.append( tableContent, 0, tableContent.indexOf( Markup.GREATER_THAN ) + 1 );
             sb.append( tableCaption );
             sb.append( tableContent.substring( tableContent.indexOf( Markup.GREATER_THAN ) + 1 ) );
 
@@ -1398,7 +1398,7 @@
 
         writeStartTag( HtmlMarkup.TABLE, att );
 
-        this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+        this.cellCountStack.addLast( 0 );
     }
 
     /** {@inheritDoc} */
@@ -1465,7 +1465,7 @@
         if ( !this.cellCountStack.isEmpty() )
         {
             this.cellCountStack.removeLast();
-            this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+            this.cellCountStack.addLast( 0 );
         }
     }
 
@@ -1579,7 +1579,7 @@
             && !this.cellCountStack.isEmpty() )
         {
             int cellCount = Integer.parseInt( this.cellCountStack.removeLast().toString() );
-            this.cellCountStack.addLast( Integer.valueOf( ++cellCount ) );
+            this.cellCountStack.addLast( ++cellCount );
         }
     }
 
@@ -1794,7 +1794,7 @@
     {
         if ( !headFlag )
         {
-            List<Tag> tags = new ArrayList<Tag>();
+            List<Tag> tags = new ArrayList<>();
 
             if ( attributes != null )
             {
@@ -2073,7 +2073,7 @@
             return;
         }
 
-        int tagType = ( (Integer) requiredParams[0] ).intValue();
+        int tagType = (Integer) requiredParams[0];
 
         if ( tagType == ENTITY_TYPE )
         {
@@ -2297,13 +2297,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( mesg );
         warnMessages.put( key, set );
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/util/DoxiaUtils.java b/doxia-core/src/main/java/org/apache/maven/doxia/util/DoxiaUtils.java
index 155586b..c35628c 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/util/DoxiaUtils.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/util/DoxiaUtils.java
@@ -23,10 +23,10 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 
 import java.net.URL;
 
+import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
@@ -246,21 +246,13 @@
             }
             else if ( !chop )
             {
-                byte[] bytes;
 
-                try
-                {
-                    bytes = String.valueOf( c ).getBytes( "UTF8" );
-                }
-                catch ( UnsupportedEncodingException cannotHappen )
-                {
-                    bytes = new byte[0];
-                }
+                byte[] bytes = String.valueOf( c ).getBytes( StandardCharsets.UTF_8 );
 
-                for ( int j = 0; j < bytes.length; ++j )
+                for ( byte aByte : bytes )
                 {
                     buffer.append( '.' );
-                    buffer.append( String.format( "%02X", bytes[j] ) );
+                    buffer.append( String.format( "%02X", aByte ) );
                 }
             }
         }
@@ -361,9 +353,9 @@
             return new Date();
         }
 
-        for ( int i = 0; i < DATE_PATTERNS.length; i++ )
+        for ( String datePattern : DATE_PATTERNS )
         {
-            DATE_PARSER.applyPattern( DATE_PATTERNS[i] );
+            DATE_PARSER.applyPattern( datePattern );
             DATE_PARSE_POSITION.setIndex( 0 );
             final Date date = DATE_PARSER.parse( str, DATE_PARSE_POSITION );
 
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java b/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java
index 37c9ad8..c60ad85 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/util/HtmlTools.java
@@ -19,7 +19,7 @@
  * under the License.
  */
 
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -62,7 +62,7 @@
         HtmlMarkup.TR, HtmlMarkup.TT, HtmlMarkup.U, HtmlMarkup.UL, HtmlMarkup.VAR
     };
 
-    private static final Map<String, Tag> TAG_MAP = new HashMap<String, Tag>( ALL_TAGS.length );
+    private static final Map<String, Tag> TAG_MAP = new HashMap<>( ALL_TAGS.length );
 
     private static final int ASCII = 0x7E;
 
@@ -88,9 +88,7 @@
      */
     public static Tag getHtmlTag( String tagName )
     {
-        Object t =  TAG_MAP.get( tagName );
-
-        return (Tag) t;
+        return TAG_MAP.get( tagName );
     }
 
     /**
@@ -254,7 +252,7 @@
         }
 
         String tmp = unescaped;
-        List<String> entities = new ArrayList<String>();
+        List<String> entities = new ArrayList<>();
         while ( true )
         {
             int i = tmp.indexOf( "&#x" );
@@ -345,29 +343,22 @@
                     {
                         byte[] bytes;
 
-                        try
+                        if ( isHighSurrogate( c ) )
                         {
-                            if ( isHighSurrogate( c ) )
-                            {
-                                int codePoint = toCodePoint( c, url.charAt( ++i ) );
-                                unicode = toChars( codePoint );
-                                bytes = ( new String( unicode, 0, unicode.length ) ).getBytes( "UTF8" );
-                            }
-                            else
-                            {
-                                unicode[0] = c;
-                                bytes = ( new String( unicode, 0, 1 ) ).getBytes( "UTF8" );
-                            }
+                            int codePoint = toCodePoint( c, url.charAt( ++i ) );
+                            unicode = toChars( codePoint );
+                            bytes = ( new String( unicode, 0, unicode.length ) ).getBytes( StandardCharsets.UTF_8 );
                         }
-                        catch ( UnsupportedEncodingException cannotHappen )
+                        else
                         {
-                            bytes = new byte[0];
+                            unicode[0] = c;
+                            bytes = ( new String( unicode, 0, 1 ) ).getBytes( StandardCharsets.UTF_8 );
                         }
 
-                        for ( int j = 0; j < bytes.length; ++j )
+                        for ( byte aByte : bytes )
                         {
                             encoded.append( '%' );
-                            encoded.append( String.format( "%02X", bytes[j] ) );
+                            encoded.append( String.format( "%02X", aByte ) );
                         }
                     }
             }
diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/util/XmlValidator.java b/doxia-core/src/main/java/org/apache/maven/doxia/util/XmlValidator.java
index 2595b49..3a870de 100644
--- a/doxia-core/src/main/java/org/apache/maven/doxia/util/XmlValidator.java
+++ b/doxia-core/src/main/java/org/apache/maven/doxia/util/XmlValidator.java
@@ -107,11 +107,7 @@
             getLog().debug( "Validating the content..." );
             getXmlReader( hasXsd && hasDoctype ).parse( new InputSource( new StringReader( content ) ) );
         }
-        catch ( IOException e )
-        {
-            throw new ParseException( "Error validating the model: " + e.getMessage(), e );
-        }
-        catch ( SAXException e )
+        catch ( IOException | SAXException e )
         {
             throw new ParseException( "Error validating the model: " + e.getMessage(), e );
         }
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java
index 396fa6e..2cdf688 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java
@@ -173,9 +173,7 @@
 
         assertNotNull( "Could not find resource: " + baseName + "." + extension, is );
 
-        InputStreamReader reader = new InputStreamReader( is );
-
-        return reader;
+        return new InputStreamReader( is );
     }
 
     /**
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/document/DocumentModelTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/document/DocumentModelTest.java
index 130f085..01657ed 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/document/DocumentModelTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/document/DocumentModelTest.java
@@ -350,20 +350,13 @@
 
         DocumentModel documentModel;
 
-        Reader reader = null;
-
-        try
+        try ( Reader reader = ReaderFactory.newXmlReader( testFile ) )
         {
-            reader = ReaderFactory.newXmlReader( testFile );
             documentModel = new DocumentXpp3Reader().read( reader );
         }
         catch ( XmlPullParserException e )
         {
-            throw (IOException) new IOException( "Error parsing document descriptor" ).initCause( e );
-        }
-        finally
-        {
-            IOUtil.close( reader );
+            throw new IOException( "Error parsing document descriptor", e );
         }
 
         return documentModel;
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/EchoMacroTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/EchoMacroTest.java
index 33b5f3f..0825af5 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/EchoMacroTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/EchoMacroTest.java
@@ -44,7 +44,7 @@
      */
     public void testExecute()
     {
-        final Map<String,Object> macroParameters = new HashMap<String,Object>();
+        final Map<String,Object> macroParameters = new HashMap<>();
         macroParameters.put( "paramName", "paramValue" );
         macroParameters.put( "parser", "parserValue" );
         macroParameters.put( "sourceContent", "sourceContentValue" );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/SsiMacroTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/SsiMacroTest.java
index e30bf92..b5c157e 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/SsiMacroTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/SsiMacroTest.java
@@ -44,7 +44,7 @@
         throws MacroExecutionException
     {
 
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "function", "include" );
         macroParameters.put( "file", "include-file.html" );
 
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java
index 2fd13d0..2580cec 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/SwfMacroTest.java
@@ -48,7 +48,7 @@
             throws MacroExecutionException
     {
 
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "src", "src.swf" );
         macroParameters.put( "id", "Movie" );
         macroParameters.put( "width", "50" );
@@ -115,7 +115,7 @@
             throws MacroExecutionException
     {
 
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "src", "src.swf" );
         macroParameters.put( "id", "Movie" );
         macroParameters.put( "width", "50" );
@@ -126,7 +126,7 @@
         macroParameters.put( "play", "false" );
         macroParameters.put( "version", "6" );
         macroParameters.put( "allowScript", "always" );
-        macroParameters.put( "notAString", new Integer(0) );
+        macroParameters.put( "notAString", 0 );
 
 
         SinkEventTestingSink sink = new SinkEventTestingSink();
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/manager/MacroManagerTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/manager/MacroManagerTest.java
index 699c8c9..e1a6462 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/manager/MacroManagerTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/manager/MacroManagerTest.java
@@ -35,7 +35,7 @@
     public void testMacroManager()
         throws Exception
     {
-        MacroManager mm = (MacroManager) lookup( MacroManager.ROLE );
+        MacroManager mm = lookup( MacroManager.ROLE );
 
         assertNotNull( mm );
 
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/snippet/SnippetMacroTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/snippet/SnippetMacroTest.java
index b89d81d..b4cb0c2 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/snippet/SnippetMacroTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/snippet/SnippetMacroTest.java
@@ -48,7 +48,7 @@
     public void testExecute()
         throws MacroExecutionException
     {
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "file", "src/test/resources/macro/snippet/testSnippet.txt" );
         macroParameters.put( "encoding", "UTF-8" );
 
@@ -140,7 +140,7 @@
     public void testIgnoreDownloadError()
         throws Exception
     {
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "debug", "true" );
         macroParameters.put( "ignoreDownloadError", "true" );
         macroParameters.put( "url", "http://foo.bar.com/wine.txt" );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
index 6c8140b..3a59a66 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/macro/toc/TocMacroTest.java
@@ -58,7 +58,7 @@
         XhtmlBaseParser parser = new XhtmlBaseParser();
         parser.setSecondParsing( true );
 
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "parser", parser );
         macroParameters.put( "sourceContent", sourceContent );
         macroParameters.put( "section", "sec1" );
@@ -159,7 +159,7 @@
         XhtmlBaseParser parser = new XhtmlBaseParser();
         parser.setSecondParsing( true );
 
-        Map<String, Object> macroParameters = new HashMap<String, Object>();
+        Map<String, Object> macroParameters = new HashMap<>();
         macroParameters.put( "parser", parser );
         macroParameters.put( "sourceContent", sourceContent );
         macroParameters.put( "section", "sec1" );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java
index 9dbbf81..f4120c1 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/parser/AbstractParserTest.java
@@ -75,19 +75,12 @@
     {
         WellformednessCheckingSink sink = new WellformednessCheckingSink();
 
-        Reader reader = null;
-        try
+        try ( Reader reader = getTestReader( "test", outputExtension() ) )
         {
-            reader = getTestReader( "test", outputExtension() );
-
             createParser().parse( reader, sink );
 
-            assertTrue( "Parser output not well-formed, last offending element: "
-                + sink.getOffender(), sink.isWellformed() );
-        }
-        finally
-        {
-            IOUtil.close( reader );
+            assertTrue( "Parser output not well-formed, last offending element: " + sink.getOffender(),
+                    sink.isWellformed() );
         }
     }
 
@@ -102,24 +95,12 @@
     public final void testDocument()
         throws IOException, ParseException
     {
-        Writer writer = null;
-        Reader reader = null;
-
-        try
+        try ( Writer writer = getTestWriter( "test", "txt" );
+              Reader reader = getTestReader( "test", outputExtension() ) )
         {
-            writer = getTestWriter( "test", "txt" );
-
-            reader = getTestReader( "test", outputExtension() );
-
             Sink sink = new TextSink( writer );
-
             createParser().parse( reader, sink );
         }
-        finally
-        {
-            IOUtil.close( reader );
-            IOUtil.close( writer );
-        }
     }
 
     protected void assertEquals( SinkEventElement element, String name, Object... args )
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java
index ee1ac18..853d37c 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java
@@ -708,7 +708,7 @@
         // DOXIA-374
         SinkEventElement el = it.next();
         assertEquals( "tableRows", el.getName() );
-        assertFalse( ( (Boolean) el.getArgs()[1] ).booleanValue() );
+        assertFalse( (Boolean) el.getArgs()[1] );
 
         assertEquals( "tableCaption", it.next().getName() );
         assertEquals( "tableCaption_", it.next().getName() );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
index 45f8a3d..6b8b8e7 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/parser/XhtmlBaseParserTest.java
@@ -618,7 +618,7 @@
         // DOXIA-374
         SinkEventElement el = it.next();
         assertEquals( "tableRows", el.getName() );
-        assertFalse( ( (Boolean) el.getArgs()[1] ).booleanValue() );
+        assertFalse( (Boolean) el.getArgs()[1] );
 
         assertEquals( "tableCaption", it.next().getName() );
         assertEquals( "tableCaption_", it.next().getName() );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTestCase.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTestCase.java
index 3faa801..5dce1a5 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTestCase.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTestCase.java
@@ -127,9 +127,7 @@
     {
         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "test.apt" );
 
-        InputStreamReader reader = new InputStreamReader( is );
-
-        return reader;
+        return new InputStreamReader( is );
     }
 
     // ----------------------------------------------------------------------
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSetTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSetTest.java
index b580976..3fd137a 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSetTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventAttributeSetTest.java
@@ -56,7 +56,7 @@
     {
         try
         {
-            SinkEventAttributeSet aset = new SinkEventAttributeSet( new String[] {"key"} );
+            SinkEventAttributeSet aset = new SinkEventAttributeSet( "key" );
             fail( "missing attribute value!" );
         }
         catch ( IllegalArgumentException e )
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
index b9d4651..851ab3e 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkEventTestingSink.java
@@ -37,7 +37,7 @@
     extends AbstractSink
 {
     /** The list of sink events. */
-    private final List<SinkEventElement> events = new LinkedList<SinkEventElement>();
+    private final List<SinkEventElement> events = new LinkedList<>();
 
     /**
      * Return the collected list of SinkEventElements.
@@ -218,7 +218,7 @@
     @Override
     public void numberedList( int numbering )
     {
-        addEvent( "numberedList", new Object[] {new Integer( numbering )} );
+        addEvent( "numberedList", new Object[] { numbering } );
     }
 
     @Override
@@ -302,7 +302,7 @@
     @Override
     public void tableRows( int[] justification, boolean grid )
     {
-        addEvent( "tableRows", new Object[] {justification, new Boolean( grid )} );
+        addEvent( "tableRows", new Object[] { justification, grid } );
     }
 
     @Override
@@ -554,7 +554,7 @@
     @Override
     public void verbatim( boolean boxed )
     {
-        addEvent( "verbatim", new Object[] {new Boolean( boxed )} );
+        addEvent( "verbatim", new Object[] { boxed } );
     }
 
     @Override
@@ -879,7 +879,7 @@
     @Override
     public void numberedList( int numbering, SinkEventAttributes attributes )
     {
-        addEvent( "numberedList", new Object[] {new Integer( numbering ), attributes} );
+        addEvent( "numberedList", new Object[] { numbering, attributes } );
     }
 
     @Override
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkUtilsTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkUtilsTest.java
index cf5fa22..964610b 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkUtilsTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkUtilsTest.java
@@ -54,7 +54,7 @@
         result = SinkUtils.getAttributeString( at );
         assertEquals( expResult, result );
 
-        att = new SinkEventAttributeSet( new String[] {"color", "red", "margin-left", "20px"} );
+        att = new SinkEventAttributeSet( "color", "red", "margin-left", "20px" );
 
         at = new SinkEventAttributeSet();
         at.addAttribute( SinkEventAttributeSet.STYLE, att );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/WellformednessCheckingSink.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/WellformednessCheckingSink.java
index 01ddaef..2ad1a5a 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/WellformednessCheckingSink.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/WellformednessCheckingSink.java
@@ -37,9 +37,9 @@
 public class WellformednessCheckingSink
     extends AbstractSink
 {
-    private final Stack<String> elements = new Stack<String>();
+    private final Stack<String> elements = new Stack<>();
 
-    private final List<String> errors = new LinkedList<String>();
+    private final List<String> errors = new LinkedList<>();
 
     @Override
     public void head()
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 4d0723f..0ef7c34 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
@@ -324,8 +324,8 @@
     public void testSectionAttributes()
     {
         final int level = Xhtml5BaseSink.SECTION_LEVEL_1;
-        final SinkEventAttributeSet set = new SinkEventAttributeSet(
-            new String[] {"name", "section name", "class", "foo", "id", "bar"} );
+        final SinkEventAttributeSet set = new SinkEventAttributeSet( "name", "section name", "class", "foo", "id",
+                "bar" );
 
         try
         {
@@ -952,7 +952,7 @@
         checkVerbatimAttributes( attributes, "<div>" + LS + "<pre style=\"bold\"></pre></div>" );
 
         final SinkEventAttributes att =
-            new SinkEventAttributeSet( new String[] {SinkEventAttributes.ID, "id"} );
+            new SinkEventAttributeSet( SinkEventAttributes.ID, "id" );
         checkVerbatimAttributes( att, "<div>" + LS + "<pre id=\"id\"></pre></div>" );
 
         att.addAttribute( Attribute.CLASS, "class" );
@@ -1399,11 +1399,11 @@
      */
     public void testAttributeEntities()
     {
-        final Object[] startTag = new Object[] { new Integer( Xhtml5BaseSink.TAG_TYPE_START ) };
-        final Object[] endTag = new Object[] { new Integer( Xhtml5BaseSink.TAG_TYPE_END ) };
+        final Object[] startTag = new Object[] { Xhtml5BaseSink.TAG_TYPE_START };
+        final Object[] endTag = new Object[] { Xhtml5BaseSink.TAG_TYPE_END };
         final String script = Xhtml5BaseSink.SCRIPT.toString();
-        final SinkEventAttributes src = new SinkEventAttributeSet(
-                new String[] {SinkEventAttributes.SRC.toString(), "http://ex.com/ex.js?v=l&l=e"} );
+        final SinkEventAttributes src = new SinkEventAttributeSet( SinkEventAttributes.SRC.toString(),
+                "http://ex.com/ex.js?v=l&l=e" );
 
         try
         {
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
index 0efe53a..ce71988 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/XhtmlBaseSinkTest.java
@@ -218,8 +218,8 @@
     public void testSectionAttributes()
     {
         final int level = XhtmlBaseSink.SECTION_LEVEL_1;
-        final SinkEventAttributeSet set = new SinkEventAttributeSet(
-            new String[] {"name", "section name", "class", "foo", "id", "bar"} );
+        final SinkEventAttributeSet set = new SinkEventAttributeSet( "name", "section name", "class", "foo", "id",
+                "bar" );
 
         try
         {
@@ -584,7 +584,7 @@
         checkVerbatimAttributes( attributes, "<div>" + LS + "<pre style=\"bold\"></pre></div>" );
 
         final SinkEventAttributes att =
-            new SinkEventAttributeSet( new String[] {SinkEventAttributes.ID, "id"} );
+            new SinkEventAttributeSet( SinkEventAttributes.ID, "id" );
         checkVerbatimAttributes( att, "<div>" + LS + "<pre id=\"id\"></pre></div>" );
 
         att.addAttribute( Attribute.CLASS, "class" );
@@ -952,11 +952,11 @@
      */
     public void testAttributeEntities()
     {
-        final Object[] startTag = new Object[] { new Integer( XhtmlBaseSink.TAG_TYPE_START ) };
-        final Object[] endTag = new Object[] { new Integer( XhtmlBaseSink.TAG_TYPE_END ) };
+        final Object[] startTag = new Object[] { XhtmlBaseSink.TAG_TYPE_START };
+        final Object[] endTag = new Object[] { XhtmlBaseSink.TAG_TYPE_END };
         final String script = XhtmlBaseSink.SCRIPT.toString();
-        final SinkEventAttributes src = new SinkEventAttributeSet(
-                new String[] {SinkEventAttributes.SRC.toString(), "http://ex.com/ex.js?v=l&l=e"} );
+        final SinkEventAttributes src = new SinkEventAttributeSet( SinkEventAttributes.SRC.toString(),
+                "http://ex.com/ex.js?v=l&l=e" );
 
         try
         {
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/util/DoxiaUtilsTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/util/DoxiaUtilsTest.java
index 7b28d8e..b7a6fda 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/util/DoxiaUtilsTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/util/DoxiaUtilsTest.java
@@ -21,6 +21,7 @@
 
 import java.text.ParseException;
 
+import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
 
@@ -198,7 +199,7 @@
     public void testParseDate()
     {
         final int year = 1973;
-        final int month = 1;
+        final int month = Calendar.FEBRUARY;
         final int day = 27;
 
         try
@@ -215,9 +216,9 @@
             assertEquals( feb27, DoxiaUtils.parseDate( "February 27, 1973" ) );
             assertEquals( feb27, DoxiaUtils.parseDate( "19730227" ) );
 
-            assertEquals( new GregorianCalendar( year, 0, 1 ).getTime(), DoxiaUtils.parseDate( "1973" ) );
+            assertEquals( new GregorianCalendar( year, Calendar.JANUARY, 1 ).getTime(), DoxiaUtils.parseDate( "1973" ) );
 
-            final Date feb1 = new GregorianCalendar( year, 1, 1 ).getTime();
+            final Date feb1 = new GregorianCalendar( year, Calendar.FEBRUARY, 1 ).getTime();
             assertEquals( feb1, DoxiaUtils.parseDate( "February 1973" ) );
             assertEquals( feb1, DoxiaUtils.parseDate( "Feb. 1973" ) );
             assertEquals( feb1, DoxiaUtils.parseDate( "February '73" ) );
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
index 69a78f3..7290559 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
@@ -23,7 +23,6 @@
 import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -103,21 +102,17 @@
         final Logger logger =
             ( (DefaultPlexusContainer) getContainer() ).getLoggerManager().getLoggerForComponent( Parser.ROLE );
 
-        for ( Iterator<Map.Entry<String, String>> it = getTestDocuments().entrySet().iterator(); it.hasNext(); )
+        for ( Map.Entry<String, String> entry : getTestDocuments().entrySet() )
         {
-            Map.Entry<String, String> entry = it.next();
-
             if ( logger.isDebugEnabled() )
             {
                 logger.debug( "Validate '" + entry.getKey() + "'" );
             }
 
-            List<ErrorMessage> errors = parseXML( entry.getValue().toString() );
+            List<ErrorMessage> errors = parseXML( entry.getValue() );
 
-            for ( Iterator<ErrorMessage> it2 = errors.iterator(); it2.hasNext(); )
+            for ( ErrorMessage error : errors )
             {
-                ErrorMessage error = it2.next();
-
                 if ( isFailErrorMessage( error.getMessage() ) )
                 {
                     fail( entry.getKey() + EOL + error.toString() );
@@ -399,7 +394,7 @@
 
         MessagesErrorHandler()
         {
-            messages = new ArrayList<ErrorMessage>( 8 );
+            messages = new ArrayList<>( 8 );
         }
 
         /** {@inheritDoc} */
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
index 89d69eb..4a4a6ea 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
@@ -28,7 +28,6 @@
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -57,7 +56,7 @@
 {
 
     /** Simple cache mechanism to load test documents. */
-    private static final Map<String,String> CACHE_DOXIA_TEST_DOCUMENTS = new Hashtable<String,String>();
+    private static final Map<String,String> CACHE_DOXIA_TEST_DOCUMENTS = new Hashtable<>();
 
     /** Maven resource in the doxia-test-docs-XXX.jar */
     private static final String MAVEN_RESOURCE_PATH = "META-INF/maven/org.apache.maven.doxia/doxia-test-docs/";
@@ -87,12 +86,9 @@
         }
 
         Map<String,String> testDocs = getAllTestDocuments();
-        Map<String,String> ret = new Hashtable<String,String>();
-        ret.putAll( testDocs );
-        for ( Iterator<String> it = testDocs.keySet().iterator(); it.hasNext(); )
+        Map<String, String> ret = new Hashtable<>( testDocs );
+        for ( String key : testDocs.keySet() )
         {
-            String key = it.next();
-
             for ( int i = 0; i < getIncludes().length; i++ )
             {
                 if ( !SelectorUtils.matchPath( getIncludes()[i], key.toLowerCase( Locale.ENGLISH ) ) )
@@ -187,9 +183,9 @@
             File testDocsDir = FileUtils.toFile( testJar ).getParentFile();
 
             List<File> files = FileUtils.getFiles( testDocsDir, "**/*.*", FileUtils.getDefaultExcludesAsString(), true );
-            for ( Iterator<File> it = files.iterator(); it.hasNext();)
+            for ( File file1 : files )
             {
-                File file = new File( it.next().toString() );
+                File file = new File( file1.toString() );
 
                 if ( file.getAbsolutePath().contains( "META-INF" ) )
                 {
@@ -197,7 +193,7 @@
                 }
 
                 Reader reader = null;
-                if ( XmlUtil.isXml( file ))
+                if ( XmlUtil.isXml( file ) )
                 {
                     reader = ReaderFactory.newXmlReader( file );
                 }
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptMarkup.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptMarkup.java
index b05230e..70e97b2 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptMarkup.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptMarkup.java
@@ -86,11 +86,10 @@
     String BOLD_START_MARKUP = StringUtils.repeat( String.valueOf( LESS_THAN ), 2 );
 
     /** Syntax for the boxed verbatim start: "+------+" */
-    String BOXED_VERBATIM_START_MARKUP = String.valueOf( PLUS )
-        + StringUtils.repeat( String.valueOf( MINUS ), 6 ) + String.valueOf( PLUS );
+    String BOXED_VERBATIM_START_MARKUP = PLUS + StringUtils.repeat( String.valueOf( MINUS ), 6 ) + PLUS;
 
     /** Syntax for the header start: " -----" */
-    String HEADER_START_MARKUP = String.valueOf( SPACE ) + StringUtils.repeat( String.valueOf( MINUS ), 5 );
+    String HEADER_START_MARKUP = SPACE + StringUtils.repeat( String.valueOf( MINUS ), 5 );
 
     /** Syntax for the horizontal rule: "========" */
     String HORIZONTAL_RULE_MARKUP = StringUtils.repeat( String.valueOf( EQUAL ), 8 );
@@ -111,7 +110,7 @@
     String LINK_START_2_MARKUP = String.valueOf( RIGHT_CURLY_BRACKET );
 
     /** Syntax for the list end: "[]" */
-    String LIST_END_MARKUP = String.valueOf( LEFT_SQUARE_BRACKET ) + String.valueOf( RIGHT_SQUARE_BRACKET );
+    String LIST_END_MARKUP = String.valueOf( LEFT_SQUARE_BRACKET ) + RIGHT_SQUARE_BRACKET;
 
     /** Syntax for the list start: "*" */
     String LIST_START_MARKUP = String.valueOf( STAR );
@@ -126,7 +125,7 @@
     String NON_BOXED_VERBATIM_START_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 6 );
 
     /** Syntax for the non breaking space: "\ " */
-    String NON_BREAKING_SPACE_MARKUP = String.valueOf( BACKSLASH ) + String.valueOf( SPACE );
+    String NON_BREAKING_SPACE_MARKUP = String.valueOf( BACKSLASH ) + SPACE;
 
     /** Syntax for the page break: "\f" */
     String PAGE_BREAK_MARKUP = String.valueOf( PAGE_BREAK );
@@ -138,22 +137,19 @@
     String TABLE_CELL_SEPARATOR_MARKUP = String.valueOf( PIPE );
 
     /** Syntax for the table column, centered style: "-*" */
-    String TABLE_COL_CENTERED_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 )
-        + String.valueOf( STAR );
+    String TABLE_COL_CENTERED_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 ) + STAR;
 
     /** Syntax for the table column, left style: "-+" */
-    String TABLE_COL_LEFT_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 )
-        + String.valueOf( PLUS );
+    String TABLE_COL_LEFT_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 ) + PLUS;
 
     /** Syntax for the table column, right style: "-:" */
-    String TABLE_COL_RIGHT_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 )
-        + String.valueOf( COLON );
+    String TABLE_COL_RIGHT_ALIGNED_MARKUP = StringUtils.repeat( String.valueOf( MINUS ), 2 ) + COLON;
 
     /** Syntax for the table row end: "|" */
     String TABLE_ROW_SEPARATOR_MARKUP = String.valueOf( PIPE );
 
     /** Syntax for the table row start: "*--" */
-    String TABLE_ROW_START_MARKUP = String.valueOf( STAR ) + StringUtils.repeat( String.valueOf( MINUS ), 2 );
+    String TABLE_ROW_START_MARKUP = STAR + StringUtils.repeat( String.valueOf( MINUS ), 2 );
 
     /** Syntax for the boxed verbatim end: "+------+" */
     String BOXED_VERBATIM_END_MARKUP = BOXED_VERBATIM_START_MARKUP;
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
index b69e4e1..479865c 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
@@ -113,7 +113,7 @@
     private static final int COMMENT_BLOCK = 17;
 
     /** String representations of event ids */
-    private static final String TYPE_NAMES[] = {
+    private static final String[] TYPE_NAMES = {
         "TITLE",
         "SECTION1",
         "SECTION2",
@@ -1622,13 +1622,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( msg );
         warnMessages.put( key, set );
@@ -2616,9 +2616,9 @@
         {
             // Skip empty row (a decorative line).
             boolean traversed = false;
-            for ( int i = 0; i < cells.length; ++i )
+            for ( StringBuilder cell1 : cells )
             {
-                if ( cells[i].length() > 0 )
+                if ( cell1.length() > 0 )
                 {
                     traversed = true;
                     break;
@@ -2906,7 +2906,7 @@
 
             String macroId = params[0];
 
-            Map<String, Object> parameters = new HashMap<String, Object>();
+            Map<String, Object> parameters = new HashMap<>();
 
             for ( int i = 1; i < params.length; i++ )
             {
diff --git a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
index b232c4e..2fa1d27 100644
--- a/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
+++ b/doxia-modules/doxia-module-apt/src/main/java/org/apache/maven/doxia/module/apt/AptSink.java
@@ -96,7 +96,7 @@
     private final PrintWriter writer;
 
     /**  justification of table cells. */
-    private int cellJustif[];
+    private int[] cellJustif;
 
     /**  a line of a row in a table. */
     private String rowLine;
@@ -108,7 +108,7 @@
     private final Stack<String> listStyles;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     // ----------------------------------------------------------------------
     // Public protected methods
@@ -123,7 +123,7 @@
     protected AptSink( Writer writer )
     {
         this.writer = new PrintWriter( writer );
-        this.listStyles = new Stack<String>();
+        this.listStyles = new Stack<>();
 
         init();
     }
@@ -453,13 +453,13 @@
         String style = listStyles.peek();
         if ( style.equals( String.valueOf( STAR ) ) )
         {
-            write( EOL + listNestingIndent + String.valueOf( STAR ) + String.valueOf( SPACE ) );
+            write( EOL + listNestingIndent + STAR + SPACE );
         }
         else
         {
-            write( EOL + listNestingIndent + String.valueOf( LEFT_SQUARE_BRACKET )
-                + String.valueOf( LEFT_SQUARE_BRACKET ) + style + String.valueOf( RIGHT_SQUARE_BRACKET )
-                + String.valueOf( RIGHT_SQUARE_BRACKET ) + String.valueOf( SPACE ) );
+            write( EOL + listNestingIndent + LEFT_SQUARE_BRACKET
+                + LEFT_SQUARE_BRACKET + style + RIGHT_SQUARE_BRACKET
+                + RIGHT_SQUARE_BRACKET + SPACE );
         }
         itemFlag = true;
     }
@@ -617,7 +617,7 @@
     }
 
     /** {@inheritDoc} */
-    public void tableRows( int justification[], boolean grid )
+    public void tableRows( int[] justification, boolean grid )
     {
         cellJustif = justification;
         gridFlag = grid;
@@ -827,7 +827,7 @@
     {
         if ( !headerFlag )
         {
-            List<String> tags = new ArrayList<String>();
+            List<String> tags = new ArrayList<>();
 
             if ( attributes != null )
             {
diff --git a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
index 25b2e5f..d9aa56f 100644
--- a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
+++ b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptParserTest.java
@@ -51,7 +51,7 @@
     {
         super.setUp();
 
-        parser = (AptParser) lookup( Parser.ROLE, "apt" );
+        parser = lookup( Parser.ROLE, "apt" );
     }
 
     /** {@inheritDoc} */
@@ -88,7 +88,7 @@
     {
         String linebreak = parseFileToAptSink( "test/linebreak" );
 
-        assertTrue( linebreak.indexOf( "Line\\" + EOL + "break." ) != -1 );
+        assertTrue( linebreak.contains( "Line\\" + EOL + "break." ) );
     }
 
     /** @throws Exception  */
@@ -97,7 +97,7 @@
     {
         String macro = parseFileToAptSink( "test/macro" );
 
-        assertTrue( macro.indexOf( "<modelVersion\\>4.0.0\\</modelVersion\\>" ) != -1 );
+        assertTrue( macro.contains( "<modelVersion\\>4.0.0\\</modelVersion\\>" ) );
     }
 
     /** @throws Exception  */
@@ -116,19 +116,11 @@
     {
         // DOXIA-259
 
-        Reader reader = null;
         SinkEventTestingSink sink = new SinkEventTestingSink();
-
-        try
+        try ( Reader reader = getTestReader( "test/snippet" ) )
         {
-            reader = getTestReader( "test/snippet" );
-
             createParser().parse( reader, sink );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
 
         Iterator<SinkEventElement> it = sink.getEventList().iterator();
 
@@ -161,8 +153,8 @@
         String toc = parseFileToAptSink( "test/toc" );
 
         // No section, only subsection 1 and 2
-        assertTrue( toc.indexOf( "* {{{SubSection_1.1}SubSection 1.1}}" ) != -1 );
-        assertTrue( toc.indexOf( "* {{{SubSection_1.1.2.1.1}SubSection 1.1.2.1.1}}" ) == -1 );
+        assertTrue( toc.contains( "* {{{SubSection_1.1}SubSection 1.1}}" ) );
+        assertTrue( !toc.contains( "* {{{SubSection_1.1.2.1.1}SubSection 1.1.2.1.1}}" ) );
     }
 
     /**
diff --git a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
index 2a946b8..e41855c 100644
--- a/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
+++ b/doxia-modules/doxia-module-apt/src/test/java/org/apache/maven/doxia/module/apt/AptSinkTest.java
@@ -121,22 +121,19 @@
     /** {@inheritDoc} */
     protected String getSection3Block( String title )
     {
-        return EOL + StringUtils.repeat( String.valueOf( AptMarkup.SECTION_TITLE_START_MARKUP ), 2 )
-                + title + EOL + EOL + EOL;
+        return EOL + StringUtils.repeat( AptMarkup.SECTION_TITLE_START_MARKUP, 2 ) + title + EOL + EOL + EOL;
     }
 
     /** {@inheritDoc} */
     protected String getSection4Block( String title )
     {
-        return EOL + StringUtils.repeat( String.valueOf( AptMarkup.SECTION_TITLE_START_MARKUP ), 3 )
-                + title + EOL + EOL + EOL;
+        return EOL + StringUtils.repeat( AptMarkup.SECTION_TITLE_START_MARKUP, 3 ) + title + EOL + EOL + EOL;
     }
 
     /** {@inheritDoc} */
     protected String getSection5Block( String title )
     {
-        return EOL + StringUtils.repeat( String.valueOf( AptMarkup.SECTION_TITLE_START_MARKUP ), 4 )
-                + title + EOL + EOL + EOL;
+        return EOL + StringUtils.repeat( AptMarkup.SECTION_TITLE_START_MARKUP, 4 ) + title + EOL + EOL + EOL;
     }
 
     /** {@inheritDoc} */
@@ -313,7 +310,7 @@
     /** {@inheritDoc} */
     protected String getLineBreakBlock()
     {
-        return String.valueOf( AptMarkup.BACKSLASH ) + EOL;
+        return AptMarkup.BACKSLASH + EOL;
     }
 
     /** {@inheritDoc} */
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
index da3d868..f63acd0 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceParser.java
@@ -68,7 +68,7 @@
     {
         init();
 
-        List<Block> blocks = new ArrayList<Block>();
+        List<Block> blocks = new ArrayList<>();
 
         String line;
 
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
index 4aa968a..0f9e657 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/ConfluenceSink.java
@@ -65,7 +65,7 @@
     private boolean monospacedFlag;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     /** An indication on if we're in verbatim box mode. */
     private boolean verbatimBoxedFlag;
@@ -88,7 +88,7 @@
     protected ConfluenceSink( Writer writer )
     {
         this.out = new PrintWriter( writer );
-        this.listStyles = new Stack<String>();
+        this.listStyles = new Stack<>();
 
         init();
     }
@@ -433,7 +433,7 @@
     {
         if ( !headFlag )
         {
-            List<String> tags = new ArrayList<String>();
+            List<String> tags = new ArrayList<>();
 
             if ( attributes != null )
             {
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java
index 738d279..dfaef5f 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ChildBlocksBuilder.java
@@ -49,7 +49,7 @@
 
     private boolean insideSup = false;
 
-    private List<Block> blocks = new ArrayList<Block>();
+    private List<Block> blocks = new ArrayList<>();
 
     private StringBuilder text = new StringBuilder();
 
@@ -74,7 +74,7 @@
      */
     public List<Block> getBlocks()
     {
-        List<Block> specialBlocks = new ArrayList<Block>();
+        List<Block> specialBlocks = new ArrayList<>();
 
         for ( int i = 0; i < input.length(); i++ )
         {
@@ -382,7 +382,7 @@
 
     private List<Block> getList( Block block, List<Block> currentBlocks )
     {
-        List<Block> list = new ArrayList<Block>();
+        List<Block> list = new ArrayList<>();
 
         if ( insideBold || insideItalic || insideMonospaced )
         {
@@ -400,10 +400,10 @@
 
         if ( currentBlocks.isEmpty() && StringUtils.isEmpty( txt ) )
         {
-            return new ArrayList<Block>();
+            return new ArrayList<>();
         }
 
-        ArrayList<Block> list = new ArrayList<Block>();
+        ArrayList<Block> list = new ArrayList<>();
 
         if ( !insideBold && !insideItalic && !insideMonospaced )
         {
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/DefinitionListBlockParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/DefinitionListBlockParser.java
index 93b4948..acd70a1 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/DefinitionListBlockParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/DefinitionListBlockParser.java
@@ -54,7 +54,7 @@
         {
             line = line.substring( index + 6 );
 
-            while ( !( line.indexOf( "}" ) >= 0 ) && line != null )
+            while ( !( line.contains( "}" ) ) && line != null )
             {
                 append( title, line );
                 line = source.getNextLine();
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/FigureBlockParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/FigureBlockParser.java
index 32df7fb..9e63242 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/FigureBlockParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/FigureBlockParser.java
@@ -42,7 +42,7 @@
         throws ParseException
     {
         String image = line.substring( 1, line.lastIndexOf( "!" ) );
-        if ( image.indexOf( "|" ) >= 0 )
+        if ( image.contains( "|" ) )
         {
             // DOXIA-303: handle figure attributes
             image = image.substring( 0, image.indexOf( "|" ) );
@@ -95,7 +95,7 @@
             }
             else
             {
-                text.append( " " + line.trim() );
+                text.append( " " ).append( line.trim() );
             }
 
         }
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
index 0bcdb86..59735c5 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/ParagraphBlockParser.java
@@ -106,9 +106,8 @@
             }
 
             boolean accepted = false;
-            for ( int i = 0; i < parsers.length; i++ )
+            for ( BlockParser parser : parsers )
             {
-                BlockParser parser = parsers[i];
                 if ( parser.accept( line, source ) )
                 {
                     accepted = true;
@@ -129,7 +128,7 @@
             }
             else
             {
-                text.append( " " + line.trim() );
+                text.append( " " ).append( line.trim() );
             }
 
         }
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
index d65d292..2ca8cbe 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/ListBlockParser.java
@@ -77,7 +77,7 @@
             }
             else
             {
-                text.append( " " + line.trim() );
+                text.append( " " ).append( line.trim() );
             }
 
         }
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeComponent.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeComponent.java
index 52cf20d..1b3297a 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeComponent.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeComponent.java
@@ -30,7 +30,7 @@
 {
     private static final String EOL = System.getProperty( "line.separator" );
 
-    private List<TreeComponent> children = new ArrayList<TreeComponent>();
+    private List<TreeComponent> children = new ArrayList<>();
 
     private String text;
 
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeListBuilder.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeListBuilder.java
index 74695e7..c775f1a 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeListBuilder.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/list/TreeListBuilder.java
@@ -110,11 +110,11 @@
 
     private List<Block> getListItems( TreeComponent tc )
     {
-        List<Block> blocks = new ArrayList<Block>();
+        List<Block> blocks = new ArrayList<>();
 
         for ( TreeComponent child : tc.getChildren() )
         {
-            List<Block> childBlocks = new ArrayList<Block>();
+            List<Block> childBlocks = new ArrayList<>();
 
             if ( child.getFather() != null )
             {
diff --git a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
index 34f3e4e..6c104a2 100644
--- a/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
+++ b/doxia-modules/doxia-module-confluence/src/main/java/org/apache/maven/doxia/module/confluence/parser/table/TableBlockParser.java
@@ -85,7 +85,7 @@
             throw new IllegalAccessError( "call accept before this ;)" );
         }
 
-        List<Block> rows = new ArrayList<Block>();
+        List<Block> rows = new ArrayList<>();
 
         String l = line;
 
@@ -93,19 +93,19 @@
         {
             l = l.substring( 0, l.lastIndexOf( "|" ) );
 
-            List<Block> cells = new ArrayList<Block>();
+            List<Block> cells = new ArrayList<>();
 
             if ( l.startsWith( "||" ) )
             {
                 String[] text = StringUtils.split( l, "||" );
 
-                for ( int i = 0; i < text.length; i++ )
+                for ( String s : text )
                 {
-                    List<Block> textBlocks = new ArrayList<Block>();
+                    List<Block> textBlocks = new ArrayList<>();
 
-                    textBlocks.add( parseLine( text[i], new ByLineReaderSource( new StringReader( EMPTY_STRING ) ) ) );
+                    textBlocks.add( parseLine( s, new ByLineReaderSource( new StringReader( EMPTY_STRING ) ) ) );
 
-                    List<Block> blocks = new ArrayList<Block>();
+                    List<Block> blocks = new ArrayList<>();
 
                     blocks.add( new BoldBlock( textBlocks ) );
 
@@ -116,7 +116,7 @@
             {
                 int it = 0;
                 String[] text = StringUtils.split( l, "|" );
-                List<String> texts = new LinkedList<String>();
+                List<String> texts = new LinkedList<>();
 
                 while ( it < text.length )
                 {
@@ -135,7 +135,7 @@
 
                 for ( String pText : texts )
                 {
-                    List<Block> blocks = new ArrayList<Block>();
+                    List<Block> blocks = new ArrayList<>();
 
                     blocks.add( parseLine( pText, new ByLineReaderSource( new StringReader( EMPTY_STRING ) ) ) );
 
diff --git a/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java b/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
index 3b39610..5028dd4 100644
--- a/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
+++ b/doxia-modules/doxia-module-confluence/src/test/java/org/apache/maven/doxia/module/confluence/ConfluenceParserTest.java
@@ -58,7 +58,7 @@
     {
         super.setUp();
 
-        parser = (ConfluenceParser) lookup( Parser.ROLE, "confluence" );
+        parser = lookup( Parser.ROLE, "confluence" );
 
         output = null;
         reader = null;
@@ -667,11 +667,11 @@
         lines = StringUtils.replace( lines, "\n", EOL );
         if ( message != null )
         {
-            assertTrue( message, result.indexOf( lines ) != -1 );
+            assertTrue( message, result.contains( lines ) );
         }
         else
         {
-            assertTrue( result.indexOf( lines ) != -1 );
+            assertTrue( result.contains( lines ) );
         }
     }
 
diff --git a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
index 1043c23..5267118 100644
--- a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
+++ b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
@@ -68,50 +68,50 @@
     /**
      * A selective stack of parent elements
      */
-    private final Stack<String> parent = new Stack<String>();
+    private final Stack<String> parent = new Stack<>();
 
     /**
      * The list of DocBook elements that introduce a new level of hierarchy.
      */
-    private static final Collection<String> HIER_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> HIER_ELEMENTS = new HashSet<>();
 
     /**
      * Simplified DocBook elements that are direct children of &lt;article&gt;
      * and that should be emitted into the Sink's head.
      */
-    private static final Collection<String> META_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> META_ELEMENTS = new HashSet<>();
 
     /**
      * Simplified DocBook elements that occur within &lt;articleinfo&gt;
      * and that are currently recognized by the parser.
      */
-    private static final Collection<String> ARTICLEINFO_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> ARTICLEINFO_ELEMENTS = new HashSet<>();
 
     /**
      * The list of DocBook elements that will be rendered verbatim
      */
-    private static final Collection<String> VERBATIM_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> VERBATIM_ELEMENTS = new HashSet<>();
 
     /**
      * The list of DocBook elements that will be rendered inline and bold
      */
-    private static final Collection<String> BOLD_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> BOLD_ELEMENTS = new HashSet<>();
 
     /**
      * The list of DocBook elements that will be rendered inline and italic
      */
-    private static final Collection<String> ITALIC_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> ITALIC_ELEMENTS = new HashSet<>();
 
     /**
      * The list of DocBook elements that will be rendered inline and monospace
      */
-    private static final Collection<String> MONOSPACE_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> MONOSPACE_ELEMENTS = new HashSet<>();
 
     /**
      * The list of DocBook elements that may be ignored, either because they don't
      * require any special processing or because they are not yet implemented.
      */
-    private static final Collection<String> IGNORABLE_ELEMENTS = new HashSet<String>();
+    private static final Collection<String> IGNORABLE_ELEMENTS = new HashSet<>();
     static
     {
         META_ELEMENTS.add( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() );
@@ -495,28 +495,26 @@
     {
         final String text = parser.getText();
 
-        if ( "PB".equals( text.trim() ) )
+        switch ( text.trim() )
         {
-            sink.pageBreak();
-        }
-        else if ( "HR".equals( text.trim() ) )
-        {
-            sink.horizontalRule();
-        }
-        else if ( "LB".equals( text.trim() ) )
-        {
-            sink.lineBreak();
-        }
-        else if ( "anchor_end".equals( text.trim() ) )
-        {
-            sink.anchor_();
-        }
-        else
-        {
-            if ( isEmitComments() )
-            {
-                sink.comment( text );
-            }
+            case "PB":
+                sink.pageBreak();
+                break;
+            case "HR":
+                sink.horizontalRule();
+                break;
+            case "LB":
+                sink.lineBreak();
+                break;
+            case "anchor_end":
+                sink.anchor_();
+                break;
+            default:
+                if ( isEmitComments() )
+                {
+                    sink.comment( text );
+                }
+                break;
         }
     }
 
diff --git a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
index da91a8e..57d3eb2 100644
--- a/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
+++ b/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
@@ -154,7 +154,7 @@
     private String encoding;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     /** Map of warn messages with a String as key to describe the error type and a Set as value.
      * Using to reduce warn messages. */
@@ -217,7 +217,7 @@
      * @return The escaped text.
      * @deprecated Use HtmlTools#escapeHTML(String,boolean).
      */
-    public static final String escapeSGML( String text, boolean xmlMode )
+    public static String escapeSGML( String text, boolean xmlMode )
     {
         return HtmlTools.escapeHTML( text, xmlMode );
     }
@@ -1297,10 +1297,10 @@
 
         writeStartTag( SimplifiedDocbookMarkup.TGROUP_TAG, att );
 
-        for ( int i = 0; i < justification.length; ++i )
+        for ( int i1 : justification )
         {
             String justif;
-            switch ( justification[i] )
+            switch ( i1 )
             {
                 case Sink.JUSTIFY_LEFT:
                     justif = "left";
@@ -1544,7 +1544,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<String> tags = new ArrayList<String>();
+        List<String> tags = new ArrayList<>();
 
         if ( attributes != null )
         {
@@ -1797,13 +1797,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( msg );
         warnMessages.put( key, set );
diff --git a/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java b/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java
index 3c90c92..06dd69a 100644
--- a/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java
+++ b/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookParserTest.java
@@ -48,7 +48,7 @@
     {
         super.setUp();
 
-        parser = (DocBookParser) lookup( Parser.ROLE, "docbook" );
+        parser = lookup( Parser.ROLE, "docbook" );
     }
 
     /** {@inheritDoc} */
diff --git a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
index c2a296e..595e6ec 100644
--- a/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
+++ b/doxia-modules/doxia-module-fml/src/main/java/org/apache/maven/doxia/module/fml/FmlParser.java
@@ -87,7 +87,7 @@
     private String macroName;
 
     /** The macro parameters. */
-    private Map<String, Object> macroParameters = new HashMap<String, Object>();
+    private Map<String, Object> macroParameters = new HashMap<>();
 
     /** {@inheritDoc} */
     public void parse( Reader source, Sink sink )
@@ -185,9 +185,7 @@
         else if ( parser.getName().equals( TITLE.toString() ) )
         {
             buffer = new StringBuilder();
-
-            buffer.append( String.valueOf( LESS_THAN ) ).append( parser.getName() )
-                .append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( parser.getName() ).append( GREATER_THAN );
         }
         else if ( parser.getName().equals( FAQ_TAG.toString() ) )
         {
@@ -213,16 +211,12 @@
         else if ( parser.getName().equals( QUESTION_TAG.toString() ) )
         {
             buffer = new StringBuilder();
-
-            buffer.append( String.valueOf( LESS_THAN ) ).append( parser.getName() )
-                .append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( parser.getName() ).append( GREATER_THAN );
         }
         else if ( parser.getName().equals( ANSWER_TAG.toString() ) )
         {
             buffer = new StringBuilder();
-
-            buffer.append( String.valueOf( LESS_THAN ) ).append( parser.getName() )
-                .append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( parser.getName() ).append( GREATER_THAN );
 
         }
 
@@ -240,23 +234,23 @@
         }
         else if ( buffer != null )
         {
-            buffer.append( String.valueOf( LESS_THAN ) ).append( parser.getName() );
+            buffer.append( LESS_THAN ).append( parser.getName() );
 
             int count = parser.getAttributeCount();
 
             for ( int i = 0; i < count; i++ )
             {
-                buffer.append( String.valueOf( SPACE ) ).append( parser.getAttributeName( i ) );
+                buffer.append( SPACE ).append( parser.getAttributeName( i ) );
 
-                buffer.append( String.valueOf( EQUAL ) ).append( String.valueOf( QUOTE ) );
+                buffer.append( EQUAL ).append( QUOTE );
 
                 // TODO: why are attribute values HTML-encoded?
                 buffer.append( HtmlTools.escapeHTML( parser.getAttributeValue( i ) ) );
 
-                buffer.append( String.valueOf( QUOTE ) );
+                buffer.append( QUOTE );
             }
 
-            buffer.append( String.valueOf( GREATER_THAN ) );
+            buffer.append( GREATER_THAN );
         }
     }
 
@@ -295,8 +289,7 @@
                     + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")" );
             }
 
-            buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
-                .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( SLASH ).append( parser.getName() ).append( GREATER_THAN );
 
             currentFaq.setQuestion( buffer.toString() );
 
@@ -310,8 +303,7 @@
                     + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")" );
             }
 
-            buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
-                .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( SLASH ).append( parser.getName() ).append( GREATER_THAN );
 
             currentFaq.setAnswer( buffer.toString() );
 
@@ -325,8 +317,7 @@
                     + parser.getLineNumber() + ":" + parser.getColumnNumber() + ")" );
             }
 
-            buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
-                .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( SLASH ).append( parser.getName() ).append( GREATER_THAN );
 
             currentPart.setTitle( buffer.toString() );
 
@@ -355,8 +346,7 @@
                 buffer.deleteCharAt( buffer.length() - 1 );
             }
 
-            buffer.append( String.valueOf( LESS_THAN ) ).append( String.valueOf( SLASH ) )
-                .append( parser.getName() ).append( String.valueOf( GREATER_THAN ) );
+            buffer.append( LESS_THAN ).append( SLASH ).append( parser.getName() ).append( GREATER_THAN );
         }
     }
 
@@ -463,7 +453,7 @@
 
             if ( macroParameters == null )
             {
-                macroParameters = new HashMap<String, Object>();
+                macroParameters = new HashMap<>();
             }
 
             if ( StringUtils.isEmpty( macroName ) )
@@ -719,13 +709,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( msg );
         warnMessages.put( key, set );
diff --git a/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlParserTest.java b/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlParserTest.java
index 176650c..b32c171 100644
--- a/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlParserTest.java
+++ b/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlParserTest.java
@@ -26,7 +26,6 @@
 import java.io.Writer;
 
 import java.util.Iterator;
-import java.util.List;
 import java.util.regex.Pattern;
 
 import org.apache.maven.doxia.parser.AbstractParserTest;
@@ -53,7 +52,7 @@
     {
         super.setUp();
 
-        parser = (FmlParser) lookup( Parser.ROLE, "fml" );
+        parser = lookup( Parser.ROLE, "fml" );
 
         // AbstractXmlParser.CachedFileEntityResolver downloads DTD/XSD files in ${java.io.tmpdir}
         // Be sure to delete them
@@ -95,17 +94,10 @@
     {
         SinkEventTestingSink sink = new SinkEventTestingSink();
 
-        Reader reader = null;
-        try
+        try ( Reader reader = getTestReader( "simpleFaq" ) )
         {
-            reader = getTestReader( "simpleFaq" );
-
             createParser().parse( reader, sink );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
 
         Iterator<SinkEventElement> it = sink.getEventList().iterator();
 
@@ -299,7 +291,7 @@
             IOUtil.close( reader );
         }
 
-        assertTrue( content.indexOf( "<a name=\"macro-definition\">Macro Question</a>" ) != -1 );
+        assertTrue( content.contains( "<a name=\"macro-definition\">Macro Question</a>" ) );
     }
 
     private void assertTextEvent( SinkEventElement textEvt, String string )
diff --git a/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlValidatorTest.java b/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlValidatorTest.java
index d5d2c49..d783e70 100644
--- a/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlValidatorTest.java
+++ b/doxia-modules/doxia-module-fml/src/test/java/org/apache/maven/doxia/module/fml/FmlValidatorTest.java
@@ -56,7 +56,7 @@
             String root = matcher.group( 1 );
             String value = matcher.group( 2 );
 
-            if ( value.indexOf( FML_XSD.getName() ) == -1 )
+            if ( !value.contains( FML_XSD.getName() ) )
             {
                 String faqs =
                     "<" + root + " xmlns=\"" + FmlMarkup.FML_NAMESPACE + "\""
diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
index af42ce9..8852e66 100644
--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
+++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
@@ -124,7 +124,7 @@
     /**
      * Used to get the current position in the TOC.
      */
-    private final Stack<NumberedListItem> tocStack = new Stack<NumberedListItem>();
+    private final Stack<NumberedListItem> tocStack = new Stack<>();
 
     /**
      * Constructor.
@@ -346,7 +346,7 @@
             DocumentTOCItem tocItem = new DocumentTOCItem();
             tocItem.setName( this.docModel.getToc().getName() );
             tocItem.setRef( "./toc" );
-            List<DocumentTOCItem> items = new LinkedList<DocumentTOCItem>();
+            List<DocumentTOCItem> items = new LinkedList<>();
             if ( this.tocPosition == TOC_START )
             {
                 items.add( tocItem );
@@ -389,7 +389,7 @@
             idName = idName.substring( 0, idName.lastIndexOf( "." ) );
         }
 
-        while ( idName.indexOf( "//" ) != -1 )
+        while ( idName.contains( "//" ) )
         {
             idName = StringUtils.replace( idName, "//", "/" );
         }
@@ -493,7 +493,7 @@
             return;
         }
 
-        while ( name.indexOf( "//" ) != -1 )
+        while ( name.contains( "//" ) )
         {
             name = StringUtils.replace( name, "//", "/" );
         }
@@ -567,7 +567,7 @@
 
         String base = docName.substring( 0, docName.lastIndexOf( "/" ) );
 
-        if ( base.indexOf( "/" ) != -1 )
+        if ( base.contains( "/" ) )
         {
             while ( anchor.startsWith( "../" ) )
             {
@@ -611,7 +611,7 @@
                 else
                 {
                     anchor = anchor.substring( 0, dot ) + "#" + HtmlTools.encodeId(
-                        anchor.substring( hash + 1, anchor.length() ) );
+                        anchor.substring( hash + 1 ) );
                 }
             }
             else
@@ -726,7 +726,7 @@
      */
     protected String getHeaderText()
     {
-        return Integer.toString( chapter ) + "   " + docTitle;
+        return chapter + "   " + docTitle;
     }
 
     /**
@@ -767,7 +767,7 @@
     @Override
     protected String getChapterString()
     {
-        return Integer.toString( chapter ) + ".";
+        return chapter + ".";
     }
 
     @Override
@@ -1279,7 +1279,7 @@
 
         if ( atts == null )
         {
-            return new SinkEventAttributeSet( new String[]{ SinkEventAttributes.HEIGHT, COVER_HEADER_HEIGHT } );
+            return new SinkEventAttributeSet( SinkEventAttributes.HEIGHT, COVER_HEADER_HEIGHT );
         }
 
         // FOP dpi: 72
diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoConfiguration.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoConfiguration.java
index 93ddd50..9895eaa 100644
--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoConfiguration.java
+++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoConfiguration.java
@@ -83,9 +83,7 @@
         }
         catch ( ConfigurationException cex )
         {
-            IOException ioe = new IOException();
-            ioe.initCause( cex );
-            throw ioe;
+            throw new IOException( cex );
         }
 
         loadDefaultConfig(); // this adds default values that are missing from above
@@ -153,7 +151,7 @@
     private void addAttributes( String attributeId )
     {
         int index = sets.indexOf( attributeId );
-        String keybase = "xsl:attribute-set(" + String.valueOf( index ) + ")";
+        String keybase = "xsl:attribute-set(" + index + ")";
 
         Object prop = config.getProperty( keybase + ".xsl:attribute" );
 
@@ -189,16 +187,11 @@
         {
             config.load( ReaderFactory.newXmlReader( getClass().getResourceAsStream( "/fo-styles.xslt" ) ) );
         }
-        catch ( ConfigurationException cex )
+        catch ( ConfigurationException | IOException cex )
         {
             // this should not happen
             throw new RuntimeException( cex );
         }
-        catch ( IOException e )
-        {
-            // this should not happen
-            throw new RuntimeException( e );
-        }
 
         this.sets = config.getList( "xsl:attribute-set[@name]" );
         reset();
diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
index 2a448a3..8949fce 100644
--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
+++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoSink.java
@@ -116,7 +116,7 @@
     private final LinkedList<String> tableCaptionStack;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<Tag>> inlineStack = new Stack<List<Tag>>();
+    protected Stack<List<Tag>> inlineStack = new Stack<>();
 
     /** Map of warn messages with a String as key to describe the error type and a Set as value.
      * Using to reduce warn messages. */
@@ -167,15 +167,15 @@
         this.languageId = languageId;
         this.config = new FoConfiguration();
 
-        this.listStack = new Stack<NumberedListItem>();
-        this.tableGridStack = new LinkedList<Boolean>();
-        this.cellJustifStack = new LinkedList<int[]>();
-        this.isCellJustifStack = new LinkedList<Boolean>();
-        this.cellCountStack = new LinkedList<Integer>();
-        this.tableContentWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionWriterStack = new LinkedList<StringWriter>();
-        this.tableCaptionXMLWriterStack = new LinkedList<PrettyPrintXMLWriter>();
-        this.tableCaptionStack = new LinkedList<String>();
+        this.listStack = new Stack<>();
+        this.tableGridStack = new LinkedList<>();
+        this.cellJustifStack = new LinkedList<>();
+        this.isCellJustifStack = new LinkedList<>();
+        this.cellCountStack = new LinkedList<>();
+        this.tableContentWriterStack = new LinkedList<>();
+        this.tableCaptionWriterStack = new LinkedList<>();
+        this.tableCaptionXMLWriterStack = new LinkedList<>();
+        this.tableCaptionStack = new LinkedList<>();
 
         setNameSpace( "fo" );
     }
@@ -965,7 +965,7 @@
         if ( !this.tableCaptionStack.isEmpty() && this.tableCaptionStack.getLast() != null )
         {
             paragraph( SinkEventAttributeSet.CENTER );
-            write( this.tableCaptionStack.removeLast().toString() );
+            write( this.tableCaptionStack.removeLast() );
             paragraph_();
         }
     }
@@ -973,10 +973,10 @@
     /** {@inheritDoc} */
     public void tableRows( int[] justification, boolean grid )
     {
-        this.tableGridStack.addLast( Boolean.valueOf( grid ) );
+        this.tableGridStack.addLast( grid );
         this.cellJustifStack.addLast( justification );
-        this.isCellJustifStack.addLast( Boolean.valueOf( true ) );
-        this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+        this.isCellJustifStack.addLast( Boolean.TRUE );
+        this.cellCountStack.addLast( 0 );
         writeEOL();
         writeStartTag( TABLE_BODY_TAG );
     }
@@ -997,7 +997,7 @@
         // TODO spacer rows
         writeStartTag( TABLE_ROW_TAG, "table.body.row" );
         this.cellCountStack.removeLast();
-        this.cellCountStack.addLast( Integer.valueOf( 0 ) );
+        this.cellCountStack.addLast( 0 );
     }
 
     /** {@inheritDoc} */
@@ -1127,7 +1127,7 @@
         if ( this.isCellJustifStack.getLast().equals( Boolean.TRUE ) )
         {
             int cellCount = Integer.parseInt( this.cellCountStack.removeLast().toString() );
-            this.cellCountStack.addLast( Integer.valueOf( ++cellCount ) );
+            this.cellCountStack.addLast( ++cellCount );
         }
     }
 
@@ -1237,9 +1237,7 @@
         else
         {
             // treat everything else as is
-            String anchor = name;
-
-            writeStartTag( BASIC_LINK_TAG, "internal-destination", HtmlTools.escapeHTML( anchor ) );
+            writeStartTag( BASIC_LINK_TAG, "internal-destination", HtmlTools.escapeHTML( name ) );
             writeStartTag( INLINE_TAG, "href.internal" );
         }
     }
@@ -1266,7 +1264,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<Tag> tags = new ArrayList<Tag>();
+        List<Tag> tags = new ArrayList<>();
 
         if ( attributes != null )
         {
@@ -1548,7 +1546,7 @@
     protected void writeStartTag( Tag tag, String id, String name )
     {
         writeEOL();
-        MutableAttributeSet att = new SinkEventAttributeSet( new String[] {id, name} );
+        MutableAttributeSet att = new SinkEventAttributeSet( id, name );
 
         writeStartTag( tag, att );
     }
@@ -1586,7 +1584,7 @@
      */
     protected void writeEmptyTag( Tag tag, String id, String name )
     {
-        MutableAttributeSet att = new SinkEventAttributeSet( new String[] {id, name} );
+        MutableAttributeSet att = new SinkEventAttributeSet( id, name );
 
         writeEOL();
         writeSimpleTag( tag, att );
@@ -1686,7 +1684,7 @@
                     buffer.append( EOL );
                     if ( verb )
                     {
-                        buffer.append( "<fo:block/>" + EOL );
+                        buffer.append( "<fo:block/>" ).append( EOL );
                     }
                     break;
                 default:
@@ -1844,13 +1842,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( msg );
         warnMessages.put( key, set );
diff --git a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java
index 3432fd1..3cdbc83 100644
--- a/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java
+++ b/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoUtils.java
@@ -173,7 +173,7 @@
     public static void convertFO2PDF( File fo, File pdf, String resourceDir )
         throws TransformerException
     {
-        convertFO2PDF( fo, pdf, resourceDir, (DocumentModel) null );
+        convertFO2PDF( fo, pdf, resourceDir, null );
     }
 
     /**
diff --git a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
index 9e6792e..b7ef2b6 100644
--- a/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
+++ b/doxia-modules/doxia-module-fo/src/test/java/org/apache/maven/doxia/module/fo/FoAggregateSinkTest.java
@@ -83,7 +83,7 @@
             sink.close();
         }
 
-        assertTrue( writer.toString().indexOf( "<fo:block id=\"./folder/documentName\">" ) != -1 );
+        assertTrue( writer.toString().contains( "<fo:block id=\"./folder/documentName\">" ) );
     }
 
     /**
@@ -103,7 +103,7 @@
             sink.close();
         }
 
-        assertTrue( writer.toString().indexOf( "<fo:block id=\"./folder/documentName\">" ) != -1 );
+        assertTrue( writer.toString().contains( "<fo:block id=\"./folder/documentName\">" ) );
     }
     
     /**
@@ -151,7 +151,7 @@
             {
                 SAXParseException sax = (SAXParseException) e.getCause();
 
-                StringBuffer sb = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 sb.append( "Error creating PDF from " ).append( foFile.getAbsolutePath() ).append( ":" ).append( sax.getLineNumber() ).append( ":" ).append( sax.getColumnNumber() ).append( "\n" );
                 sb.append( e.getMessage() );
 
@@ -205,8 +205,8 @@
             sink.close();
         }
 
-        assertTrue( writer.toString().indexOf( "<fo:inline id=\"#invalid_Anchor\">" ) != -1 );
-        assertTrue( writer.toString().indexOf( "<fo:inline id=\"./folder/docName#validAnchor\">" ) != -1 );
+        assertTrue( writer.toString().contains( "<fo:inline id=\"#invalid_Anchor\">" ) );
+        assertTrue( writer.toString().contains( "<fo:inline id=\"./folder/docName#validAnchor\">" ) );
     }
 
     /**
@@ -247,13 +247,13 @@
 
         String result = writer.toString();
 
-        assertTrue( result.indexOf( "<fo:basic-link external-destination=\"http://www.example.com/\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/docName#anchor\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/index\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./download\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/test\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./folder/whatsnew-1.1\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:block id=\"./whatsnew-1.1\">" ) != -1 );
+        assertTrue( result.contains( "<fo:basic-link external-destination=\"http://www.example.com/\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./folder/docName#anchor\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./folder/index\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./download\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./folder/test\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./folder/whatsnew-1.1\">" ) );
+        assertTrue( result.contains( "<fo:block id=\"./whatsnew-1.1\">" ) );
 
         writer = new StringWriter();
         try
@@ -276,7 +276,7 @@
 
         result = writer.toString();
 
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./root\">" ) != -1 );
-        assertTrue( result.indexOf( "<fo:basic-link internal-destination=\"./outside\">" ) != -1 );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./root\">" ) );
+        assertTrue( result.contains( "<fo:basic-link internal-destination=\"./outside\">" ) );
     }
 }
diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java
index 7dd32ec..92771c0 100644
--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java
+++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextSink.java
@@ -123,7 +123,7 @@
     private boolean figureDefined = false;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     /** Map of warn messages with a String as key to describe the error type and a Set as value.
      * Using to reduce warn messages. */
@@ -1283,7 +1283,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<String> tags = new ArrayList<String>();
+        List<String> tags = new ArrayList<>();
 
         if ( attributes != null )
         {
@@ -1828,11 +1828,11 @@
     {
         String[] strings = StringUtils.split( aString, " " );
         StringBuilder sb = new StringBuilder();
-        for ( int i = 0; i < strings.length; i++ )
+        for ( String string : strings )
         {
-            if ( strings[i].trim().length() != 0 )
+            if ( string.trim().length() != 0 )
             {
-                sb.append( strings[i].trim() );
+                sb.append( string.trim() );
                 sb.append( " " );
             }
         }
@@ -1873,13 +1873,13 @@
 
         if ( warnMessages == null )
         {
-            warnMessages = new HashMap<String, Set<String>>();
+            warnMessages = new HashMap<>();
         }
 
         Set<String> set = warnMessages.get( key );
         if ( set == null )
         {
-            set = new TreeSet<String>();
+            set = new TreeSet<>();
         }
         set.add( msg );
         warnMessages.put( key, set );
diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
index 3bddb50..c82e0d8 100644
--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
+++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java
@@ -69,9 +69,8 @@
     public static String getPageSize( Rectangle rect )
     {
         Field[] fields = PageSize.class.getFields();
-        for ( int i = 0; i < fields.length; i++ )
+        for ( Field currentField : fields )
         {
-            Field currentField = fields[i];
             try
             {
                 if ( currentField.getType().equals( Rectangle.class ) )
@@ -102,11 +101,10 @@
     public static boolean isPageSizeSupported( String aPageSize )
     {
         Field[] fields = PageSize.class.getFields();
-        for ( int i = 0; i < fields.length; i++ )
+        for ( Field currentField : fields )
         {
-            Field currentField = fields[i];
-            if ( ( currentField.getName().equalsIgnoreCase( aPageSize ) )
-                && ( currentField.getType().equals( Rectangle.class ) ) )
+            if ( ( currentField.getName().equalsIgnoreCase( aPageSize ) ) && ( currentField.getType().equals(
+                    Rectangle.class ) ) )
             {
                 return true;
             }
diff --git a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/SinkActionContext.java b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/SinkActionContext.java
index 49fbd15..7d7f1d7 100644
--- a/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/SinkActionContext.java
+++ b/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/SinkActionContext.java
@@ -114,7 +114,7 @@
     /** Constant <code>UNDEFINED=82</code> */
     public static final int UNDEFINED = 82;
 
-    private Stack<Integer> stack = new Stack<Integer>();
+    private Stack<Integer> stack = new Stack<>();
 
     private int currentAction;
 
@@ -132,7 +132,7 @@
         }
         else
         {
-            return stack.peek().intValue();
+            return stack.peek();
         }
     }
 
@@ -154,6 +154,6 @@
     {
         //currentAction = action;
 
-        stack.push( Integer.valueOf( action ) );
+        stack.push( action );
     }
 }
diff --git a/doxia-modules/doxia-module-latex/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java b/doxia-modules/doxia-module-latex/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
index 9566af4..ba73aa6 100644
--- a/doxia-modules/doxia-module-latex/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
+++ b/doxia-modules/doxia-module-latex/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java
@@ -84,7 +84,7 @@
     private String title;
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     // ----------------------------------------------------------------------
     //
@@ -798,13 +798,13 @@
 
     {
         StringBuilder justif = new StringBuilder();
-        for ( int i = 0; i < justification.length; ++i )
+        for ( int i1 : justification )
         {
             if ( grid )
             {
                 justif.append( '|' );
             }
-            switch ( justification[i] )
+            switch ( i1 )
             {
                 case Sink.JUSTIFY_CENTER:
                     justif.append( 'c' );
@@ -1141,7 +1141,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<String> tags = new ArrayList<String>();
+        List<String> tags = new ArrayList<>();
 
         if ( attributes != null )
         {
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaExtension.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaExtension.java
index bfd89b7..9233148 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaExtension.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaExtension.java
@@ -29,7 +29,7 @@
  */
 class FlexmarkDoxiaExtension implements HtmlRenderer.HtmlRendererExtension
 {
-    public static final DataKey<String> INPUT_FILE_EXTENSION = new DataKey<String>( "INPUT_FILE_EXTENSION", "md" );
+    public static final DataKey<String> INPUT_FILE_EXTENSION = new DataKey<>( "INPUT_FILE_EXTENSION", "md" );
 
     @Override
     public void rendererOptions( final MutableDataHolder options )
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaLinkResolver.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaLinkResolver.java
index 10810af..cab9b2d 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaLinkResolver.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaLinkResolver.java
@@ -90,7 +90,7 @@
         @Override
         public Set<Class<? extends LinkResolverFactory>> getBeforeDependents()
         {
-            Set<Class<? extends LinkResolverFactory>> set = new HashSet<Class<? extends LinkResolverFactory>>();
+            Set<Class<? extends LinkResolverFactory>> set = new HashSet<>();
             set.add( WikiLinkLinkResolver.Factory.class );
             return set;
         }
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaNodeRenderer.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaNodeRenderer.java
index 090008e..ec49496 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaNodeRenderer.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/FlexmarkDoxiaNodeRenderer.java
@@ -46,26 +46,23 @@
     @Override
     public Set<NodeRenderingHandler<?>> getNodeRenderingHandlers()
     {
-        //noinspection unchecked
         return new HashSet<NodeRenderingHandler<?>>( Arrays.asList(
-                new NodeRenderingHandler<IndentedCodeBlock>( IndentedCodeBlock.class,
-                        new CustomNodeRenderer<IndentedCodeBlock>()
-                        {
-                            @Override
-                            public void render( IndentedCodeBlock node, NodeRendererContext context, HtmlWriter html )
-                            {
-                                FlexmarkDoxiaNodeRenderer.this.render( node, context, html );
-                            }
-                        } ),
-                new NodeRenderingHandler<FencedCodeBlock>( FencedCodeBlock.class,
-                        new CustomNodeRenderer<FencedCodeBlock>()
-                        {
-                            @Override
-                            public void render( FencedCodeBlock node, NodeRendererContext context, HtmlWriter html )
-                            {
-                                FlexmarkDoxiaNodeRenderer.this.render( node, context, html );
-                            }
-                        } )
+                new NodeRenderingHandler<>( IndentedCodeBlock.class, new CustomNodeRenderer<IndentedCodeBlock>()
+                {
+                    @Override
+                    public void render( IndentedCodeBlock node, NodeRendererContext context, HtmlWriter html )
+                    {
+                        FlexmarkDoxiaNodeRenderer.this.render( node, context, html );
+                    }
+                } ),
+                new NodeRenderingHandler<>( FencedCodeBlock.class, new CustomNodeRenderer<FencedCodeBlock>()
+                {
+                    @Override
+                    public void render( FencedCodeBlock node, NodeRendererContext context, HtmlWriter html )
+                    {
+                        FlexmarkDoxiaNodeRenderer.this.render( node, context, html );
+                    }
+                } )
         ) );
     }
 
diff --git a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
index fa1454f..b9a2e14 100644
--- a/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
+++ b/doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownParser.java
@@ -130,7 +130,7 @@
         String text = IOUtil.toString( source );
         MutableDataHolder flexmarkOptions = PegdownOptionsAdapter.flexmarkOptions(
                 Extensions.ALL & ~( Extensions.HARDWRAPS | Extensions.ANCHORLINKS ) ).toMutable();
-        ArrayList<Extension> extensions = new ArrayList<Extension>();
+        ArrayList<Extension> extensions = new ArrayList<>();
         for ( Extension extension : flexmarkOptions.get( com.vladsch.flexmark.parser.Parser.EXTENSIONS ) )
         {
             extensions.add( extension );
diff --git a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
index b1fb22c..f14bed7 100644
--- a/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
+++ b/doxia-modules/doxia-module-markdown/src/test/java/org/apache/maven/doxia/module/markdown/MarkdownParserTest.java
@@ -1,5 +1,6 @@
 package org.apache.maven.doxia.module.markdown;
 
+import java.io.IOException;
 import java.io.Reader;
 import java.util.Iterator;
 import java.util.List;
@@ -26,7 +27,6 @@
 import org.apache.maven.doxia.parser.AbstractParserTest;
 import org.apache.maven.doxia.parser.ParseException;
 import org.apache.maven.doxia.parser.Parser;
-import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
 import org.apache.maven.doxia.sink.impl.SinkEventElement;
 import org.apache.maven.doxia.sink.impl.SinkEventTestingSink;
@@ -55,7 +55,7 @@
         throws Exception
     {
         super.setUp();
-        parser = (MarkdownParser) lookup( Parser.ROLE, MarkdownParser.ROLE_HINT );
+        parser = lookup( Parser.ROLE, MarkdownParser.ROLE_HINT );
     }
 
     /**
@@ -307,21 +307,14 @@
      * @return a sink to test parsing events.
      * @throws ParseException if the document parsing failed.
      */
-    protected SinkEventTestingSink parseFileToEventTestingSink( String file )
-        throws ParseException
+    protected SinkEventTestingSink parseFileToEventTestingSink( String file ) throws ParseException, IOException
     {
-        Reader reader = null;
         SinkEventTestingSink sink = null;
-        try
+        try ( Reader reader = getTestReader( file ) )
         {
-            reader = getTestReader( file );
             sink = new SinkEventTestingSink();
             parser.parse( reader, sink );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
 
         return sink;
     }
diff --git a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/PBMReader.java b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/PBMReader.java
index 58f3868..81fd495 100644
--- a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/PBMReader.java
+++ b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/PBMReader.java
@@ -27,6 +27,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.StandardCharsets;
 
 /**
  * <a href="http://en.wikipedia.org/wiki/Portable_pixmap">PBM</a> images reader.
@@ -182,7 +183,8 @@
         {
             String field;
 
-            reader = new BufferedReader( new InputStreamReader( new FileInputStream( fileName ), "US-ASCII" ) );
+            reader = new BufferedReader( new InputStreamReader(
+                    new FileInputStream( fileName ), StandardCharsets.US_ASCII ) );
             offset = 0;
 
             field = getField();
diff --git a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java
index 24da5ba..68195d2 100644
--- a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java
+++ b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/RtfSink.java
@@ -30,7 +30,6 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -218,7 +217,7 @@
     protected OutputStream stream; // for raw image data
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<Integer>> inlineStack = new Stack<List<Integer>>();
+    protected Stack<List<Integer>> inlineStack = new Stack<>();
 
     /** Map of warn messages with a String as key to describe the error type and a Set as value.
      * Using to reduce warn messages. */
@@ -703,7 +702,7 @@
     /** {@inheritDoc} */
     public void numberedList( int numbering )
     {
-        this.numbering.addElement( Integer.valueOf( numbering ) );
+        this.numbering.addElement( numbering );
         itemNumber.addElement( new Counter( 0 ) );
 
         indentation.add( LIST_INDENT );
@@ -757,7 +756,7 @@
 
     private String getItemHeader()
     {
-        int nmb = ( (Integer) this.numbering.lastElement() ).intValue();
+        int nmb = (Integer) this.numbering.lastElement();
         int iNmb = ( (Counter) this.itemNumber.lastElement() ).get();
         StringBuilder buf = new StringBuilder();
 
@@ -1458,7 +1457,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<Integer> tags = new ArrayList<Integer>();
+        List<Integer> tags = new ArrayList<>();
 
         if ( attributes != null )
         {
@@ -1780,15 +1779,15 @@
 
         if ( getLog().isWarnEnabled() && this.warnMessages != null )
         {
-            for ( Iterator it = this.warnMessages.entrySet().iterator(); it.hasNext(); )
+            for ( Object o1 : this.warnMessages.entrySet() )
             {
-                Map.Entry entry = (Map.Entry) it.next();
+                Map.Entry entry = (Map.Entry) o1;
 
                 Set set = (Set) entry.getValue();
 
-                for ( Iterator it2 = set.iterator(); it2.hasNext(); )
+                for ( Object o : set )
                 {
-                    String msg = (String) it2.next();
+                    String msg = (String) o;
 
                     getLog().warn( msg );
                 }
@@ -1901,7 +1900,7 @@
 
         void set( int context )
         {
-            stack.addElement( Integer.valueOf( this.context ) );
+            stack.addElement( this.context );
             this.context = context;
         }
 
@@ -1909,7 +1908,7 @@
         {
             if ( !stack.isEmpty() )
             {
-                context = ( (Integer) stack.lastElement() ).intValue();
+                context = (Integer) stack.lastElement();
                 stack.removeElementAt( stack.size() - 1 );
             }
         }
@@ -2040,7 +2039,7 @@
 
         void set( int space /*twips*/ )
         {
-            stack.addElement( Integer.valueOf( this.space ) );
+            stack.addElement( this.space );
             this.space = space;
             next = space;
         }
@@ -2054,7 +2053,7 @@
         {
             if ( !stack.isEmpty() )
             {
-                space = ( (Integer) stack.lastElement() ).intValue();
+                space = (Integer) stack.lastElement();
                 stack.removeElementAt( stack.size() - 1 );
                 next = space;
             }
@@ -2101,7 +2100,7 @@
 
         void set( int indent /*twips*/ )
         {
-            stack.addElement( Integer.valueOf( this.indent ) );
+            stack.addElement( this.indent );
             this.indent = indent;
         }
 
@@ -2114,7 +2113,7 @@
         {
             if ( !stack.isEmpty() )
             {
-                indent = ( (Integer) stack.lastElement() ).intValue();
+                indent = (Integer) stack.lastElement();
                 stack.removeElementAt( stack.size() - 1 );
             }
         }
diff --git a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/WMFWriter.java b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/WMFWriter.java
index 43ea91c..c87d9d7 100644
--- a/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/WMFWriter.java
+++ b/doxia-modules/doxia-module-rtf/src/main/java/org/apache/maven/doxia/module/rtf/WMFWriter.java
@@ -262,9 +262,9 @@
             write16( function, out );
             if ( parameters != null )
             {
-                for ( int i = 0; i < parameters.length; ++i )
+                for ( short parameter : parameters )
                 {
-                    write16( parameters[i], out );
+                    write16( parameter, out );
                 }
             }
         }
@@ -276,9 +276,9 @@
             print16( function, out );
             if ( parameters != null )
             {
-                for ( int i = 0; i < parameters.length; ++i )
+                for ( short parameter : parameters )
                 {
-                    print16( parameters[i], out );
+                    print16( parameter, out );
                 }
             }
         }
diff --git a/doxia-modules/doxia-module-rtf/src/test/java/org/apache/maven/doxia/module/rtf/RtfSinkTest.java b/doxia-modules/doxia-module-rtf/src/test/java/org/apache/maven/doxia/module/rtf/RtfSinkTest.java
index b97c98a..1297b61 100644
--- a/doxia-modules/doxia-module-rtf/src/test/java/org/apache/maven/doxia/module/rtf/RtfSinkTest.java
+++ b/doxia-modules/doxia-module-rtf/src/test/java/org/apache/maven/doxia/module/rtf/RtfSinkTest.java
@@ -67,9 +67,7 @@
     {
         InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "test.apt" );
 
-        InputStreamReader reader = new InputStreamReader( is );
-
-        return reader;
+        return new InputStreamReader( is );
     }
 
     public void testDocument()
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
index 8e90cf6..82c0d71 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiParser.java
@@ -106,7 +106,7 @@
     public final List<Block> parse( final ByLineSource source )
         throws ParseException
     {
-        final List<Block> ret = new ArrayList<Block>();
+        final List<Block> ret = new ArrayList<>();
 
         String line;
         while ( ( line = source.getNextLine() ) != null )
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java
index dffbcb6..c6dddf3 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/TWikiSink.java
@@ -68,10 +68,10 @@
     private final Stack<String> listStyles;
 
     /** Keep track of the nested bold flag. */
-    protected Stack<Boolean> boldStack = new Stack<Boolean>();
+    protected Stack<Boolean> boldStack = new Stack<>();
 
     /** Keep track of the closing tags for inline events. */
-    protected Stack<List<String>> inlineStack = new Stack<List<String>>();
+    protected Stack<List<String>> inlineStack = new Stack<>();
 
     /**
      * Constructor, initialize the Writer and the variables.
@@ -82,7 +82,7 @@
     protected TWikiSink( Writer writer )
     {
         this.out = new PrintWriter( writer );
-        this.listStyles = new Stack<String>();
+        this.listStyles = new Stack<>();
 
         init();
     }
@@ -301,7 +301,7 @@
     /** {@inheritDoc} */
     public void figure()
     {
-        write( String.valueOf( LESS_THAN ) + Tag.IMG.toString() + SPACE );
+        write( LESS_THAN + Tag.IMG.toString() + SPACE );
     }
 
     /** {@inheritDoc} */
@@ -346,7 +346,7 @@
     /** {@inheritDoc} */
     public void figureGraphics( String name )
     {
-        write( Attribute.SRC.toString() + EQUAL + QUOTE + name + QUOTE + String.valueOf( SPACE ) );
+        write( Attribute.SRC.toString() + EQUAL + QUOTE + name + QUOTE + SPACE );
     }
 
     /** {@inheritDoc} */
@@ -405,7 +405,7 @@
     /** {@inheritDoc} */
     public void inline( SinkEventAttributes attributes )
     {
-        List<String> tags = new ArrayList<String>();
+        List<String> tags = new ArrayList<>();
 
         boldStack.push( boldFlag );
 
@@ -621,7 +621,7 @@
     public void numberedListItem()
     {
         writeEOL( true );
-        String style = (String) listStyles.peek();
+        String style = listStyles.peek();
         String indent = StringUtils.repeat( THREE_SPACES_MARKUP, levelList );
         write( indent + style + SPACE );
     }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/AbstractFatherBlock.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/AbstractFatherBlock.java
index 09f63f4..b574b38 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/AbstractFatherBlock.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/AbstractFatherBlock.java
@@ -77,10 +77,8 @@
     public final void traverse( final Sink sink )
     {
         before( sink );
-        for ( int i = 0; i < childBlocks.length; i++ )
+        for ( Block block : childBlocks )
         {
-            Block block = childBlocks[i];
-
             block.traverse( sink );
         }
         after( sink );
@@ -127,9 +125,9 @@
         int result = 1;
         if ( childBlocks != null )
         {
-            for ( int i = 0; i < childBlocks.length; i++ )
+            for ( Block childBlock : childBlocks )
             {
-                result += childBlocks[i].hashCode();
+                result += childBlock.hashCode();
             }
         }
 
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/FormatedTextParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/FormatedTextParser.java
index 039ca2d..919605f 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/FormatedTextParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/FormatedTextParser.java
@@ -40,7 +40,7 @@
     /**
      * map used to create blocks dependening on the text format
      */
-    private static final Map<String, FormatBlockFactory> FACTORY_MAP = new HashMap<String, FormatBlockFactory>();
+    private static final Map<String, FormatBlockFactory> FACTORY_MAP = new HashMap<>();
 
     /**
      * creates bold blocks
@@ -163,7 +163,7 @@
      */
     private List<Block> parseFormat( final String line )
     {
-        final List<Block> ret = new ArrayList<Block>();
+        final List<Block> ret = new ArrayList<>();
         final int[] lhOffsets = new int[SPECIAL_CHAR.length];
         final int[] rhOffsets = new int[SPECIAL_CHAR.length];
 
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/GenericListBlockParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/GenericListBlockParser.java
index 9716582..c9ea1f6 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/GenericListBlockParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/GenericListBlockParser.java
@@ -375,7 +375,7 @@
      */
     private List<ListItemBlock> getListItems( final TreeComponent tc )
     {
-        final List<ListItemBlock> blocks = new ArrayList<ListItemBlock>();
+        final List<ListItemBlock> blocks = new ArrayList<>();
 
         for ( int i = 0; i < tc.getChildren().length; i++ )
         {
@@ -411,7 +411,7 @@
         /**
          * childrens
          */
-        private List<TreeComponent> children = new ArrayList<TreeComponent>();
+        private List<TreeComponent> children = new ArrayList<>();
 
         /**
          * node text
@@ -447,7 +447,7 @@
          */
         TreeComponent[] getChildren()
         {
-            return (TreeComponent[]) children.toArray( new TreeComponent[] {} );
+            return children.toArray( new TreeComponent[] {} );
         }
 
         /**
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/HorizontalRuleBlock.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/HorizontalRuleBlock.java
index 9fb4283..4bc2cf8 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/HorizontalRuleBlock.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/HorizontalRuleBlock.java
@@ -45,7 +45,6 @@
     /** {@inheritDoc} */
     public final int hashCode()
     {
-        final int hashCode = 214905655;
-        return hashCode;
+        return 214905655;
     }
 }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/NopBlock.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/NopBlock.java
index b5cbd57..673c9ce 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/NopBlock.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/NopBlock.java
@@ -45,7 +45,6 @@
     /** {@inheritDoc} */
     public final int hashCode()
     {
-        final int magic = 518409602;
-        return magic;
+        return 518409602;
     }
 }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/ParagraphBlockParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/ParagraphBlockParser.java
index 5d155fd..4c28331 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/ParagraphBlockParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/ParagraphBlockParser.java
@@ -90,7 +90,7 @@
         throws ParseException
     {
         StringBuilder sb = new StringBuilder();
-        List<Block> childs = new ArrayList<Block>();
+        List<Block> childs = new ArrayList<>();
 
         boolean sawText = false;
 
@@ -133,11 +133,11 @@
                 {
                     sb.append( l );
                     // specific
-                    if ( l.indexOf( "<pre>" ) != -1 )
+                    if ( l.contains( "<pre>" ) )
                     {
                         pre = true;
                     }
-                    if ( l.indexOf( "</pre>" ) != -1 )
+                    if ( l.contains( "</pre>" ) )
                     {
                         pre = false;
                     }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java
index ce977ea..4e1af88 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlock.java
@@ -110,7 +110,7 @@
     {
         try
         {
-            final Method m = sink.getClass().getMethod( name, new Class[] {} );
+            final Method m = sink.getClass().getMethod( name );
             m.invoke( sink, Collections.EMPTY_LIST.toArray() );
         }
         catch ( Exception e )
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlockParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlockParser.java
index 2ac84e2..9906772 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlockParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/SectionBlockParser.java
@@ -75,7 +75,7 @@
         }
 
         String newLine;
-        final ArrayList<Block> blocks = new ArrayList<Block>();
+        final ArrayList<Block> blocks = new ArrayList<>();
 
         while ( ( newLine = source.getNextLine() ) != null && !accept( newLine ) )
         {
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlockParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlockParser.java
index b2d9667..d1aae14 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlockParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TableBlockParser.java
@@ -63,7 +63,7 @@
             throw new IllegalAccessError( "call accept before this ;)" );
         }
 
-        final List<Block> rows = new ArrayList<Block>();
+        final List<Block> rows = new ArrayList<>();
         String l = line;
 
         do
@@ -71,7 +71,7 @@
             final Matcher m = TABLE_PATTERN.matcher( l );
             if ( m.lookingAt() )
             {
-                final List<Block> cells = new ArrayList<Block>();
+                final List<Block> cells = new ArrayList<>();
 
                 /* for each cell... */
                 for ( int lh = l.indexOf( '|' ) + 1, rh; ( rh = l.indexOf( '|', lh ) ) != -1; lh = rh + 1 )
@@ -87,7 +87,7 @@
                         cells.add( new TableCellBlock( bs ) );
                     }
                 }
-                rows.add( new TableRowBlock( (Block[]) cells.toArray( new Block[] {} ) ) );
+                rows.add( new TableRowBlock( cells.toArray( new Block[] {} ) ) );
             }
 
         }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TextParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TextParser.java
index db06697..2fc143d 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TextParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/TextParser.java
@@ -99,7 +99,7 @@
      */
     public final List<Block> parse( final String line )
     {
-        final List<Block> ret = new ArrayList<Block>();
+        final List<Block> ret = new ArrayList<>();
 
         final Matcher linkMatcher = SPECIFICLINK_PATTERN.matcher( line );
         final Matcher wikiMatcher = WIKIWORD_PATTERN.matcher( line );
@@ -169,7 +169,7 @@
         ret.addAll( parse( line.substring( 0, imageTagMatcher.start() ) ) );
         final String src = imageTagMatcher.group( 2 );
         ret.add( new ImageBlock( src ) );
-        ret.addAll( parse( line.substring( imageTagMatcher.end(), line.length() ) ) );
+        ret.addAll( parse( line.substring( imageTagMatcher.end() ) ) );
     }
 
     /**
@@ -191,7 +191,7 @@
         {
             ret.add( new LinkBlock( url, new TextBlock( url ) ) );
         }
-        ret.addAll( parse( line.substring( urlMatcher.end(), line.length() ) ) );
+        ret.addAll( parse( line.substring( urlMatcher.end() ) ) );
     }
 
     /**
@@ -204,7 +204,7 @@
     {
         ret.addAll( parse( line.substring( 0, anchorMatcher.start() ) ) );
         ret.add( new AnchorBlock( anchorMatcher.group( 1 ) ) );
-        ret.addAll( parse( line.substring( anchorMatcher.end(), line.length() ) ) );
+        ret.addAll( parse( line.substring( anchorMatcher.end() ) ) );
     }
 
     /**
@@ -240,7 +240,7 @@
             {
                 ret.addAll( parse( line.substring( 0, forcedLinkMatcher.start() ) ) );
                 ret.add( createLink( showText, showText ) );
-                ret.addAll( parse( line.substring( forcedLinkMatcher.end(), line.length() ) ) );
+                ret.addAll( parse( line.substring( forcedLinkMatcher.end() ) ) );
             }
         }
     }
@@ -298,7 +298,7 @@
         {
             ret.add( new WikiWordBlock( wikiWord, wikiWordLinkResolver ) );
         }
-        ret.addAll( parse( line.substring( wikiMatcher.end(), line.length() ) ) );
+        ret.addAll( parse( line.substring( wikiMatcher.end() ) ) );
     }
 
     /**
@@ -318,7 +318,7 @@
         {
             ret.add( createLink( linkMatcher.group( 1 ), linkMatcher.group( 2 ) ) );
         }
-        ret.addAll( parse( line.substring( linkMatcher.end(), line.length() ) ) );
+        ret.addAll( parse( line.substring( linkMatcher.end() ) ) );
     }
 
     /**
@@ -331,7 +331,7 @@
     private void parseXHTML( final String line, final List<Block> ret, final Matcher xhtmlMatcher )
     {
         ret.addAll( parse( line.substring( 0, xhtmlMatcher.start() ) ) );
-        if ( xhtmlMatcher.group( 1 ).indexOf( "noautolink" ) != -1 )
+        if ( xhtmlMatcher.group( 1 ).contains( "noautolink" ) )
         {
             noautolink = true;
         }
@@ -342,7 +342,7 @@
 
         ret.addAll( parse( xhtmlMatcher.group( 2 ) ) );
 
-        if ( xhtmlMatcher.group( 1 ).indexOf( "noautolink" ) != -1 )
+        if ( xhtmlMatcher.group( 1 ).contains( "noautolink" ) )
         {
             noautolink = false;
         }
diff --git a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/VerbatimBlockParser.java b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/VerbatimBlockParser.java
index 52c11c9..5dc7028 100644
--- a/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/VerbatimBlockParser.java
+++ b/doxia-modules/doxia-module-twiki/src/main/java/org/apache/maven/doxia/module/twiki/parser/VerbatimBlockParser.java
@@ -61,7 +61,7 @@
             throw new IllegalAccessError( "call accept before this ;)" );
         }
 
-        final List<Block> lines = new ArrayList<Block>();
+        final List<Block> lines = new ArrayList<>();
         Matcher matcher = VERBATIM_START_PATTERN.matcher( line );
         matcher.find();
         String l = line.substring( matcher.end() );
diff --git a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ListTest.java b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ListTest.java
index 0e25c35..71fdfba 100644
--- a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ListTest.java
+++ b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ListTest.java
@@ -44,7 +44,6 @@
     public final void testList()
         throws ParseException
     {
-        final BlockParser parser = listParser;
 
         final String text =
             "" + "      * item1.1 \n" + "   * item2\n" + "      * item2.1\n" + "   * item3\n"
@@ -52,14 +51,13 @@
                 + "         * item3.2.3\n" + "      * item3.3\n" + "         * item3.3.1\n" + "   * item4";
 
         final ByLineSource source = new ByLineReaderSource( new StringReader( text ) );
-        final Block b = parser.visit( source.getNextLine(), source );
+        final Block b = ((BlockParser) listParser).visit( source.getNextLine(), source );
         final Block[] firstLevelBlocks = ( (UnorderedListBlock) b ).getBlocks();
         final int numberOfChild = 4;
         assertEquals( numberOfChild, firstLevelBlocks.length );
 
-        for ( int i = 0; i < firstLevelBlocks.length; i++ )
+        for ( Block block : firstLevelBlocks )
         {
-            Block block = firstLevelBlocks[i];
             assertEquals( ListItemBlock.class, block.getClass() );
         }
 
diff --git a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ParagraphTest.java b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ParagraphTest.java
index 0c584a0..f9d7cec 100644
--- a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ParagraphTest.java
+++ b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/ParagraphTest.java
@@ -72,11 +72,10 @@
                 + "This is more text in the same paragraph\n" + "\n" + "Another paragraph";
 
         final ByLineReaderSource source = new ByLineReaderSource( new StringReader( text ) );
-        final ParagraphBlockParser parser = paraParser;
 
         ParagraphBlock block;
 
-        block = (ParagraphBlock) parser.visit( source.getNextLine(), source );
+        block = (ParagraphBlock) paraParser.visit( source.getNextLine(), source );
         assertNotNull( block );
         final Block[] firstLevelChilds = block.getBlocks();
         final int numberOfChilds = 3;
@@ -105,11 +104,10 @@
                 + "Another paragraph";
 
         final ByLineReaderSource source = new ByLineReaderSource( new StringReader( text ) );
-        final ParagraphBlockParser parser = paraParser;
 
         ParagraphBlock block;
 
-        block = (ParagraphBlock) parser.visit( source.getNextLine(), source );
+        block = (ParagraphBlock) paraParser.visit( source.getNextLine(), source );
         assertNotNull( block );
         final Block[] firstLevelChilds = block.getBlocks();
         assertEquals( 2, firstLevelChilds.length );
@@ -163,7 +161,7 @@
         expected =
             new Block[] { new ParagraphBlock( new Block[] { new TextBlock( "Some text" ) } ),
                 new HorizontalRuleBlock(), new ParagraphBlock( new Block[] { new TextBlock( "More text" ) } ) };
-        blocks = (Block[]) twikiParser.parse( source ).toArray( new Block[] {} );
+        blocks = twikiParser.parse( source ).toArray( new Block[] {} );
         assertTrue( Arrays.equals( expected, blocks ) );
     }
 }
diff --git a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/SectionTest.java b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/SectionTest.java
index 6849111..09a07de 100644
--- a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/SectionTest.java
+++ b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/SectionTest.java
@@ -170,7 +170,7 @@
             new Block[] { new SectionBlock( "Title", 1, new Block[] {
                 new ParagraphBlock( new Block[] { new TextBlock( "Some text" ) } ), new HorizontalRuleBlock(),
                 new ParagraphBlock( new Block[] { new TextBlock( "More text" ) } ) } ) };
-        blocks = (Block[]) twikiParser.parse( source ).toArray( new Block[] {} );
+        blocks = twikiParser.parse( source ).toArray( new Block[] {} );
         assertTrue( Arrays.equals( expected, blocks ) );
     }
 }
diff --git a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/TwikiParserTest.java b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/TwikiParserTest.java
index f3840e9..367e2c9 100644
--- a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/TwikiParserTest.java
+++ b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/TwikiParserTest.java
@@ -42,7 +42,7 @@
     {
         super.setUp();
 
-        this.parser = (TWikiParser) lookup( Parser.ROLE, id );
+        this.parser = lookup( Parser.ROLE, id );
     }
 
     @Override
diff --git a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/WordsTest.java b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/WordsTest.java
index 66a3acd..a8ba000 100644
--- a/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/WordsTest.java
+++ b/doxia-modules/doxia-module-twiki/src/test/java/org/apache/maven/doxia/module/twiki/parser/WordsTest.java
@@ -48,7 +48,7 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new TextBlock( "     Some text    " ) };
-        blocks = (Block[]) textParser.parse( "     Some text    " ).toArray( TOARRAY );
+        blocks = textParser.parse( "     Some text    " ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -60,24 +60,24 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new WikiWordBlock( "WikiWord", resolver ) };
-        blocks = (Block[]) textParser.parse( "WikiWord" ).toArray( TOARRAY );
+        blocks = textParser.parse( "WikiWord" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         // this is not a wiki word
         expected = new Block[] { new TextBlock( "Wiki" ) };
-        blocks = (Block[]) textParser.parse( "Wiki" ).toArray( TOARRAY );
+        blocks = textParser.parse( "Wiki" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new TextBlock( "Web." ) };
-        blocks = (Block[]) textParser.parse( "Web." ).toArray( TOARRAY );
+        blocks = textParser.parse( "Web." ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new TextBlock( "fooWikiBar" ) };
-        blocks = (Block[]) textParser.parse( "fooWikiBar" ).toArray( TOARRAY );
+        blocks = textParser.parse( "fooWikiBar" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new WikiWordBlock( "WikiWord", resolver ), new TextBlock( "...." ) };
-        blocks = (Block[]) textParser.parse( "WikiWord...." ).toArray( TOARRAY );
+        blocks = textParser.parse( "WikiWord...." ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -89,11 +89,11 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new WikiWordBlock( "Web.WikiWord", resolver ) };
-        blocks = (Block[]) textParser.parse( "Web.WikiWord" ).toArray( TOARRAY );
+        blocks = textParser.parse( "Web.WikiWord" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new WikiWordBlock( "My1Web.WikiWord", resolver ) };
-        blocks = (Block[]) textParser.parse( "My1Web.WikiWord" ).toArray( TOARRAY );
+        blocks = textParser.parse( "My1Web.WikiWord" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -105,11 +105,11 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new WikiWordBlock( "WikiWord#anchor", resolver ) };
-        blocks = (Block[]) textParser.parse( "WikiWord#anchor" ).toArray( TOARRAY );
+        blocks = textParser.parse( "WikiWord#anchor" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new WikiWordBlock( "MyWeb.WikiWord#anchor", resolver ) };
-        blocks = (Block[]) textParser.parse( "MyWeb.WikiWord#anchor" ).toArray( TOARRAY );
+        blocks = textParser.parse( "MyWeb.WikiWord#anchor" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
     }
@@ -122,19 +122,19 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new LinkBlock( "http://reference.com", new TextBlock( "text" ) ) };
-        blocks = (Block[]) textParser.parse( "[[http://reference.com][text]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "[[http://reference.com][text]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( "foo" ),
                 new LinkBlock( "http://reference.com", new TextBlock( "text" ) ), new TextBlock( "bar" ) };
-        blocks = (Block[]) textParser.parse( "foo[[http://reference.com][text]]bar" ).toArray( TOARRAY );
+        blocks = textParser.parse( "foo[[http://reference.com][text]]bar" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( " foo " ),
                 new LinkBlock( "http://reference.com", new TextBlock( "text" ) ), new TextBlock( " bar " ) };
-        blocks = (Block[]) textParser.parse( " foo [[http://reference.com][text]] bar " ).toArray( TOARRAY );
+        blocks = textParser.parse( " foo [[http://reference.com][text]] bar " ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
@@ -143,11 +143,10 @@
                                new TextBlock( "Apache License, version 2.0" ) ),
                 new TextBlock( ". You can download it " ),
                 new WikiWordBlock( "DoxiaDownload", new TextBlock( "here" ), resolver ) };
-        blocks =
-            (Block[]) textParser.parse(
-                                        "[[http://www.apache.org/licenses/LICENSE-2.0]"
-                                            + "[Apache License, version 2.0]]. You can download it "
-                                            + "[[DoxiaDownload][here]]" ).toArray( TOARRAY );
+        blocks = textParser.parse(
+                                    "[[http://www.apache.org/licenses/LICENSE-2.0]"
+                                        + "[Apache License, version 2.0]]. You can download it "
+                                        + "[[DoxiaDownload][here]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
     }
@@ -160,19 +159,19 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new WikiWordBlock( "Reference", new TextBlock( "text" ), resolver ) };
-        blocks = (Block[]) textParser.parse( "[[reference][text]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "[[reference][text]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( "foo" ),
                 new WikiWordBlock( "ReferenceLink", new TextBlock( "text" ), resolver ), new TextBlock( "bar" ) };
-        blocks = (Block[]) textParser.parse( "foo[[referenceLink][text]]bar" ).toArray( TOARRAY );
+        blocks = textParser.parse( "foo[[referenceLink][text]]bar" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( " foo " ),
                 new WikiWordBlock( "ReferenceLink", new TextBlock( "text" ), resolver ), new TextBlock( " bar " ) };
-        blocks = (Block[]) textParser.parse( " foo [[reference link][text]] bar " ).toArray( TOARRAY );
+        blocks = textParser.parse( " foo [[reference link][text]] bar " ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -184,7 +183,7 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new TextBlock( "[[reference][text]]" ) };
-        blocks = (Block[]) textParser.parse( "![[reference][text]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "![[reference][text]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -196,11 +195,11 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new TextBlock( " " ), new TextBlock( "WikiWord" ), new TextBlock( " " ) };
-        blocks = (Block[]) textParser.parse( " !WikiWord " ).toArray( TOARRAY );
+        blocks = textParser.parse( " !WikiWord " ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new TextBlock( " !!WikiWord " ) };
-        blocks = (Block[]) textParser.parse( " !!WikiWord " ).toArray( TOARRAY );
+        blocks = textParser.parse( " !!WikiWord " ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -212,24 +211,24 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new WikiWordBlock( "WikiSyntax", new TextBlock( "wiki syntax" ), resolver ) };
-        blocks = (Block[]) textParser.parse( "[[wiki syntax]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "[[wiki syntax]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new TextBlock( "[[wiki syntax]]" ) };
-        blocks = (Block[]) textParser.parse( "![[wiki syntax]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "![[wiki syntax]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( "foo" ),
                 new WikiWordBlock( "WikiSyntax", new TextBlock( "wiki syntax" ), resolver ),
                 new TextBlock( "bar" ) };
-        blocks = (Block[]) textParser.parse( "foo[[wiki syntax]]bar" ).toArray( TOARRAY );
+        blocks = textParser.parse( "foo[[wiki syntax]]bar" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( "foo" ),
                 new LinkBlock( "http://twiki.com", new TextBlock( "http://twiki.com" ) ), new TextBlock( "bar" ) };
-        blocks = (Block[]) textParser.parse( "foo[[http://twiki.com]]bar" ).toArray( TOARRAY );
+        blocks = textParser.parse( "foo[[http://twiki.com]]bar" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -241,7 +240,7 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new LinkBlock( "mailto:a@z.com", new TextBlock( "Mail" ) ) };
-        blocks = (Block[]) textParser.parse( "[[mailto:a@z.com Mail]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "[[mailto:a@z.com Mail]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -253,17 +252,17 @@
         Block[] blocks, expected;
 
         expected = new Block[] { new TextBlock( "mary has #anchor a little lamb" ) };
-        blocks = (Block[]) textParser.parse( "mary has #anchor a little lamb" ).toArray( TOARRAY );
+        blocks = textParser.parse( "mary has #anchor a little lamb" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected =
             new Block[] { new TextBlock( "mary has " ), new AnchorBlock( "AnchorName" ),
                 new TextBlock( " a little lamb" ) };
-        blocks = (Block[]) textParser.parse( "mary has #AnchorName a little lamb" ).toArray( TOARRAY );
+        blocks = textParser.parse( "mary has #AnchorName a little lamb" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
 
         expected = new Block[] { new TextBlock( "mary has #AnchorName1233 a little lamb" ) };
-        blocks = (Block[]) textParser.parse( "mary has #AnchorName1233 a little lamb" ).toArray( TOARRAY );
+        blocks = textParser.parse( "mary has #AnchorName1233 a little lamb" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -278,7 +277,7 @@
             new Block[] { new TextBlock( "Go to " ),
                 new LinkBlock( "http://twiki.com", new TextBlock( "http://twiki.com" ) ),
                 new TextBlock( " and ..." ) };
-        blocks = (Block[]) textParser.parse( "Go to http://twiki.com and ..." ).toArray( TOARRAY );
+        blocks = textParser.parse( "Go to http://twiki.com and ..." ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -289,7 +288,7 @@
 
         expected =
             new Block[] { new LinkBlock( "http://twiki.org", new ImageBlock( "http://twiki.org/logo.png" ) ) };
-        blocks = (Block[]) textParser.parse( "[[http://twiki.org][http://twiki.org/logo.png]]" ).toArray( TOARRAY );
+        blocks = textParser.parse( "[[http://twiki.org][http://twiki.org/logo.png]]" ).toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -301,9 +300,8 @@
         expected =
             new Block[] { new TextBlock( "Go to " ), new ImageBlock( "http://twiki.com/image.png" ),
                 new TextBlock( " thisisnotanimage.png and ..." ) };
-        blocks =
-            (Block[]) textParser.parse( "Go to http://twiki.com/image.png " + "thisisnotanimage.png and ..." )
-                                .toArray( TOARRAY );
+        blocks = textParser.parse( "Go to http://twiki.com/image.png " + "thisisnotanimage.png and ..." )
+                            .toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 
@@ -317,11 +315,10 @@
         expected =
             new Block[] { new TextBlock( "My summer house: " ), new ImageBlock( "images/summerhouse.png" ),
                 new TextBlock( " isn't it great?!" ) };
-        blocks =
-            (Block[]) textParser
-                                .parse(
-                                        "My summer house: <img class=\"some_class\" src=\"images/summerhouse.png\"/> isn't it great?!" )
-                                .toArray( TOARRAY );
+        blocks = textParser
+                            .parse(
+                                    "My summer house: <img class=\"some_class\" src=\"images/summerhouse.png\"/> isn't it great?!" )
+                            .toArray( TOARRAY );
         assertArrayEquals( expected, blocks );
     }
 }
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
index 32f062f..a5140a3 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java
@@ -73,7 +73,7 @@
     /**
      * The macro parameters.
      */
-    private Map<String, Object> macroParameters = new HashMap<String, Object>();
+    private Map<String, Object> macroParameters = new HashMap<>();
 
     /**
      * Indicates that we're inside &lt;properties&gt; or &lt;head&gt;.
@@ -410,7 +410,7 @@
 
             if ( macroParameters == null )
             {
-                macroParameters = new HashMap<String, Object>();
+                macroParameters = new HashMap<>();
             }
 
             if ( StringUtils.isEmpty( macroName ) )
@@ -441,7 +441,7 @@
         }
         else
         {
-            sink.unknown( "meta", new Object[]{ Integer.valueOf( TAG_TYPE_SIMPLE ) }, attribs );
+            sink.unknown( "meta", new Object[]{ TAG_TYPE_SIMPLE }, attribs );
         }
     }
 
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
index 0ab2722..b6a9d93 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
@@ -281,17 +281,17 @@
     {
         if ( depth == SECTION_LEVEL_1 )
         {
-            write( String.valueOf( LESS_THAN ) + SECTION_TAG.toString()
+            write( LESS_THAN + SECTION_TAG.toString()
                     + SinkUtils.getAttributeString(
                         SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES ) )
-                    + String.valueOf( SPACE ) + Attribute.NAME + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) );
+                    + SPACE + Attribute.NAME + EQUAL + QUOTE );
         }
         else if ( depth == SECTION_LEVEL_2 )
         {
-            write( String.valueOf( LESS_THAN ) + SUBSECTION_TAG.toString()
+            write( LESS_THAN + SUBSECTION_TAG.toString()
                     + SinkUtils.getAttributeString(
                         SinkUtils.filterAttributes( attributes, SinkUtils.SINK_BASE_ATTRIBUTES  ) )
-                    + String.valueOf( SPACE ) + Attribute.NAME + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) );
+                    + SPACE + Attribute.NAME + EQUAL + QUOTE );
         }
     }
 
@@ -353,7 +353,7 @@
     {
         if ( depth == SECTION_LEVEL_1 || depth == SECTION_LEVEL_2 )
         {
-            write( String.valueOf( QUOTE ) + String.valueOf( GREATER_THAN ) );
+            write( String.valueOf( QUOTE ) + GREATER_THAN );
         }
         else if ( depth == SECTION_LEVEL_3 )
         {
@@ -395,8 +395,7 @@
 
         if ( atts.isDefined( SinkEventAttributes.DECORATION ) )
         {
-            boxed = "boxed".equals(
-                (String) atts.getAttribute( SinkEventAttributes.DECORATION ) );
+            boxed = "boxed".equals( atts.getAttribute( SinkEventAttributes.DECORATION ) );
         }
 
         boxedFlag = boxed;
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocIdentityTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocIdentityTest.java
index 25278f0..b216b7a 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocIdentityTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocIdentityTest.java
@@ -74,8 +74,8 @@
             expected.substring( 0, iStartCaption ).lastIndexOf( "begin:tableRows" ) + "begin:tableRows".length();
 
         StringBuilder text = new StringBuilder();
-        text.append( expected.substring( 0, iStartTableRows ) );
-        text.append( EOL + EOL + EOL );
+        text.append( expected, 0, iStartTableRows );
+        text.append( EOL ).append( EOL ).append( EOL );
         text.append( captionTag.subSequence( 0, captionTag.indexOf( "end:tableCaption" )
             + "end:tableCaption".length() ) );
         text.append( expected.substring( iStartTableRows ) );
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
index a369033..c31367c 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocParserTest.java
@@ -54,7 +54,7 @@
     {
         super.setUp();
 
-        parser = (XdocParser) lookup( Parser.ROLE, "xdoc" );
+        parser = lookup( Parser.ROLE, "xdoc" );
 
         // AbstractXmlParser.CachedFileEntityResolver downloads DTD/XSD files in ${java.io.tmpdir}
         // Be sure to delete them
@@ -133,7 +133,7 @@
             IOUtil.close( reader );
         }
 
-        assertTrue( content.indexOf( "&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;" ) != -1 );
+        assertTrue( content.contains( "&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;" ) );
     }
 
     /** @throws Exception  */
@@ -173,8 +173,8 @@
         }
 
         // No section, only subsection 1 and 2
-        assertTrue( content.indexOf( "<a href=\"#Section_11\">Section 11</a>" ) != -1 );
-        assertTrue( content.indexOf( "<a href=\"#Section_1211\">Section 1211</a>" ) == -1 );
+        assertTrue( content.contains( "<a href=\"#Section_11\">Section 11</a>" ) );
+        assertTrue( !content.contains( "<a href=\"#Section_1211\">Section 1211</a>" ) );
     }
 
     private Iterator<SinkEventElement> parseText( String text )
@@ -276,7 +276,7 @@
 
         next = it.next();
         assertEquals( "sectionTitle1", next.getName() );
-        assertNull( (SinkEventAttributeSet) next.getArgs()[0] );
+        assertNull( next.getArgs()[0] );
 
         assertEquals( it, "text", "sectionTitle1_", "section1_" );
     }
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 ae2fba5..f465831 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
@@ -355,7 +355,7 @@
             sink.verbatim_();
             sink.verbatim( SinkEventAttributeSet.BOXED );
             sink.verbatim_();
-            sink.verbatim( new SinkEventAttributeSet( new String[] {SinkEventAttributeSet.WIDTH, "20%"} ) );
+            sink.verbatim( new SinkEventAttributeSet( SinkEventAttributeSet.WIDTH, "20%" ) );
             sink.verbatim_();
         }
         finally
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocValidatorTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocValidatorTest.java
index 8af1e6a..4a7ea38 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocValidatorTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocValidatorTest.java
@@ -56,7 +56,7 @@
             String root = matcher.group( 1 );
             String value = matcher.group( 2 );
 
-            if ( value.indexOf( XDOC_XSD.getName() ) == -1 )
+            if ( !value.contains( XDOC_XSD.getName() ) )
             {
                 String faqs =
                     "<" + root + " xmlns=\"http://maven.apache.org/XDOC/2.0\""
diff --git a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
index fe1a814..3ea1a4a 100644
--- a/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
+++ b/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java
@@ -108,7 +108,7 @@
             }
             else
             {
-                sink.unknown( "meta", new Object[] { Integer.valueOf( TAG_TYPE_SIMPLE ) }, attribs );
+                sink.unknown( "meta", new Object[] { TAG_TYPE_SIMPLE }, attribs );
             }
         }
         /*
@@ -247,7 +247,7 @@
         String[] params = StringUtils.split( s, "|" );
         String macroName = params[0];
 
-        Map<String, Object> parameters = new HashMap<String, Object>();
+        Map<String, Object> parameters = new HashMap<>();
         for ( int i = 1; i < params.length; i++ )
         {
             String[] param = StringUtils.split( params[i], "=" );
diff --git a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlIdentityTest.java b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlIdentityTest.java
index d4969d9..f7a28b9 100644
--- a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlIdentityTest.java
+++ b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlIdentityTest.java
@@ -74,8 +74,8 @@
             expected.substring( 0, iStartCaption ).lastIndexOf( "begin:tableRows" ) + "begin:tableRows".length();
 
         StringBuilder text = new StringBuilder();
-        text.append( expected.substring( 0, iStartTableRows ) );
-        text.append( EOL + EOL + EOL );
+        text.append( expected, 0, iStartTableRows );
+        text.append( EOL ).append( EOL ).append( EOL );
         text.append( captionTag.subSequence( 0, captionTag.indexOf( "end:tableCaption" )
             + "end:tableCaption".length() ) );
         text.append( expected.substring( iStartTableRows ) );
diff --git a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
index 6c836e7..5ef7f9e 100644
--- a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
+++ b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlParserTest.java
@@ -44,7 +44,7 @@
     {
         super.setUp();
 
-        parser = (XhtmlParser) lookup( Parser.ROLE, "xhtml" );
+        parser = lookup( Parser.ROLE, "xhtml" );
 
         // AbstractXmlParser.CachedFileEntityResolver downloads DTD/XSD files in ${java.io.tmpdir}
         // Be sure to delete them
diff --git a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
index 1bb7507..cc96103 100644
--- a/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
+++ b/doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/xhtml/XhtmlSinkTest.java
@@ -84,10 +84,10 @@
         }
 
         String actual = writer.toString();
-        assertTrue( actual.indexOf( "<a class=\"externalLink\" href=\"http:/www.xdoc.com\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"./index.html#anchor\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"../index.html#anchor\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"index.html\"></a>" ) != -1 );
+        assertTrue( actual.contains( "<a class=\"externalLink\" href=\"http:/www.xdoc.com\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"./index.html#anchor\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"../index.html#anchor\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"index.html\"></a>" ) );
     }
 
     /** {@inheritDoc} */
@@ -432,7 +432,7 @@
             sink.author_();
             SinkEventAttributeSet atts = new SinkEventAttributeSet( 1 );
             atts.addAttribute( "href", "http://maven.apache.org/" );
-            sink.unknown( "base", new Object[] {new Integer( HtmlMarkup.TAG_TYPE_SIMPLE )}, atts );
+            sink.unknown( "base", new Object[] { HtmlMarkup.TAG_TYPE_SIMPLE }, atts );
             sink.head_();
         }
         finally
@@ -444,7 +444,7 @@
             "<head>\n<title>Title</title><!--A comment--><meta name=\"author\" content=\"&#x123;&amp;\" />"
                 + "<base href=\"http://maven.apache.org/\" /></head>";
         String actual = writer.toString();
-        assertTrue( actual, actual.indexOf( expected ) != -1 );
+        assertTrue( actual, actual.contains( expected ) );
     }
 
     /** {@inheritDoc} */
diff --git a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
index fac80bd..1f4f5c7 100644
--- a/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
+++ b/doxia-modules/doxia-module-xhtml5/src/main/java/org/apache/maven/doxia/module/xhtml5/Xhtml5Parser.java
@@ -109,7 +109,7 @@
             }
             else
             {
-                sink.unknown( "meta", new Object[] { Integer.valueOf( TAG_TYPE_SIMPLE ) }, attribs );
+                sink.unknown( "meta", new Object[] { TAG_TYPE_SIMPLE }, attribs );
             }
         }
         /*
@@ -248,7 +248,7 @@
         String[] params = StringUtils.split( s, "|" );
         String macroName = params[0];
 
-        Map<String, Object> parameters = new HashMap<String, Object>();
+        Map<String, Object> parameters = new HashMap<>();
         for ( int i = 1; i < params.length; i++ )
         {
             String[] param = StringUtils.split( params[i], "=" );
diff --git a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5IdentityTest.java b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5IdentityTest.java
index 0cf827e..9ea44c9 100644
--- a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5IdentityTest.java
+++ b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5IdentityTest.java
@@ -76,8 +76,8 @@
             expected.substring( 0, iStartCaption ).lastIndexOf( "begin:tableRows" ) + "begin:tableRows".length();
 
         StringBuilder text = new StringBuilder();
-        text.append( expected.substring( 0, iStartTableRows ) );
-        text.append( EOL + EOL + EOL );
+        text.append( expected, 0, iStartTableRows );
+        text.append( EOL ).append( EOL ).append( EOL );
         text.append( captionTag.subSequence( 0, captionTag.indexOf( "end:tableCaption" )
             + "end:tableCaption".length() ) );
         text.append( expected.substring( iStartTableRows ) );
diff --git a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserTest.java b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserTest.java
index fa4c836..20720c0 100644
--- a/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserTest.java
+++ b/doxia-modules/doxia-module-xhtml5/src/test/java/org/apache/maven/doxia/module/xhtml5/Xhtml5ParserTest.java
@@ -41,7 +41,7 @@
     {
         super.setUp();
 
-        parser = (Xhtml5Parser) lookup( Parser.ROLE, Xhtml5Parser.ROLE_HINT );
+        parser = lookup( Parser.ROLE, Xhtml5Parser.ROLE_HINT );
 
         // AbstractXmlParser.CachedFileEntityResolver downloads DTD/XSD files in ${java.io.tmpdir}
         // Be sure to delete them
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 133d7aa..54ce04a 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
@@ -80,10 +80,10 @@
         }
 
         String actual = writer.toString();
-        assertTrue( actual.indexOf( "<a class=\"externalLink\" href=\"http:/www.xdoc.com\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"./index.html#anchor\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"../index.html#anchor\"></a>" ) != -1 );
-        assertTrue( actual.indexOf( "<a href=\"index.html\"></a>" ) != -1 );
+        assertTrue( actual.contains( "<a class=\"externalLink\" href=\"http:/www.xdoc.com\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"./index.html#anchor\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"../index.html#anchor\"></a>" ) );
+        assertTrue( actual.contains( "<a href=\"index.html\"></a>" ) );
     }
 
     /** {@inheritDoc} */
@@ -426,7 +426,7 @@
             sink.author_();
             SinkEventAttributeSet atts = new SinkEventAttributeSet( 1 );
             atts.addAttribute( "href", "http://maven.apache.org/" );
-            sink.unknown( "base", new Object[] {new Integer( HtmlMarkup.TAG_TYPE_SIMPLE )}, atts );
+            sink.unknown( "base", new Object[] { HtmlMarkup.TAG_TYPE_SIMPLE }, atts );
             sink.head_();
         }
         finally
@@ -438,7 +438,7 @@
             "<head>\n<title>Title</title><!--A comment--><meta name=\"author\" content=\"&#x123;&amp;\" />"
                 + "<base href=\"http://maven.apache.org/\" /></head>";
         String actual = writer.toString();
-        assertTrue( actual, actual.indexOf( expected ) != -1 );
+        assertTrue( actual, actual.contains( expected ) );
     }
 
     /** {@inheritDoc} */