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:31 UTC
[jspwiki] 09/10: JSPWIKI-120: rename DifferenceManager as
WikiDifferenceManager and extract interface from it (again,
DifferenceManager)
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 94306fff73d16bb7e1b7f527beef25d17890b1cf
Author: juanpablo <ju...@apache.org>
AuthorDate: Fri Dec 20 19:19:06 2019 +0100
JSPWIKI-120: rename DifferenceManager as WikiDifferenceManager and extract interface from it (again, DifferenceManager)
---
.../org/apache/wiki/diff/DifferenceManager.java | 82 ++--------------------
...enceManager.java => WikiDifferenceManager.java} | 9 +--
.../src/main/resources/ini/classmappings.xml | 2 +-
3 files changed, 8 insertions(+), 85 deletions(-)
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 bf46bde..a068632 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,66 +19,16 @@
package org.apache.wiki.diff;
-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.providers.WikiPageProvider;
-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 );
+public interface DifferenceManager {
/** Property value for storing a diff provider. Value is {@value}. */
- public static final String PROP_DIFF_PROVIDER = "jspwiki.diffProvider";
-
- private DiffProvider m_provider;
-
- /**
- * Creates a new DifferenceManager for the given engine.
- *
- * @param engine The WikiEngine.
- * @param props A set of properties.
- */
- public DifferenceManager( final WikiEngine engine, final Properties props ) {
- loadProvider( props );
- initializeProvider( engine, props );
-
- log.info( "Using difference provider: " + m_provider.getProviderInfo() );
- }
-
- private void loadProvider( final Properties props ) {
- final String providerClassName = props.getProperty( PROP_DIFF_PROVIDER, TraditionalDiffProvider.class.getName() );
- try {
- 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( m_provider == null ) {
- m_provider = new DiffProvider.NullDiffProvider();
- }
- }
-
-
- private void initializeProvider( final WikiEngine engine, final Properties props ) {
- try {
- m_provider.initialize(engine, props);
- } catch( final NoRequiredPropertyException | IOException e1 ) {
- log.warn("Failed initializing DiffProvider, will use NullDiffProvider.", e1);
- m_provider = new DiffProvider.NullDiffProvider(); //doesn't need init'd
- }
- }
+ String PROP_DIFF_PROVIDER = "jspwiki.diffProvider";
/**
* Returns valid XHTML string to be used in any way you please.
@@ -88,20 +38,7 @@ public class DifferenceManager {
* @param secondWikiText the new text
* @return XHTML, or empty string, if no difference detected.
*/
- public String makeDiff( final WikiContext context, final String firstWikiText, final String secondWikiText ) {
- String diff;
- try {
- diff = m_provider.makeDiffHtml( context, firstWikiText, secondWikiText );
-
- if( diff == null ) {
- diff = "";
- }
- } catch( final Exception e ) {
- diff = "Failed to create a diff, check the logs.";
- log.warn( diff, e );
- }
- return diff;
- }
+ String makeDiff( WikiContext context, String firstWikiText, String secondWikiText );
/**
* Returns a diff of two versions of a page.
@@ -114,18 +51,7 @@ public class DifferenceManager {
*
* @return A HTML-ized difference between two pages. If there is no difference, returns an empty string.
*/
- public String getDiff( final WikiContext context, final int version1, final int version2 ) {
- final String page = context.getPage().getName();
- String page1 = context.getEngine().getPureText( page, version1 );
- final String page2 = context.getEngine().getPureText( page, version2 );
-
- // Kludge to make diffs for new pages to work this way.
- if( version1 == WikiPageProvider.LATEST_VERSION ) {
- page1 = "";
- }
-
- return makeDiff( context, page1, page2 );
- }
+ String getDiff( WikiContext context, int version1, int version2 );
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java b/jspwiki-main/src/main/java/org/apache/wiki/diff/WikiDifferenceManager.java
similarity index 93%
copy from jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java
copy to jspwiki-main/src/main/java/org/apache/wiki/diff/WikiDifferenceManager.java
index bf46bde..e7100ad 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/diff/DifferenceManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/diff/WikiDifferenceManager.java
@@ -34,12 +34,9 @@ import java.util.Properties;
/**
* Load, initialize and delegate to the DiffProvider that will actually do the work.
*/
-public class DifferenceManager {
+public class WikiDifferenceManager implements DifferenceManager {
- private static final Logger log = Logger.getLogger( DifferenceManager.class );
-
- /** Property value for storing a diff provider. Value is {@value}. */
- public static final String PROP_DIFF_PROVIDER = "jspwiki.diffProvider";
+ private static final Logger log = Logger.getLogger( WikiDifferenceManager.class );
private DiffProvider m_provider;
@@ -49,7 +46,7 @@ public class DifferenceManager {
* @param engine The WikiEngine.
* @param props A set of properties.
*/
- public DifferenceManager( final WikiEngine engine, final Properties props ) {
+ public WikiDifferenceManager( final WikiEngine engine, final Properties props ) {
loadProvider( props );
initializeProvider( engine, props );
diff --git a/jspwiki-main/src/main/resources/ini/classmappings.xml b/jspwiki-main/src/main/resources/ini/classmappings.xml
index 90d13d3..7a2ca54 100644
--- a/jspwiki-main/src/main/resources/ini/classmappings.xml
+++ b/jspwiki-main/src/main/resources/ini/classmappings.xml
@@ -101,7 +101,7 @@
</mapping>
<mapping>
<requestedClass>org.apache.wiki.diff.DifferenceManager</requestedClass>
- <mappedClass>org.apache.wiki.diff.DifferenceManager</mappedClass>
+ <mappedClass>org.apache.wiki.diff.WikiDifferenceManager</mappedClass>
</mapping>
<mapping>
<requestedClass>org.apache.wiki.i18n.InternationalizationManager</requestedClass>