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 2020/03/21 17:04:34 UTC
[jspwiki] 32/36: move rss initialization from WikiEngine into
RSSGenerator
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 380600727195f334fcfb7475c94ef5896a681526
Author: juanpablo <ju...@apache.org>
AuthorDate: Sat Mar 21 17:08:10 2020 +0100
move rss initialization from WikiEngine into RSSGenerator
---
.../src/main/java/org/apache/wiki/WikiEngine.java | 18 ++---------
.../java/org/apache/wiki/rss/RSSGenerator.java | 35 ++++++++++++++++++----
2 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index 5c5e7e2..f907fd7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -45,7 +45,6 @@ import org.apache.wiki.plugin.PluginManager;
import org.apache.wiki.references.ReferenceManager;
import org.apache.wiki.render.RenderingManager;
import org.apache.wiki.rss.RSSGenerator;
-import org.apache.wiki.rss.RSSThread;
import org.apache.wiki.search.SearchManager;
import org.apache.wiki.tasks.TasksManager;
import org.apache.wiki.ui.CommandResolver;
@@ -518,26 +517,13 @@ public class WikiEngine implements Engine {
try {
if( TextUtil.getBooleanProperty( props, RSSGenerator.PROP_GENERATE_RSS,false ) ) {
m_rssGenerator = ClassUtil.getMappedObject( RSSGenerator.class.getName(), this, props );
+ m_rssGenerator.initialize( this, props );
managers.put( RSSGenerator.class, m_rssGenerator );
}
} catch( final Exception e ) {
log.error( "Unable to start RSS generator - JSPWiki will still work, but there will be no RSS feed.", e );
}
- // Start the RSS generator & generator thread
- if( m_rssGenerator != null ) {
- m_rssFile = TextUtil.getStringProperty( props, RSSGenerator.PROP_RSSFILE, "rss.rdf" );
- final File rssFile;
- if( m_rssFile.startsWith( File.separator ) ) { // honor absolute pathnames:
- rssFile = new File(m_rssFile );
- } else { // relative path names are anchored from the webapp root path:
- rssFile = new File( getRootPath(), m_rssFile );
- }
- final int rssInterval = TextUtil.getIntegerProperty( props, RSSGenerator.PROP_INTERVAL, 3600 );
- final RSSThread rssThread = new RSSThread( this, rssFile, rssInterval );
- rssThread.start();
- }
-
fireEvent( WikiEngineEvent.INITIALIZED ); // initialization complete
log.info("WikiEngine configured.");
@@ -664,7 +650,7 @@ public class WikiEngine implements Engine {
@Override
public String getGlobalRSSURL() {
if( m_rssGenerator != null && m_rssGenerator.isEnabled() ) {
- return getBaseURL() + "/" + m_rssFile;
+ return getBaseURL() + "/" + m_rssGenerator.getRssFile();
}
return null;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
index 827c99e..9b0e621 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSSGenerator.java
@@ -37,6 +37,7 @@ import org.apache.wiki.render.RenderingManager;
import org.apache.wiki.util.TextUtil;
import org.apache.wiki.variables.VariableManager;
+import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
@@ -63,6 +64,8 @@ public class RSSGenerator {
private static final Logger log = Logger.getLogger( RSSGenerator.class );
private Engine m_engine;
+ /** The RSS file to generate. */
+ private String m_rssFile;
private String m_channelDescription = "";
private String m_channelLanguage = "en-us";
private boolean m_enabled = true;
@@ -136,6 +139,25 @@ public class RSSGenerator {
m_engine = engine;
m_channelDescription = properties.getProperty( PROP_CHANNEL_DESCRIPTION, m_channelDescription );
m_channelLanguage = properties.getProperty( PROP_CHANNEL_LANGUAGE, m_channelLanguage );
+ m_rssFile = TextUtil.getStringProperty( properties, RSSGenerator.PROP_RSSFILE, "rss.rdf" );
+ }
+
+ /**
+ * Start the RSS generator & generator thread
+ *
+ * @param engine the engine
+ * @param properties the properties
+ */
+ public void initialize( final Engine engine, final Properties properties ) {
+ final File rssFile;
+ if( m_rssFile.startsWith( File.separator ) ) { // honor absolute pathnames
+ rssFile = new File( m_rssFile );
+ } else { // relative path names are anchored from the webapp root path
+ rssFile = new File( engine.getRootPath(), m_rssFile );
+ }
+ final int rssInterval = TextUtil.getIntegerProperty( properties, RSSGenerator.PROP_INTERVAL, 3600 );
+ final RSSThread rssThread = new RSSThread( engine, rssFile, rssInterval );
+ rssThread.start();
}
/**
@@ -214,8 +236,7 @@ public class RSSGenerator {
}
// FIXME: This should probably return something more intelligent
- private String getEntryTitle( final Page page )
- {
+ private String getEntryTitle( final Page page ) {
return page.getName() + ", version " + page.getVersion();
}
@@ -290,8 +311,7 @@ public class RSSGenerator {
*
* @return whether RSS generation is currently enabled
*/
- public boolean isEnabled()
- {
+ public boolean isEnabled() {
return m_enabled;
}
@@ -301,11 +321,14 @@ public class RSSGenerator {
*
* @param enabled whether RSS generation is considered enabled.
*/
- public synchronized void setEnabled( final boolean enabled )
- {
+ public synchronized void setEnabled( final boolean enabled ) {
m_enabled = enabled;
}
+ public String getRssFile() {
+ return m_rssFile;
+ }
+
/**
* Generates an RSS feed for the entire wiki. Each item should be an instance of the RSSItem class.
*