You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2019/12/20 18:20:27 UTC

[jspwiki] 05/10: intellij format + fixes

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit e0f1975e7713ce3d3f221b8a2904ceab4fefe4dc
Author: juanpablo <ju...@apache.org>
AuthorDate: Fri Dec 20 18:51:14 2019 +0100

    intellij format + fixes
---
 .../apache/wiki/diff/ContextualDiffProvider.java   | 311 +++++++++------------
 .../java/org/apache/wiki/diff/DiffProvider.java    |  22 +-
 .../org/apache/wiki/diff/DifferenceManager.java    |  55 ++--
 .../org/apache/wiki/diff/ExternalDiffProvider.java |  80 +++---
 .../apache/wiki/diff/TraditionalDiffProvider.java  | 135 ++++-----
 5 files changed, 250 insertions(+), 353 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
index c568b0f..4b4ee3b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
@@ -19,12 +19,6 @@
 
 package org.apache.wiki.diff;
 
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
@@ -41,13 +35,17 @@ import org.suigeneris.jrcs.diff.delta.DeleteDelta;
 import org.suigeneris.jrcs.diff.delta.Delta;
 import org.suigeneris.jrcs.diff.myers.MyersDiff;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
 
 /**
- * A seriously better diff provider, which highlights changes word-by-word using
- * CSS.
+ * A seriously better diff provider, which highlights changes word-by-word using CSS.
  *
  * Suggested by John Volkar.
- *
  */
 public class ContextualDiffProvider implements DiffProvider {
 
@@ -65,27 +63,27 @@ public class ContextualDiffProvider implements DiffProvider {
     public boolean m_emitChangeNextPreviousHyperlinks = true;
 
     //Don't use spans here the deletion and insertions are nested in this...
-    public String m_changeStartHtml    = ""; //This could be a image '>' for a start marker
-    public String m_changeEndHtml      = ""; //and an image for an end '<' marker
-    public String m_diffStart          = "<div class=\"diff-wikitext\">";
-    public String m_diffEnd            = "</div>";
+    public static final String CHANGE_START_HTML = ""; //This could be a image '>' for a start marker
+    public static final String CHANGE_END_HTML = ""; //and an image for an end '<' marker
+    public static final String DIFF_START = "<div class=\"diff-wikitext\">";
+    public static final String DIFF_END = "</div>";
 
     // Unfortunately we need to do dumb HTML here for RSS feeds.
 
-    public String m_insertionStartHtml = "<font color=\"#8000FF\"><span class=\"diff-insertion\">";
-    public String m_insertionEndHtml   = "</span></font>";
-    public String m_deletionStartHtml  = "<strike><font color=\"red\"><span class=\"diff-deletion\">";
-    public String m_deletionEndHtml    = "</span></font></strike>";
-    private String m_anchorPreIndex    = "<a name=\"change-";
-    private String m_anchorPostIndex   = "\" />";
-    private String m_backPreIndex      = "<a class=\"diff-nextprev\" title=\"Go to previous change\" href=\"#change-";
-    private String m_backPostIndex     = "\">&lt;&lt;</a>";
-    private String m_forwardPreIndex   = "<a class=\"diff-nextprev\" title=\"Go to next change\" href=\"#change-";
-    private String m_forwardPostIndex  = "\">&gt;&gt;</a>";
-    public String m_elidedHeadIndicatorHtml = "<br/><br/><b>...</b>";
-    public String m_elidedTailIndicatorHtml = "<b>...</b><br/><br/>";
-    public String m_lineBreakHtml = "<br />";
-    public String m_alternatingSpaceHtml = "&nbsp;";
+    public static final String INSERTION_START_HTML = "<font color=\"#8000FF\"><span class=\"diff-insertion\">";
+    public static final String INSERTION_END_HTML = "</span></font>";
+    public static final String DELETION_START_HTML = "<strike><font color=\"red\"><span class=\"diff-deletion\">";
+    public static final String DELETION_END_HTML = "</span></font></strike>";
+    private static final String ANCHOR_PRE_INDEX = "<a name=\"change-";
+    private static final String ANCHOR_POST_INDEX = "\" />";
+    private static final String BACK_PRE_INDEX = "<a class=\"diff-nextprev\" title=\"Go to previous change\" href=\"#change-";
+    private static final String BACK_POST_INDEX = "\">&lt;&lt;</a>";
+    private static final String FORWARD_PRE_INDEX = "<a class=\"diff-nextprev\" title=\"Go to next change\" href=\"#change-";
+    private static final String FORWARD_POST_INDEX = "\">&gt;&gt;</a>";
+    public static final String ELIDED_HEAD_INDICATOR_HTML = "<br/><br/><b>...</b>";
+    public static final String ELIDED_TAIL_INDICATOR_HTML = "<b>...</b><br/><br/>";
+    public static final String LINE_BREAK_HTML = "<br />";
+    public static final String ALTERNATING_SPACE_HTML = "&nbsp;";
 
     // This one, I will make property file based...
     private static final int LIMIT_MAX_VALUE = (Integer.MAX_VALUE /2) - 1;
@@ -114,19 +112,13 @@ public class ContextualDiffProvider implements DiffProvider {
      *      
      * {@inheritDoc}
      */
-    public void initialize(WikiEngine engine, Properties properties) throws NoRequiredPropertyException, IOException
-    {
-        String configuredLimit = properties.getProperty(PROP_UNCHANGED_CONTEXT_LIMIT, 
-                                                        Integer.toString(LIMIT_MAX_VALUE));
+    public void initialize( final WikiEngine engine, final Properties properties) throws NoRequiredPropertyException, IOException {
+        final String configuredLimit = properties.getProperty( PROP_UNCHANGED_CONTEXT_LIMIT, Integer.toString( LIMIT_MAX_VALUE ) );
         int limit = LIMIT_MAX_VALUE;
-        try
-        {
-            limit = Integer.parseInt(configuredLimit);
-        }
-        catch (NumberFormatException e)
-        {
-            log.warn("Failed to parseInt " + PROP_UNCHANGED_CONTEXT_LIMIT + "=" + configuredLimit
-                + "   Will use a huge number as limit.", e);
+        try {
+            limit = Integer.parseInt( configuredLimit );
+        } catch( final NumberFormatException e ) {
+            log.warn("Failed to parseInt " + PROP_UNCHANGED_CONTEXT_LIMIT + "=" + configuredLimit + " Will use a huge number as limit.", e );
         }
         m_unchangedContextLimit = limit;
     }
@@ -140,43 +132,34 @@ public class ContextualDiffProvider implements DiffProvider {
      * 
      * {@inheritDoc}
      */
-    public synchronized String makeDiffHtml( WikiContext ctx, String wikiOld, String wikiNew )
-    {
+    public synchronized String makeDiffHtml( final WikiContext ctx, final String wikiOld, final String wikiNew ) {
         //
         // Sequencing handles lineterminator to <br /> and every-other consequtive space to a &nbsp;
         //
-        String[] alpha = sequence( TextUtil.replaceEntities( wikiOld ) );
-        String[] beta  = sequence( TextUtil.replaceEntities( wikiNew ) );
+        final String[] alpha = sequence( TextUtil.replaceEntities( wikiOld ) );
+        final String[] beta  = sequence( TextUtil.replaceEntities( wikiNew ) );
 
-        Revision rev = null;
-        try
-        {
+        final Revision rev;
+        try {
             rev = Diff.diff( alpha, beta, new MyersDiff() );
-        }
-        catch( DifferentiationFailedException dfe )
-        {
+        } catch( final DifferentiationFailedException dfe ) {
             log.error( "Diff generation failed", dfe );
             return "Error while creating version diff.";
         }
 
-        int revSize = rev.size();
-
-        StringBuffer sb = new StringBuffer();
+        final int revSize = rev.size();
+        final StringBuffer sb = new StringBuffer();
 
-        sb.append( m_diffStart );
+        sb.append( DIFF_START );
 
         //
         // The MyersDiff is a bit dumb by converting a single line multi-word diff into a series
         // of Changes. The ChangeMerger pulls them together again...
         //
-        ChangeMerger cm = new ChangeMerger( sb, alpha, revSize );
-
+        final ChangeMerger cm = new ChangeMerger( sb, alpha, revSize );
         rev.accept( cm );
-
         cm.shutdown();
-
-        sb.append( m_diffEnd );
-
+        sb.append( DIFF_END );
         return sb.toString();
     }
 
@@ -188,34 +171,29 @@ public class ContextualDiffProvider implements DiffProvider {
      * All this preseving of newlines and spaces is so the wikitext when diffed will have fidelity
      * to it's original form.  As a side affect we see edits of purely whilespace.
      */
-    private String[] sequence( String wikiText )
-    {
-        String[] linesArray = Diff.stringToArray( wikiText );
-
-        List<String> list = new ArrayList<String>();
-
-        for( int i = 0; i < linesArray.length; i++ )
-        {
-            String line = linesArray[i];
+    private String[] sequence( final String wikiText ) {
+        final String[] linesArray = Diff.stringToArray( wikiText );
+        final List< String > list = new ArrayList<>();
+        for( final String line : linesArray ) {
 
             String lastToken = null;
-            String token = null;
+            String token;
             // StringTokenizer might be discouraged but it still is perfect here...
-            for (StringTokenizer st = new StringTokenizer( line, " ", true ); st.hasMoreTokens();)
-            {
+            for( final StringTokenizer st = new StringTokenizer( line, " ", true ); st.hasMoreTokens(); ) {
                 token = st.nextToken();
 
-                if(" ".equals( lastToken) && " ".equals( token ))
-                    token = m_alternatingSpaceHtml;
+                if( " ".equals( lastToken ) && " ".equals( token ) ) {
+                    token = ALTERNATING_SPACE_HTML;
+                }
 
-                list.add(token);
+                list.add( token );
                 lastToken = token;
             }
 
-            list.add(m_lineBreakHtml); // Line Break
+            list.add( LINE_BREAK_HTML ); // Line Break
         }
 
-        return list.toArray( new String[0] );
+        return list.toArray( new String[ 0 ] );
     }
 
     /**
@@ -224,12 +202,11 @@ public class ContextualDiffProvider implements DiffProvider {
      * whole change process is threadsafe by encapsulating
      * all necessary variables.
      */
-    private final class ChangeMerger implements RevisionVisitor
-    {
-        private StringBuffer m_sb = null;
+    private final class ChangeMerger implements RevisionVisitor {
+        private StringBuffer m_sb;
 
         /** Keeping score of the original lines to process */
-        private int m_max = -1;
+        private int m_max;
 
         private int m_index = 0;
 
@@ -243,15 +220,14 @@ public class ContextualDiffProvider implements DiffProvider {
         private int m_mode = -1; /* -1: Unset, 0: Add, 1: Del, 2: Change mode */
 
         /** Buffer to coalesce the changes together */
-        private StringBuffer m_origBuf = null;
+        private StringBuffer m_origBuf;
 
-        private StringBuffer m_newBuf = null;
+        private StringBuffer m_newBuf;
 
         /** Reference to the source string array */
-        private String[] m_origStrings = null;
+        private String[] m_origStrings;
 
-        private ChangeMerger( final StringBuffer sb, final String[] origStrings, final int max )
-        {
+        private ChangeMerger( final StringBuffer sb, final String[] origStrings, final int max ) {
             m_sb = sb;
             m_origStrings = origStrings != null ? origStrings.clone() : null;
             m_max = max;
@@ -260,85 +236,73 @@ public class ContextualDiffProvider implements DiffProvider {
             m_newBuf = new StringBuffer();
         }
 
-        private void updateState( Delta delta )
-        {
+        private void updateState( final Delta delta ) {
             m_index++;
-
-            Chunk orig = delta.getOriginal();
-
-            if (orig.first() > m_firstElem)
-            {
+            final Chunk orig = delta.getOriginal();
+            if( orig.first() > m_firstElem ) {
                 // We "skip" some lines in the output.
                 // So flush out the last Change, if one exists.
                 flushChanges();
 
                 // Allow us to "skip" large swaths of unchanged text, show a "limited" amound of
                 // unchanged context so the changes are shown in
-                if ((orig.first() - m_firstElem) > 2 * m_unchangedContextLimit)
-                {
-                    if (m_firstElem > 0)
-                    {
-                        int endIndex = Math.min( m_firstElem + m_unchangedContextLimit, m_origStrings.length -1 );
+                if( ( orig.first() - m_firstElem ) > 2 * m_unchangedContextLimit ) {
+                    if (m_firstElem > 0) {
+                        final int endIndex = Math.min( m_firstElem + m_unchangedContextLimit, m_origStrings.length -1 );
 
-                        for (int j = m_firstElem; j < endIndex; j++)
-                            m_sb.append(m_origStrings[j]);
+                        for( int j = m_firstElem; j < endIndex; j++ ) {
+                            m_sb.append( m_origStrings[ j ] );
+                        }
 
-                        m_sb.append(m_elidedTailIndicatorHtml);
+                        m_sb.append( ELIDED_TAIL_INDICATOR_HTML );
                     }
 
-                    m_sb.append(m_elidedHeadIndicatorHtml);
+                    m_sb.append( ELIDED_HEAD_INDICATOR_HTML );
 
-                    int startIndex = Math.max(orig.first() - m_unchangedContextLimit, 0);
-                    for (int j = startIndex; j < orig.first(); j++)
-                        m_sb.append(m_origStrings[j]);
+                    final int startIndex = Math.max(orig.first() - m_unchangedContextLimit, 0);
+                    for (int j = startIndex; j < orig.first(); j++) {
+                        m_sb.append( m_origStrings[ j ] );
+                    }
 
-                }
-                else
-                {
+                } else {
                     // No need to skip anything, just output the whole range...
-                    for (int j = m_firstElem; j < orig.first(); j++)
-                    m_sb.append( m_origStrings[j] );
+                    for( int j = m_firstElem; j < orig.first(); j++ ) {
+                        m_sb.append( m_origStrings[ j ] );
+                    }
                 }
             }
             m_firstElem = orig.last() + 1;
         }
 
-        public void visit( Revision rev )
-        {
+        public void visit( final Revision rev ) {
             // GNDN (Goes nowhere, does nothing)
         }
 
-        public void visit( AddDelta delta )
-        {
+        public void visit( final AddDelta delta ) {
             updateState( delta );
 
             // We have run Deletes up to now. Flush them out.
-            if( m_mode == 1 )
-            {
+            if( m_mode == 1 ) {
                 flushChanges();
                 m_mode = -1;
             }
             // We are in "neutral mode". Start a new Change
-            if( m_mode == -1 )
-            {
+            if( m_mode == -1 ) {
                 m_mode = 0;
             }
 
             // We are in "add mode".
-            if( m_mode == 0 || m_mode == 2 )
-            {
+            if( m_mode == 0 || m_mode == 2 ) {
                 addNew( delta.getRevised() );
                 m_mode = 1;
             }
         }
 
-        public void visit( ChangeDelta delta )
-        {
+        public void visit( final ChangeDelta delta ) {
             updateState( delta );
 
             // We are in "neutral mode". A Change might be merged with an add or delete.
-            if( m_mode == -1 )
-            {
+            if( m_mode == -1 ) {
                 m_mode = 2;
             }
 
@@ -347,123 +311,101 @@ public class ContextualDiffProvider implements DiffProvider {
             addNew( delta.getRevised() );
         }
 
-        public void visit( DeleteDelta delta )
-        {
+        public void visit( final DeleteDelta delta ) {
             updateState( delta );
 
             // We have run Adds up to now. Flush them out.
-            if( m_mode == 0 )
-            {
+            if( m_mode == 0 ) {
                 flushChanges();
                 m_mode = -1;
             }
             // We are in "neutral mode". Start a new Change
-            if( m_mode == -1 )
-            {
+            if( m_mode == -1 ) {
                 m_mode = 1;
             }
 
             // We are in "delete mode".
-            if( m_mode == 1 || m_mode == 2 )
-            {
+            if( m_mode == 1 || m_mode == 2 ) {
                 addOrig( delta.getOriginal() );
                 m_mode = 1;
             }
         }
 
-        public void shutdown()
-        {
+        public void shutdown() {
             m_index = m_max + 1; // Make sure that no hyperlink gets created
             flushChanges();
 
-            if (m_firstElem < m_origStrings.length)
-            {
+            if( m_firstElem < m_origStrings.length ) {
                 // If there's more than the limit of the orginal left just emit limit and elided...
-                if ((m_origStrings.length - m_firstElem) > m_unchangedContextLimit)
-                {
-                    int endIndex = Math.min( m_firstElem + m_unchangedContextLimit, m_origStrings.length -1 );
-
-                    for (int j = m_firstElem; j < endIndex; j++)
-                    m_sb.append( m_origStrings[j] );
+                if( ( m_origStrings.length - m_firstElem ) > m_unchangedContextLimit ) {
+                    final int endIndex = Math.min( m_firstElem + m_unchangedContextLimit, m_origStrings.length -1 );
+                    for (int j = m_firstElem; j < endIndex; j++) {
+                        m_sb.append( m_origStrings[ j ] );
+                    }
 
-                    m_sb.append(m_elidedTailIndicatorHtml);
-                }
-                else
+                    m_sb.append( ELIDED_TAIL_INDICATOR_HTML );
+                } else {
                 // emit entire tail of original...
-                {
-                    for (int j = m_firstElem; j < m_origStrings.length; j++)
-                        m_sb.append(m_origStrings[j]);
+                    for( int j = m_firstElem; j < m_origStrings.length; j++ ) {
+                        m_sb.append( m_origStrings[ j ] );
+                    }
                 }
             }
         }
 
-        private void addOrig( Chunk chunk )
-        {
-            if( chunk != null )
-            {
+        private void addOrig( final Chunk chunk ) {
+            if( chunk != null ) {
                 chunk.toString( m_origBuf );
             }
         }
 
-        private void addNew( Chunk chunk )
-        {
-            if( chunk != null )
-            {
+        private void addNew( final Chunk chunk ) {
+            if( chunk != null ) {
                 chunk.toString( m_newBuf );
             }
         }
 
-
-
-        private void flushChanges()
-        {
-
-            if( m_newBuf.length() + m_origBuf.length() > 0 )
-            {
+        private void flushChanges() {
+            if( m_newBuf.length() + m_origBuf.length() > 0 ) {
                 // This is the span element which encapsulates anchor and the change itself
-                m_sb.append( m_changeStartHtml );
+                m_sb.append( CHANGE_START_HTML );
 
                 // Do we want to have a "back link"?
-                if( m_emitChangeNextPreviousHyperlinks && m_count > 1 )
-                {
-                    m_sb.append( m_backPreIndex );
+                if( m_emitChangeNextPreviousHyperlinks && m_count > 1 ) {
+                    m_sb.append( BACK_PRE_INDEX );
                     m_sb.append( m_count - 1 );
-                    m_sb.append( m_backPostIndex );
+                    m_sb.append( BACK_POST_INDEX );
                 }
 
                 // An anchor for the change.
-                if (m_emitChangeNextPreviousHyperlinks)
-                {
-                    m_sb.append( m_anchorPreIndex );
+                if (m_emitChangeNextPreviousHyperlinks) {
+                    m_sb.append( ANCHOR_PRE_INDEX );
                     m_sb.append( m_count++ );
-                    m_sb.append( m_anchorPostIndex );
+                    m_sb.append( ANCHOR_POST_INDEX );
                 }
 
                 // ... has been added
-                if( m_newBuf.length() > 0 )
-                {
-                    m_sb.append( m_insertionStartHtml );
+                if( m_newBuf.length() > 0 ) {
+                    m_sb.append( INSERTION_START_HTML );
                     m_sb.append( m_newBuf );
-                    m_sb.append( m_insertionEndHtml );
+                    m_sb.append( INSERTION_END_HTML );
                 }
 
                 // .. has been removed
-                if( m_origBuf.length() > 0 )
-                {
-                    m_sb.append( m_deletionStartHtml );
+                if( m_origBuf.length() > 0 ) {
+                    m_sb.append( DELETION_START_HTML );
                     m_sb.append( m_origBuf );
-                    m_sb.append( m_deletionEndHtml );
+                    m_sb.append( DELETION_END_HTML );
                 }
 
                 // Do we want a "forward" link?
-                if( m_emitChangeNextPreviousHyperlinks && (m_index < m_max) )
-                {
-                    m_sb.append( m_forwardPreIndex );
+                if( m_emitChangeNextPreviousHyperlinks && (m_index < m_max) ) {
+                    m_sb.append( FORWARD_PRE_INDEX );
                     m_sb.append( m_count ); // Has already been incremented.
-                    m_sb.append( m_forwardPostIndex );
+                    m_sb.append( FORWARD_POST_INDEX );
                 }
 
-                m_sb.append( m_changeEndHtml );
+                m_sb.append( CHANGE_END_HTML );
 
                 // Nuke the buffers.
                 m_origBuf = new StringBuffer();
@@ -474,4 +416,5 @@ public class ContextualDiffProvider implements DiffProvider {
             m_mode = -1;
         }
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/DiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/DiffProvider.java
index 774eaa6..4a0aced 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/DiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/DiffProvider.java
@@ -18,19 +18,19 @@
  */
 package org.apache.wiki.diff;
 
-import java.io.IOException;
-import java.util.Properties;
-
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiProvider;
 import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
 
+import java.io.IOException;
+import java.util.Properties;
+
+
 /**
  *  Provides an SPI for creating a diff between two page versions.
  */
-public interface DiffProvider extends WikiProvider
-{
+public interface DiffProvider extends WikiProvider {
     /**
      * The return string is to be XHTML compliant ready to display html.  No further
      * processing of this text will be done by the wiki engine.
@@ -40,27 +40,23 @@ public interface DiffProvider extends WikiProvider
      * @param oldWikiText the old text
      * @param newWikiText the new text
      */
-    String makeDiffHtml(WikiContext context, String oldWikiText, String newWikiText);
+    String makeDiffHtml( WikiContext context, String oldWikiText, String newWikiText );
     
     /**
      *  If there is no diff provider set, this provider will work instead.
      */
-    class NullDiffProvider implements DiffProvider
-    {
+    class NullDiffProvider implements DiffProvider {
         /**
          *  {@inheritDoc}
          */
-        public String makeDiffHtml(WikiContext ctx, String oldWikiText, String newWikiText)
-        {
+        public String makeDiffHtml( final WikiContext ctx, final String oldWikiText, final String newWikiText ) {
             return "You are using the NullDiffProvider, check your properties file.";
         }
 
         /**
          *  {@inheritDoc}
          */
-        public void initialize(WikiEngine engine, Properties properties) 
-            throws NoRequiredPropertyException, IOException
-        {
+        public void initialize( final WikiEngine engine, final Properties properties ) throws NoRequiredPropertyException, IOException {
         }
 
         /**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java
index d15d5ce..6643847 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java
@@ -19,21 +19,22 @@
 
 package org.apache.wiki.diff;
 
-import java.io.IOException;
-import java.util.Properties;
-
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.api.exceptions.NoRequiredPropertyException;
 import org.apache.wiki.util.ClassUtil;
 
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Properties;
+
 
 /**
  * Load, initialize and delegate to the DiffProvider that will actually do the work.
  */
 public class DifferenceManager {
-    private static final Logger log = Logger.getLogger(DifferenceManager.class);
+    private static final Logger log = Logger.getLogger( DifferenceManager.class );
 
     /**
      * Property value for storing a diff provider.  Value is {@value}.
@@ -48,42 +49,32 @@ public class DifferenceManager {
      * @param engine The WikiEngine.
      * @param props  A set of properties.
      */
-    public DifferenceManager(WikiEngine engine, Properties props) {
-        loadProvider(props);
+    public DifferenceManager( final WikiEngine engine, final Properties props ) {
+        loadProvider( props );
+        initializeProvider( engine, props );
 
-        initializeProvider(engine, props);
-
-        log.info("Using difference provider: " + m_provider.getProviderInfo());
+        log.info( "Using difference provider: " + m_provider.getProviderInfo() );
     }
 
-    private void loadProvider(Properties props) {
-        String providerClassName = props.getProperty(PROP_DIFF_PROVIDER,
-                TraditionalDiffProvider.class.getName());
-
+    private void loadProvider( final Properties props ) {
+        final String providerClassName = props.getProperty( PROP_DIFF_PROVIDER, TraditionalDiffProvider.class.getName() );
         try {
-            Class<?> providerClass = ClassUtil.findClass("org.apache.wiki.diff", providerClassName);
-            m_provider = (DiffProvider) providerClass.newInstance();
-        } catch (ClassNotFoundException e) {
-            log.warn("Failed loading DiffProvider, will use NullDiffProvider.", e);
-        } catch (InstantiationException e) {
-            log.warn("Failed loading DiffProvider, will use NullDiffProvider.", e);
-        } catch (IllegalAccessException e) {
+            final Class< ? > providerClass = ClassUtil.findClass("org.apache.wiki.diff", providerClassName );
+            m_provider = (DiffProvider) providerClass.getDeclaredConstructor().newInstance();
+        } catch( final ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e ) {
             log.warn("Failed loading DiffProvider, will use NullDiffProvider.", e);
         }
 
-        if (null == m_provider) {
+        if( m_provider == null ) {
             m_provider = new DiffProvider.NullDiffProvider();
         }
     }
 
 
-    private void initializeProvider(WikiEngine engine, Properties props) {
+    private void initializeProvider( final WikiEngine engine, final Properties props ) {
         try {
             m_provider.initialize(engine, props);
-        } catch (NoRequiredPropertyException e1) {
-            log.warn("Failed initializing DiffProvider, will use NullDiffProvider.", e1);
-            m_provider = new DiffProvider.NullDiffProvider(); //doesn't need init'd
-        } catch (IOException e1) {
+        } catch( final NoRequiredPropertyException | IOException e1 ) {
             log.warn("Failed initializing DiffProvider, will use NullDiffProvider.", e1);
             m_provider = new DiffProvider.NullDiffProvider(); //doesn't need init'd
         }
@@ -97,17 +88,17 @@ public class DifferenceManager {
      * @param secondWikiText the new text
      * @return XHTML, or empty string, if no difference detected.
      */
-    public String makeDiff(WikiContext context, String firstWikiText, String secondWikiText) {
-        String diff = null;
+    public String makeDiff( final WikiContext context, final String firstWikiText, final String secondWikiText ) {
+        String diff;
         try {
-            diff = m_provider.makeDiffHtml(context, firstWikiText, secondWikiText);
+            diff = m_provider.makeDiffHtml( context, firstWikiText, secondWikiText );
 
-            if (diff == null) {
+            if( diff == null ) {
                 diff = "";
             }
-        } catch (Exception e) {
+        } catch( final Exception e ) {
             diff = "Failed to create a diff, check the logs.";
-            log.warn(diff, e);
+            log.warn( diff, e );
         }
         return diff;
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
index 48b920f..fdf7cee 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/ExternalDiffProvider.java
@@ -35,11 +35,10 @@ import java.nio.charset.StandardCharsets;
 import java.util.Properties;
 
 /**
- * This DiffProvider allows external command line tools to be used to generate
- * the diff.
+ * This DiffProvider allows external command line tools to be used to generate the diff.
  */
-public class ExternalDiffProvider implements DiffProvider
-{
+public class ExternalDiffProvider implements DiffProvider {
+
     private static final Logger log = Logger.getLogger(ExternalDiffProvider.class);
 
     /**
@@ -85,13 +84,9 @@ public class ExternalDiffProvider implements DiffProvider
      * {@inheritDoc}
      * @see org.apache.wiki.WikiProvider#initialize(org.apache.wiki.WikiEngine, java.util.Properties)
      */
-    public void initialize( WikiEngine engine, Properties properties )
-        throws NoRequiredPropertyException, IOException
-    {
+    public void initialize( final WikiEngine engine, final Properties properties ) throws NoRequiredPropertyException, IOException {
         m_diffCommand = properties.getProperty( PROP_DIFFCOMMAND );
-
-        if( (null == m_diffCommand) || (m_diffCommand.trim().equals( "" )) )
-        {
+        if( m_diffCommand == null || m_diffCommand.trim().equals( "" ) ) {
             throw new NoRequiredPropertyException( "ExternalDiffProvider missing required property", PROP_DIFFCOMMAND );
         }
 
@@ -103,36 +98,33 @@ public class ExternalDiffProvider implements DiffProvider
      * Makes the diff by calling "diff" program.
      * {@inheritDoc}
      */
-    public String makeDiffHtml( WikiContext ctx, String p1, String p2 )
-    {
+    public String makeDiffHtml( final WikiContext ctx, final String p1, final String p2 ) {
         File f1 = null;
         File f2 = null;
         String diff = null;
 
-        try
-        {
+        try {
             f1 = FileUtil.newTmpFile(p1, m_encoding);
             f2 = FileUtil.newTmpFile(p2, m_encoding);
 
             String cmd = TextUtil.replaceString(m_diffCommand, "%s1", f1.getPath());
             cmd = TextUtil.replaceString(cmd, "%s2", f2.getPath());
 
-            String output = FileUtil.runSimpleCommand(cmd, f1.getParent());
+            final String output = FileUtil.runSimpleCommand(cmd, f1.getParent());
 
             // FIXME: Should this rely on the system default encoding?
-            String rawWikiDiff = new String( output.getBytes( StandardCharsets.ISO_8859_1 ), m_encoding );
-
-            String htmlWikiDiff = TextUtil.replaceEntities( rawWikiDiff );
+            final String rawWikiDiff = new String( output.getBytes( StandardCharsets.ISO_8859_1 ), m_encoding );
+            final String htmlWikiDiff = TextUtil.replaceEntities( rawWikiDiff );
 
-            if (m_traditionalColorization) //FIXME, see comment near declaration...
-                diff = colorizeDiff(htmlWikiDiff);
-            else
+            if (m_traditionalColorization) { //FIXME, see comment near declaration...
+                diff = colorizeDiff( htmlWikiDiff );
+            } else {
                 diff = htmlWikiDiff;
-
-        } catch (IOException e) {
-            log.error("Failed to do file diff", e);
-        } catch (InterruptedException e) {
-            log.error("Interrupted", e);
+            }
+        } catch( final IOException e ) {
+            log.error("Failed to do file diff", e );
+        } catch( final InterruptedException e ) {
+            log.error("Interrupted", e );
         } finally {
             if( f1 != null ) {
                 f1.delete();
@@ -149,30 +141,26 @@ public class ExternalDiffProvider implements DiffProvider
     /**
      * Goes through output provided by a diff command and inserts HTML tags to
      * make the result more legible. Currently colors lines starting with a +
-     * green, those starting with - reddish (hm, got to think of color blindness
-     * here...).
+     * green, those starting with - reddish (hm, got to think of color blindness here...).
      */
-    static String colorizeDiff(String diffText) throws IOException {
+    static String colorizeDiff( final String diffText ) throws IOException {
         if( diffText == null ) {
             return "Invalid diff - probably something wrong with server setup.";
         }
 
-        String line = null;
-        String start = null;
-        String stop = null;
+        String line;
+        String start;
+        String stop;
 
-        BufferedReader in = new BufferedReader( new StringReader( diffText ) );
-        StringBuilder out = new StringBuilder();
+        final BufferedReader in = new BufferedReader( new StringReader( diffText ) );
+        final StringBuilder out = new StringBuilder();
 
         out.append("<table class=\"diff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
-        while( (line = in.readLine()) != null )
-        {
+        while( (line = in.readLine()) != null ) {
             stop = CSS_DIFF_CLOSE;
 
-            if( line.length() > 0 )
-            {
-                switch( line.charAt( 0 ) )
-                {
+            if( line.length() > 0 ) {
+                switch( line.charAt( 0 ) ) {
                     case DIFF_ADDED_SYMBOL:
                         start = CSS_DIFF_ADDED;
                         break;
@@ -182,18 +170,18 @@ public class ExternalDiffProvider implements DiffProvider
                     default:
                         start = CSS_DIFF_UNCHANGED;
                 }
-            }
-            else
-            {
+            } else {
                 start = CSS_DIFF_UNCHANGED;
             }
 
-            out.append( start );
-            out.append( line.trim() );
-            out.append( stop + "\n" );
+            out.append( start )
+               .append( line.trim() )
+               .append( stop )
+               .append( "\n" );
         }
 
         out.append( "</table>\n" );
         return out.toString();
     }
+
 }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/TraditionalDiffProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/TraditionalDiffProvider.java
index 14df7d9..6bd60bf 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/TraditionalDiffProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/TraditionalDiffProvider.java
@@ -19,14 +19,6 @@
 
 package org.apache.wiki.diff;
 
-import java.io.IOException;
-import java.text.ChoiceFormat;
-import java.text.Format;
-import java.text.MessageFormat;
-import java.text.NumberFormat;
-import java.util.Properties;
-import java.util.ResourceBundle;
-
 import org.apache.log4j.Logger;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
@@ -44,29 +36,32 @@ import org.suigeneris.jrcs.diff.delta.Chunk;
 import org.suigeneris.jrcs.diff.delta.DeleteDelta;
 import org.suigeneris.jrcs.diff.myers.MyersDiff;
 
+import java.io.IOException;
+import java.text.ChoiceFormat;
+import java.text.Format;
+import java.text.MessageFormat;
+import java.text.NumberFormat;
+import java.util.Properties;
+import java.util.ResourceBundle;
+
 
 /**
  * This is the JSPWiki 'traditional' diff.  It uses an internal diff engine.
- * 
  */
-public class TraditionalDiffProvider implements DiffProvider
-{
-    private static final Logger log = Logger.getLogger(TraditionalDiffProvider.class);
+public class TraditionalDiffProvider implements DiffProvider {
 
+    private static final Logger log = Logger.getLogger( TraditionalDiffProvider.class );
     private static final String CSS_DIFF_ADDED = "<tr><td class=\"diffadd\">";
     private static final String CSS_DIFF_REMOVED = "<tr><td class=\"diffrem\">";
     private static final String CSS_DIFF_UNCHANGED = "<tr><td class=\"diff\">";
     private static final String CSS_DIFF_CLOSE = "</td></tr>" + Diff.NL;
 
-
     /**
      *  Constructs the provider.
      */
-    public TraditionalDiffProvider()
-    {
+    public TraditionalDiffProvider() {
     }
 
-
     /**
      * {@inheritDoc}
      * @see org.apache.wiki.WikiProvider#getProviderInfo()
@@ -80,9 +75,7 @@ public class TraditionalDiffProvider implements DiffProvider
      * {@inheritDoc}
      * @see org.apache.wiki.WikiProvider#initialize(org.apache.wiki.WikiEngine, java.util.Properties)
      */
-    public void initialize(WikiEngine engine, Properties properties)
-        throws NoRequiredPropertyException, IOException
-    {
+    public void initialize( final WikiEngine engine, final Properties properties ) throws NoRequiredPropertyException, IOException {
     }
 
     /**
@@ -95,105 +88,91 @@ public class TraditionalDiffProvider implements DiffProvider
      * 
      * @return Full HTML diff.
      */
-    public String makeDiffHtml( WikiContext ctx, String p1, String p2 )
-    {
-        String diffResult = "";
+    public String makeDiffHtml( final WikiContext ctx, final String p1, final String p2 ) {
+        final String diffResult;
 
-        try
-        {
-            String[] first  = Diff.stringToArray(TextUtil.replaceEntities(p1));
-            String[] second = Diff.stringToArray(TextUtil.replaceEntities(p2));
-            Revision rev = Diff.diff(first, second, new MyersDiff());
+        try {
+            final String[] first  = Diff.stringToArray(TextUtil.replaceEntities(p1));
+            final String[] second = Diff.stringToArray(TextUtil.replaceEntities(p2));
+            final Revision rev = Diff.diff(first, second, new MyersDiff());
 
-            if( rev == null || rev.size() == 0 )
-            {
+            if( rev == null || rev.size() == 0 ) {
                 // No difference
-
                 return "";
             }
 
-            StringBuffer ret = new StringBuffer(rev.size() * 20); // Guessing how big it will become...
+            final StringBuffer ret = new StringBuffer(rev.size() * 20); // Guessing how big it will become...
 
-            ret.append("<table class=\"diff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
-            rev.accept( new RevisionPrint(ctx,ret) );
-            ret.append("</table>\n");
+            ret.append( "<table class=\"diff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n" );
+            rev.accept( new RevisionPrint( ctx, ret ) );
+            ret.append( "</table>\n" );
 
             return ret.toString();
-        }
-        catch( DifferentiationFailedException e )
-        {
+        } catch( final DifferentiationFailedException e ) {
             diffResult = "makeDiff failed with DifferentiationFailedException";
-            log.error(diffResult, e);
+            log.error( diffResult, e );
         }
 
         return diffResult;
     }
 
 
-    private static final class RevisionPrint
-        implements RevisionVisitor
-    {
-        private StringBuffer m_result = null;
+    private static final class RevisionPrint implements RevisionVisitor {
+
+        private StringBuffer m_result;
         private WikiContext  m_context;
         private ResourceBundle m_rb;
         
-        private RevisionPrint(WikiContext ctx,StringBuffer sb)
-        {
+        private RevisionPrint( final WikiContext ctx, final StringBuffer sb ) {
             m_result = sb;
             m_context = ctx;
             m_rb = Preferences.getBundle( ctx, InternationalizationManager.CORE_BUNDLE );
         }
 
-        public void visit(Revision rev)
-        {
+        public void visit( final Revision rev ) {
             // GNDN (Goes nowhere, does nothing)
         }
 
-        public void visit(AddDelta delta)
-        {
-            Chunk changed = delta.getRevised();
-            print(changed, m_rb.getString( "diff.traditional.added" ) );
-            changed.toString(m_result, CSS_DIFF_ADDED, CSS_DIFF_CLOSE);
+        public void visit( final AddDelta delta ) {
+            final Chunk changed = delta.getRevised();
+            print( changed, m_rb.getString( "diff.traditional.added" ) );
+            changed.toString( m_result, CSS_DIFF_ADDED, CSS_DIFF_CLOSE );
         }
 
-        public void visit(ChangeDelta delta)
-        {
-            Chunk changed = delta.getOriginal();
-            print(changed, m_rb.getString( "diff.traditional.changed") );
-            changed.toString(m_result, CSS_DIFF_REMOVED, CSS_DIFF_CLOSE);
-            delta.getRevised().toString(m_result, CSS_DIFF_ADDED, CSS_DIFF_CLOSE);
+        public void visit( final ChangeDelta delta ) {
+            final Chunk changed = delta.getOriginal();
+            print(changed, m_rb.getString( "diff.traditional.changed" ) );
+            changed.toString( m_result, CSS_DIFF_REMOVED, CSS_DIFF_CLOSE );
+            delta.getRevised().toString( m_result, CSS_DIFF_ADDED, CSS_DIFF_CLOSE );
         }
 
-        public void visit(DeleteDelta delta)
-        {
-            Chunk changed = delta.getOriginal();
-            print(changed, m_rb.getString( "diff.traditional.removed") );
-            changed.toString(m_result, CSS_DIFF_REMOVED, CSS_DIFF_CLOSE);
+        public void visit( final DeleteDelta delta ) {
+            final Chunk changed = delta.getOriginal();
+            print( changed, m_rb.getString( "diff.traditional.removed" ) );
+            changed.toString( m_result, CSS_DIFF_REMOVED, CSS_DIFF_CLOSE );
         }
 
-        private void print(Chunk changed, String type)
-        {
-            m_result.append(CSS_DIFF_UNCHANGED);
-            
-            String[] choiceString = 
-            {
+        private void print( final Chunk changed, final String type ) {
+            m_result.append( CSS_DIFF_UNCHANGED );
+
+            final String[] choiceString = {
                m_rb.getString("diff.traditional.oneline"),
                m_rb.getString("diff.traditional.lines")
             };
-            double[] choiceLimits = { 1, 2 };
-            
-            MessageFormat fmt = new MessageFormat("");
+            final double[] choiceLimits = { 1, 2 };
+
+            final MessageFormat fmt = new MessageFormat("");
             fmt.setLocale( Preferences.getLocale(m_context) );
-            ChoiceFormat cfmt = new ChoiceFormat( choiceLimits, choiceString );
+            final ChoiceFormat cfmt = new ChoiceFormat( choiceLimits, choiceString );
             fmt.applyPattern( type );
-            Format[] formats = { NumberFormat.getInstance(), cfmt, NumberFormat.getInstance() };
+            final Format[] formats = { NumberFormat.getInstance(), cfmt, NumberFormat.getInstance() };
             fmt.setFormats( formats );
-            
-            Object[] params = { changed.first() + 1, 
-                                changed.size(),
-                                changed.size() };
+
+            final Object[] params = { changed.first() + 1,
+                                      changed.size(),
+                                      changed.size() };
             m_result.append( fmt.format(params) );
-            m_result.append(CSS_DIFF_CLOSE);
+            m_result.append( CSS_DIFF_CLOSE );
         }
     }
 }