You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/06/23 17:27:59 UTC
svn commit: r550055 [3/4] - in /roller/trunk: apps/planet/
apps/planet/nbproject/
apps/planet/src/java/org/apache/roller/planet/business/
apps/planet/src/java/org/apache/roller/planet/business/hibernate/
apps/planet/src/java/org/apache/roller/planet/bu...
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPABookmarkManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -29,7 +29,7 @@
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.BookmarkManager;
-import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.pojos.WeblogBookmark;
import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
import org.apache.roller.weblogger.pojos.Weblog;
@@ -43,9 +43,11 @@
* Created on May 31, 2006, 3:49 PM
*
*/
+@com.google.inject.Singleton
public class JPABookmarkManagerImpl implements BookmarkManager {
private JPAPersistenceStrategy strategy;
+ private Roller roller = null;
/**
* The logger instance for this class.
@@ -56,10 +58,10 @@
/**
* Creates a new instance of JPABookmarkManagerImpl
*/
- public JPABookmarkManagerImpl
- (JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPABookmarkManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
log.debug("Instantiating JPA Bookmark Manager");
-
+ this.roller = roller;
this.strategy = strategy;
}
@@ -73,7 +75,7 @@
this.strategy.store(bookmark);
// update weblog last modified date (date is updated by saveWebsite())
- RollerFactory.getRoller().getUserManager().
+ roller.getUserManager().
saveWebsite(bookmark.getWebsite());
}
@@ -87,7 +89,7 @@
//Remove the bookmark from its parent folder
bookmark.getFolder().getBookmarks().remove(bookmark);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(bookmark.getWebsite());
}
@@ -109,7 +111,7 @@
this.strategy.store(folder);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager().saveWebsite(folder.getWebsite());
+ roller.getUserManager().saveWebsite(folder.getWebsite());
}
public void removeFolder(WeblogBookmarkFolder folder) throws WebloggerException {
@@ -120,7 +122,7 @@
}
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager().
+ roller.getUserManager().
saveWebsite(folder.getWebsite());
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java Sat Jun 23 08:27:55 2007
@@ -1,4 +1,3 @@
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. The ASF licenses this file to You
@@ -20,7 +19,6 @@
package org.apache.roller.weblogger.business.jpa;
import java.util.Collection;
-import java.util.Properties;
import java.util.Iterator;
import java.util.Enumeration;
import java.util.Properties;
@@ -31,20 +29,23 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.config.RollerConfig;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.FlushModeType;
import javax.persistence.Persistence;
import javax.persistence.PersistenceException;
import javax.persistence.Query;
+import org.apache.roller.weblogger.business.DatabaseProvider;
/**
- * JPAPersistenceStrategy is responsible for the lowest-level interaction with
- * the JPA API.
+ * Responsible for the lowest-level interaction with the JPA API.
*/
-// TODO handle PersistenceExceptions!
+@com.google.inject.Singleton
public class JPAPersistenceStrategy {
+ private static Log logger =
+ LogFactory.getFactory().getInstance(JPAPersistenceStrategy.class);
/**
* The thread local EntityManager.
@@ -56,99 +57,62 @@
*/
private EntityManagerFactory emf = null;
- /**
- * The logger instance for this class.
- */
- private static Log logger = LogFactory.getFactory().getInstance(
- JPAPersistenceStrategy.class);
/**
* Construct by finding JPA EntityManagerFactory.
* @throws org.apache.roller.WebloggerException on any error
*/
- public JPAPersistenceStrategy(
- String puName,
- String jndiName,
- Properties properties) throws WebloggerException {
-
- // set strategy used by Datamapper
- // You can configure JPA completely via the JPAEMF.properties file
+ @com.google.inject.Inject
+ protected JPAPersistenceStrategy(DatabaseProvider dbProvider) throws WebloggerException {
+
+ // Pull in any properties defined in JMAEMF.properties config file
Properties emfProps = loadPropertiesFromResourceName(
"JPAEMF.properties", getContextClassLoader());
- // Add additional properties passed in
- Enumeration keys = properties.keys();
+ // Add all OpenJPA and Toplinks properties found in RollerConfig
+ Enumeration keys = RollerConfig.keys();
while (keys.hasMoreElements()) {
String key = (String)keys.nextElement();
- String value = properties.getProperty(key);
- logger.info(key + ": " + value);
- emfProps.setProperty(key, value);
- }
-
- emfProps.setProperty("openjpa.ConnectionFactoryName", jndiName);
-
- try {
- this.emf = Persistence.createEntityManagerFactory(puName, emfProps);
- } catch (PersistenceException pe) {
- logger.error("ERROR: creating entity manager", pe);
- throw new WebloggerException(pe);
+ if (key.startsWith("openjpa.") || key.startsWith("toplink.")) {
+ String value = RollerConfig.getProperty(key);
+ logger.info(key + ": " + value);
+ emfProps.setProperty(key, value);
+ }
}
- }
- /**
- * Construct by finding JPA EntityManagerFactory.
- * @throws org.apache.roller.WebloggerException on any error
- */
- public JPAPersistenceStrategy(
- String puName,
- String driverClass,
- String connectonUrl,
- String username,
- String password,
- Properties properties) throws WebloggerException {
-
- logger.info("driverClass: " + driverClass);
- logger.info("connectionURL: " + connectonUrl);
- logger.info("username: " + username);
-
- // set strategy used by Datamapper
- // You can configure JPA completely via the JPAEMF.properties file
- Properties emfProps = loadPropertiesFromResourceName(
- "JPAEMF.properties", getContextClassLoader());
-
- // Add additional properties passed in
- Enumeration keys = properties.keys();
- while (keys.hasMoreElements()) {
- String key = (String)keys.nextElement();
- String value = properties.getProperty(key);
- logger.info(key + ": " + value);
- emfProps.setProperty(key, value);
+ if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) {
+ // We're doing JNDI, so set OpenJPA JNDI name property
+ String jndiName = "java:comp/env/" + dbProvider.getJndiName();
+ emfProps.setProperty("openjpa.ConnectionFactoryName", jndiName);
+
+ } else {
+ // So set JDBD properties for OpenJPA
+ emfProps.setProperty("openjpa.ConnectionDriverName", dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("openjpa.ConnectionURL", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("openjpa.ConnectionUserName", dbProvider.getJdbcUsername());
+ emfProps.setProperty("openjpa.ConnectionPassword", dbProvider.getJdbcPassword());
+
+ // And Toplink JPA
+ emfProps.setProperty("toplink.jdbc.driver", dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("toplink.jdbc.url", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("toplink.jdbc.user", dbProvider.getJdbcUsername());
+ emfProps.setProperty("toplink.jdbc.password", dbProvider.getJdbcPassword());
+
+ // And Hibernate JPA
+ emfProps.setProperty("hibernate.connection.driver_class",dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("hibernate.connection.url", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("hibernate.connection.username", dbProvider.getJdbcUsername());
+ emfProps.setProperty("hibernate.connection.password", dbProvider.getJdbcPassword());
}
- // Try to please all the players
- emfProps.setProperty("openjpa.ConnectionDriverName", driverClass);
- emfProps.setProperty("openjpa.ConnectionURL", connectonUrl);
- emfProps.setProperty("openjpa.ConnectionUserName", username);
- emfProps.setProperty("openjpa.ConnectionPassword", password);
-
- emfProps.setProperty("toplink.jdbc.driver", driverClass);
- emfProps.setProperty("toplink.jdbc.url", connectonUrl);
- emfProps.setProperty("toplink.jdbc.user", username);
- emfProps.setProperty("toplink.jdbc.password", password);
-
- emfProps.setProperty("hibernate.connection.driver_class",driverClass);
- emfProps.setProperty("hibernate.connection.url", connectonUrl);
- emfProps.setProperty("hibernate.connection.username", username);
- emfProps.setProperty("hibernate.connection.password", password);
-
try {
- this.emf = Persistence.createEntityManagerFactory(puName, emfProps);
+ this.emf = Persistence.createEntityManagerFactory("RollerPU", emfProps);
} catch (PersistenceException pe) {
logger.error("ERROR: creating entity manager", pe);
throw new WebloggerException(pe);
}
- }
-
+ }
+
/**
* Flush changes to the datastore, commit transaction, release em.
* @throws org.apache.roller.WebloggerException on any error
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingQueueManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -27,6 +27,7 @@
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.pings.PingQueueManager;
import org.apache.roller.weblogger.pojos.AutoPing;
@@ -38,6 +39,7 @@
* Created on May 28, 2006, 4:11 PM
*
*/
+@com.google.inject.Singleton
public class JPAPingQueueManagerImpl implements PingQueueManager {
private static Log log = LogFactory.getLog(
@@ -45,12 +47,14 @@
/** The strategy for this manager. */
private JPAPersistenceStrategy strategy;
+ private Roller roller = null;
/**
* Creates a new instance of JPAPingQueueManagerImpl
*/
- public JPAPingQueueManagerImpl(
- JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPAPingQueueManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
+ this.roller = roller;
this.strategy = strategy;
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPingTargetManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -31,6 +31,7 @@
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.pings.PingTargetManager;
import org.apache.roller.weblogger.pojos.PingTarget;
@@ -42,6 +43,7 @@
* Created on May 29, 2006, 2:24 PM
*
*/
+@com.google.inject.Singleton
public class JPAPingTargetManagerImpl implements PingTargetManager {
/** The logger instance for this class. */
@@ -49,9 +51,11 @@
JPAPingTargetManagerImpl.class);
private JPAPersistenceStrategy strategy;
+ private Roller roller = null;
- public JPAPingTargetManagerImpl(
- JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPAPingTargetManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
+ this.roller = roller;
this.strategy = strategy;
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPropertiesManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -36,6 +36,7 @@
import org.apache.roller.weblogger.config.runtime.PropertyDef;
import org.apache.roller.weblogger.config.runtime.RuntimeConfigDefs;
import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
+import org.apache.roller.weblogger.business.Roller;
/*
@@ -44,6 +45,7 @@
* Created on May 29, 2006, 2:06 PM
*
*/
+@com.google.inject.Singleton
public class JPAPropertiesManagerImpl implements PropertiesManager {
/** The logger instance for this class. */
@@ -51,14 +53,15 @@
JPAPropertiesManagerImpl.class);
private JPAPersistenceStrategy strategy;
+ private Roller roller = null;
/**
* Creates a new instance of JPAPropertiesManagerImpl
*/
- public JPAPropertiesManagerImpl (
- JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPAPropertiesManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
log.debug("Instantiating JPA Properties Manager");
-
+ this.roller = roller;
this.strategy = strategy;
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARefererManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -35,7 +35,6 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.Roller;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.referrers.RefererManager;
@@ -50,10 +49,8 @@
/*
* JPARefererManagerImpl.java
- *
- * Created on May 31, 2006, 4:06 PM
- *
*/
+@com.google.inject.Singleton
public class JPARefererManagerImpl implements RefererManager {
private static Log log = LogFactory.getLog(
@@ -67,13 +64,15 @@
/** The strategy for this manager. */
protected JPAPersistenceStrategy strategy;
+ private Roller roller = null;
/**
* Creates a new instance of JPARefererManagerImpl
*/
- public JPARefererManagerImpl(JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPARefererManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
log.debug("Instantiating JPA Referer Manager");
-
+ this.roller = roller;
this.strategy = strategy;
}
@@ -379,13 +378,13 @@
// lookup the weblog now
try {
- UserManager userMgr = RollerFactory.getRoller().getUserManager();
+ UserManager userMgr = roller.getUserManager();
weblog = userMgr.getWebsiteByHandle(weblogHandle);
if (weblog == null) return;
// now lookup weblog entry if possible
if (entryAnchor != null) {
- WeblogManager weblogMgr = RollerFactory.getRoller().
+ WeblogManager weblogMgr = roller.
getWeblogManager();
entry = weblogMgr.getWeblogEntryByAnchor(weblog, entryAnchor);
}
@@ -485,7 +484,7 @@
// Launch thread to extract referer linkback
try {
- Roller mRoller = RollerFactory.getRoller();
+ Roller mRoller = roller;
mRoller.getThreadManager().executeInBackground(
new LinkbackExtractorRunnable(ref));
} catch (InterruptedException e) {
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARollerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARollerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARollerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPARollerImpl.java Sat Jun 23 08:27:55 2007
@@ -1,4 +1,3 @@
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. The ASF licenses this file to You
@@ -18,17 +17,11 @@
*/
package org.apache.roller.weblogger.business.jpa;
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.Enumeration;
-import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.BookmarkManager;
-import org.apache.roller.weblogger.business.DatabaseProvider;
+import org.apache.roller.weblogger.business.FileManager;
import org.apache.roller.weblogger.business.PropertiesManager;
import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.RollerImpl;
@@ -38,14 +31,16 @@
import org.apache.roller.weblogger.business.pings.AutoPingManager;
import org.apache.roller.weblogger.business.pings.PingQueueManager;
import org.apache.roller.weblogger.business.pings.PingTargetManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
import org.apache.roller.weblogger.business.referrers.RefererManager;
-import org.apache.roller.weblogger.business.startup.WebloggerStartup;
-import org.apache.roller.weblogger.config.RollerConfig;
-
+import org.apache.roller.weblogger.business.referrers.ReferrerQueueManager;
+import org.apache.roller.weblogger.business.search.IndexManager;
+import org.apache.roller.weblogger.business.themes.ThemeManager;
/**
* A JPA specific implementation of the Roller business layer.
*/
+@com.google.inject.Singleton
public class JPARollerImpl extends RollerImpl {
static final long serialVersionUID = 5256135928578074652L;
@@ -57,6 +52,7 @@
// a persistence utility class
protected JPAPersistenceStrategy strategy = null;
+ private Roller roller = null;
// references to the managers we maintain
private BookmarkManager bookmarkManager = null;
@@ -73,61 +69,44 @@
* Single constructor.
* @throws org.apache.roller.weblogger.WebloggerException on any error
*/
- protected JPARollerImpl() throws WebloggerException {
-
- // Add OpenJPA, Toplink and Hibernate properties to Roller config.
- Properties props = new Properties();
- Enumeration keys = RollerConfig.keys();
- while (keys.hasMoreElements()) {
- String key = (String)keys.nextElement();
- if (key.startsWith("openjpa.") || key.startsWith("toplink.")) {
- String value = RollerConfig.getProperty(key);
- logger.info(key + ": " + value);
- props.setProperty(key, value);
- }
- }
+ @com.google.inject.Inject
+ protected JPARollerImpl(
+ JPAPersistenceStrategy strategy,
+ AutoPingManager autoPingManager,
+ BookmarkManager bookmarkManager,
+ FileManager fileManager,
+ IndexManager indexManager,
+ PingQueueManager pingQueueManager,
+ PingTargetManager pingTargetManager,
+ PluginManager pluginManager,
+ PropertiesManager propertiesManager,
+ RefererManager refererManager,
+ ReferrerQueueManager refererQueueManager,
+ ThemeManager themeManager,
+ ThreadManager threadManager,
+ UserManager userManager,
+ WeblogManager weblogManager) throws WebloggerException {
- DatabaseProvider dbProvider = WebloggerStartup.getDatabaseProvider();
- if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) {
- strategy = new JPAPersistenceStrategy(
- "RollerPU", "java:comp/env/" + dbProvider.getJndiName(), props);
- } else {
- strategy = new JPAPersistenceStrategy(
- "RollerPU",
- dbProvider.getJdbcDriverClass(),
- dbProvider.getJdbcConnectionURL(),
- dbProvider.getJdbcUsername(),
- dbProvider.getJdbcPassword(),
- props);
- }
- }
-
- protected UserManager createJPAUserManager(JPAPersistenceStrategy strategy) {
- return new JPAUserManagerImpl((JPAPersistenceStrategy) strategy);
- }
-
- protected WeblogManager createJPAWeblogManager(
- JPAPersistenceStrategy strategy) {
- return new JPAWeblogManagerImpl((JPAPersistenceStrategy) strategy);
- }
-
- protected ThreadManager createJPAThreadManager(
- JPAPersistenceStrategy strategy) {
- return new JPAThreadManagerImpl((JPAPersistenceStrategy) strategy);
- }
-
- protected RefererManager createJPARefererManagerImpl(JPAPersistenceStrategy strategy) {
- return new JPARefererManagerImpl((JPAPersistenceStrategy) strategy);
+ super(
+ autoPingManager,
+ bookmarkManager,
+ fileManager,
+ indexManager,
+ pingQueueManager,
+ pingTargetManager,
+ pluginManager,
+ propertiesManager,
+ refererManager,
+ refererQueueManager,
+ themeManager,
+ threadManager,
+ userManager,
+ weblogManager);
+ this.strategy = strategy;
}
-
- /**
- * Construct and return the singleton instance of the class.
- * @throws org.apache.roller.weblogger.WebloggerException on any error
- * @return the singleton
- */
- public static Roller instantiate() throws WebloggerException {
- logger.debug("Instantiating JPARollerImpl");
- return new JPARollerImpl();
+
+ public void initialize() {
+ // no-op
}
public void flush() throws WebloggerException {
@@ -136,194 +115,17 @@
public void release() {
-
- // release our own stuff first
- if (bookmarkManager != null) bookmarkManager.release();
- if (referrerManager != null) referrerManager.release();
- if (userManager != null) userManager.release();
- if (weblogManager != null) weblogManager.release();
- if (pingTargetManager != null) pingTargetManager.release();
- if (pingQueueManager != null) pingQueueManager.release();
- if (autoPingManager != null) autoPingManager.release();
-
+ super.release();
// tell JPA to close down
this.strategy.release();
-
- // then let parent do its thing
- super.release();
}
public void shutdown() {
-
// do our own shutdown first
this.release();
// then let parent do its thing
super.shutdown();
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getAutopingManager()
- */
- public AutoPingManager getAutopingManager() {
- if (autoPingManager == null) {
- autoPingManager = createJPAAutoPingManager(strategy);
- }
- return autoPingManager;
- }
-
- protected AutoPingManager createJPAAutoPingManager(
- JPAPersistenceStrategy strategy) {
- return new JPAAutoPingManagerImpl(strategy);
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getBookmarkManager()
- */
- public BookmarkManager getBookmarkManager() {
- if ( bookmarkManager == null ) {
- bookmarkManager = createJPABookmarkManager(strategy);
- }
- return bookmarkManager;
- }
-
- protected BookmarkManager createJPABookmarkManager(
- JPAPersistenceStrategy strategy) {
- return new JPABookmarkManagerImpl(strategy);
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getPingTargetManager()
- */
- public PingQueueManager getPingQueueManager() {
- if (pingQueueManager == null) {
- pingQueueManager = createJPAPingQueueManager(strategy);
- }
- return pingQueueManager;
- }
-
- protected PingQueueManager createJPAPingQueueManager(
- JPAPersistenceStrategy strategy) {
- return new JPAPingQueueManagerImpl(strategy);
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getPingTargetManager()
- */
- public PingTargetManager getPingTargetManager() {
- if (pingTargetManager == null) {
- pingTargetManager = createJPAPingTargetManager(strategy);
- }
- return pingTargetManager;
- }
-
- protected PingTargetManager createJPAPingTargetManager(
- JPAPersistenceStrategy strategy) {
- return new JPAPingTargetManagerImpl(strategy);
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getPropertiesManager()
- */
- public PropertiesManager getPropertiesManager() {
- if (propertiesManager == null) {
- propertiesManager = createJPAPropertiesManager(strategy);
- }
- return propertiesManager;
- }
-
- protected PropertiesManager createJPAPropertiesManager(
- JPAPersistenceStrategy strategy) {
- return new JPAPropertiesManagerImpl(strategy);
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getRefererManager()
- */
- public RefererManager getRefererManager() {
- if ( referrerManager == null ) {
- referrerManager = createJPARefererManagerImpl(strategy);
- }
- return referrerManager;
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getUserManager()
- */
- public UserManager getUserManager() {
- if ( userManager == null ) {
- userManager = createJPAUserManager(strategy);
- }
- return userManager;
- }
-
- /**
- * @see org.apache.roller.weblogger.business.Roller#getWeblogManager()
- */
- public WeblogManager getWeblogManager() {
- if ( weblogManager == null ) {
- weblogManager = createJPAWeblogManager(strategy);
- }
- return weblogManager;
- }
-
- /**
- * @see org.apache.roller.weblogger.model.Roller#getThreadManager()
- */
- public ThreadManager getThreadManager() {
- if (threadManager == null) {
- threadManager = createJPAThreadManager(strategy);
- }
- return threadManager;
- }
-
- /**
- * Loads properties from given resourceName using given class loader
- * @param resourceName The name of the resource containing properties
- * @param cl Classloeder to be used to locate the resouce
- * @return A properties object
- * @throws WebloggerException
- */
- private static Properties loadPropertiesFromResourceName(
- String resourceName, ClassLoader cl) throws WebloggerException {
- Properties props = new Properties();
- InputStream in = null;
- in = cl.getResourceAsStream(resourceName);
- if (in == null) {
- //TODO: Check how i18n is done in roller
- throw new WebloggerException(
- "Could not locate properties to load " + resourceName);
- }
- try {
- props.load(in);
- } catch (IOException ioe) {
- throw new WebloggerException(
- "Could not load properties from " + resourceName);
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException ioe) {
- }
- }
- }
-
- return props;
- }
-
- /**
- * Get the context class loader associated with the current thread. This is
- * done in a doPrivileged block because it is a secure method.
- * @return the current thread's context class loader.
- */
- private static ClassLoader getContextClassLoader() {
- return (ClassLoader) AccessController.doPrivileged(
- new PrivilegedAction() {
- public Object run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
- }
-
+ }
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAThreadManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -26,9 +26,9 @@
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.runnable.ThreadManagerImpl;
import org.apache.roller.weblogger.business.runnable.RollerTask;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.pojos.TaskLock;
@@ -38,18 +38,22 @@
* This implementation extends the base ThreadManagerImpl class and provides
* locking abilities which are managed through the database.
*/
+@com.google.inject.Singleton
public class JPAThreadManagerImpl extends ThreadManagerImpl {
private static final Log log = LogFactory.getLog(JPAThreadManagerImpl.class);
private final JPAPersistenceStrategy strategy;
+ private Roller roller = null;
- public JPAThreadManagerImpl(JPAPersistenceStrategy strat) {
+ @com.google.inject.Inject
+ protected JPAThreadManagerImpl(Roller roller, JPAPersistenceStrategy strat) {
super();
log.debug("Instantiating JPA Thread Manager");
+ this.roller = roller;
this.strategy = strat;
}
@@ -73,7 +77,7 @@
// save it and flush
this.saveTaskLock(taskLock);
- RollerFactory.getRoller().flush();
+ roller.flush();
}
} catch (WebloggerException ex) {
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAUserManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -25,7 +25,6 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.BookmarkManager;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.pings.AutoPingManager;
@@ -45,6 +44,7 @@
import java.util.Comparator;
import javax.persistence.Query;
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
+import org.apache.roller.weblogger.business.Roller;
/*
* JPAUserManagerImpl.java
@@ -52,6 +52,7 @@
* Created on May 29, 2006, 3:15 PM
*
*/
+@com.google.inject.Singleton
public class JPAUserManagerImpl implements UserManager {
/** The logger instance for this class. */
@@ -61,6 +62,7 @@
Collections.reverseOrder(StatCountCountComparator.getInstance());
protected JPAPersistenceStrategy strategy;
+ private Roller roller = null;
// cached mapping of weblogHandles -> weblogIds
private Map weblogHandleToIdMap = new Hashtable();
@@ -68,9 +70,10 @@
// cached mapping of userNames -> userIds
private Map userNameToIdMap = new Hashtable();
- public JPAUserManagerImpl(JPAPersistenceStrategy strat) {
+ @com.google.inject.Inject
+ protected JPAUserManagerImpl(Roller roller, JPAPersistenceStrategy strat) {
log.debug("Instantiating JPA User Manager");
-
+ this.roller = roller;
this.strategy = strat;
}
@@ -100,8 +103,8 @@
private void removeWebsiteContents(Weblog website)
throws WebloggerException {
- BookmarkManager bmgr = RollerFactory.getRoller().getBookmarkManager();
- WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+ BookmarkManager bmgr = roller.getBookmarkManager();
+ WeblogManager wmgr = roller.getWeblogManager();
// remove tags
Query tagQuery = strategy.getNamedQuery("WeblogEntryTag.getByWeblog");
@@ -140,7 +143,7 @@
}
// Remove the website's auto ping configurations
- AutoPingManager autoPingMgr = RollerFactory.getRoller()
+ AutoPingManager autoPingMgr = roller
.getAutopingManager();
List autopings = autoPingMgr.getAutoPingsByWebsite(website);
it = autopings.iterator();
@@ -149,7 +152,7 @@
}
// Remove the website's custom ping targets
- PingTargetManager pingTargetMgr = RollerFactory.getRoller().getPingTargetManager();
+ PingTargetManager pingTargetMgr = roller.getPingTargetManager();
List pingtargets = pingTargetMgr.getCustomPingTargets(website);
it = pingtargets.iterator();
while(it.hasNext()) {
@@ -288,7 +291,7 @@
this.strategy.store(page);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(page.getWebsite());
}
@@ -296,7 +299,7 @@
this.strategy.remove(page);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager().saveWebsite(page.getWebsite());
+ roller.getUserManager().saveWebsite(page.getWebsite());
}
public void addUser(User newUser) throws WebloggerException {
@@ -408,9 +411,9 @@
}
// add any auto enabled ping targets
- PingTargetManager pingTargetMgr = RollerFactory.getRoller()
+ PingTargetManager pingTargetMgr = roller
.getPingTargetManager();
- AutoPingManager autoPingMgr = RollerFactory.getRoller()
+ AutoPingManager autoPingMgr = roller
.getAutopingManager();
Iterator pingTargets = pingTargetMgr.getCommonPingTargets().iterator();
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -40,7 +40,7 @@
import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogEntryComment;
import org.apache.roller.weblogger.pojos.WeblogHitCount;
@@ -65,12 +65,14 @@
* Created on May 31, 2006, 4:08 PM
*
*/
+@com.google.inject.Singleton
public class JPAWeblogManagerImpl implements WeblogManager {
protected static Log log = LogFactory.getLog(
JPAWeblogManagerImpl.class);
protected JPAPersistenceStrategy strategy;
+ private Roller roller = null;
// cached mapping of entryAnchors -> entryIds
private Hashtable entryAnchorToIdMap = new Hashtable();
@@ -86,10 +88,10 @@
private static final Comparator statCountCountReverseComparator =
Collections.reverseOrder(StatCountCountComparator.getInstance());
- public JPAWeblogManagerImpl
- (JPAPersistenceStrategy strategy) {
+ @com.google.inject.Inject
+ protected JPAWeblogManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
log.debug("Instantiating JPA Weblog Manager");
-
+ this.roller = roller;
this.strategy = strategy;
}
@@ -111,7 +113,7 @@
}
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager().saveWebsite(cat.getWebsite());
+ roller.getUserManager().saveWebsite(cat.getWebsite());
this.strategy.store(cat);
}
@@ -146,7 +148,7 @@
}
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager().saveWebsite(
+ roller.getUserManager().saveWebsite(
cat.getWebsite());
}
@@ -265,7 +267,7 @@
this.strategy.store(comment);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(comment.getWeblogEntry().getWebsite());
}
@@ -276,7 +278,7 @@
this.strategy.remove(comment);
// update weblog last modified date. date updated by saveWebsite()
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(comment.getWeblogEntry().getWebsite());
}
@@ -315,13 +317,13 @@
// update weblog last modified date. date updated by saveWebsite()
if(entry.isPublished()) {
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(entry.getWebsite());
}
if(entry.isPublished()) {
// Queue applicable pings for this update.
- RollerFactory.getRoller().getAutopingManager()
+ roller.getAutopingManager()
.queueApplicableAutoPings(entry);
}
}
@@ -370,7 +372,7 @@
// update weblog last modified date. date updated by saveWebsite()
if(entry.isPublished()) {
- RollerFactory.getRoller().getUserManager()
+ roller.getUserManager()
.saveWebsite(entry.getWebsite());
}
Added: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java?view=auto&rev=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java (added)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java Sat Jun 23 08:27:55 2007
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.business.jpa;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import org.apache.roller.weblogger.business.BookmarkManager;
+import org.apache.roller.weblogger.business.FileManager;
+import org.apache.roller.weblogger.business.FileManagerImpl;
+import org.apache.roller.weblogger.business.PropertiesManager;
+import org.apache.roller.weblogger.business.Roller;
+import org.apache.roller.weblogger.business.UserManager;
+import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.pings.AutoPingManager;
+import org.apache.roller.weblogger.business.pings.PingQueueManager;
+import org.apache.roller.weblogger.business.pings.PingTargetManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
+import org.apache.roller.weblogger.business.plugins.PluginManagerImpl;
+import org.apache.roller.weblogger.business.referrers.RefererManager;
+import org.apache.roller.weblogger.business.referrers.ReferrerQueueManager;
+import org.apache.roller.weblogger.business.referrers.ReferrerQueueManagerImpl;
+import org.apache.roller.weblogger.business.runnable.ThreadManager;
+import org.apache.roller.weblogger.business.search.IndexManager;
+import org.apache.roller.weblogger.business.search.IndexManagerImpl;
+import org.apache.roller.weblogger.business.themes.ThemeManager;
+import org.apache.roller.weblogger.business.themes.ThemeManagerImpl;
+
+/**
+ * Guice module for configuring JPA as Roller-backend.
+ */
+public class RollerModule implements Module {
+
+ public void configure(Binder binder) {
+
+ binder.bind(Roller.class).to(JPARollerImpl.class);
+
+ binder.bind(JPAPersistenceStrategy.class);
+ binder.bind(org.apache.roller.weblogger.planet.business.jpa.JPARollerPlanetPersistenceStrategy.class);
+
+ binder.bind(AutoPingManager.class).to( JPAAutoPingManagerImpl.class);
+ binder.bind(BookmarkManager.class).to( JPABookmarkManagerImpl.class);
+ binder.bind(PingQueueManager.class).to( JPAPingQueueManagerImpl.class);
+ binder.bind(PingTargetManager.class).to( JPAPingTargetManagerImpl.class);
+ binder.bind(PropertiesManager.class).to( JPAPropertiesManagerImpl.class);
+ binder.bind(RefererManager.class).to( JPARefererManagerImpl.class);
+ binder.bind(ThreadManager.class).to( JPAThreadManagerImpl.class);
+ binder.bind(UserManager.class).to( JPAUserManagerImpl.class);
+ binder.bind(WeblogManager.class).to( JPAWeblogManagerImpl.class);
+
+ binder.bind(ReferrerQueueManager.class).to(ReferrerQueueManagerImpl.class);
+ binder.bind(FileManager.class).to( FileManagerImpl.class);
+ binder.bind(IndexManager.class).to( IndexManagerImpl.class);
+ binder.bind(PluginManager.class).to( PluginManagerImpl.class);
+ binder.bind(ThemeManager.class).to( ThemeManagerImpl.class);
+ }
+}
+
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/referrers/ReferrerQueueManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/referrers/ReferrerQueueManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/referrers/ReferrerQueueManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/referrers/ReferrerQueueManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -31,10 +31,10 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.runnable.ContinuousWorkerThread;
import org.apache.roller.weblogger.business.runnable.WorkerThread;
import org.apache.roller.weblogger.config.RollerConfig;
-import org.apache.roller.weblogger.business.RollerFactory;
/**
@@ -58,27 +58,26 @@
*
* @author Allen Gilliland
*/
+@com.google.inject.Singleton
public class ReferrerQueueManagerImpl implements ReferrerQueueManager {
private static Log mLogger = LogFactory.getLog(ReferrerQueueManagerImpl.class);
- private static ReferrerQueueManager instance = null;
+ private Roller roller = null;
private boolean asyncMode = false;
private int numWorkers = 1;
private int sleepTime = 10000;
private List workers = null;
private List referrerQueue = null;
-
- static {
- instance = new ReferrerQueueManagerImpl();
- }
-
+
// private because we are a singleton
- private ReferrerQueueManagerImpl() {
+ @com.google.inject.Inject
+ protected ReferrerQueueManagerImpl(Roller roller) {
mLogger.info("Initializing Referrer Queue Manager");
-
+ this.roller = roller;
+
// lookup config options
this.asyncMode = RollerConfig.getBooleanProperty("referrers.asyncProcessing.enabled");
@@ -123,15 +122,6 @@
}
}
-
- /**
- * Get access to the singleton instance.
- */
- public static ReferrerQueueManager getInstance() {
- return instance;
- }
-
-
/**
* Process an incoming referrer.
*
@@ -160,7 +150,7 @@
try {
// flush changes
- RollerFactory.getRoller().flush();
+ roller.flush();
} catch (WebloggerException ex) {
mLogger.error("ERROR commiting referrer", ex);
}
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/runnable/ThreadManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -34,6 +34,7 @@
/**
* Manage Roller's thread use.
*/
+@com.google.inject.Singleton
public class ThreadManagerImpl implements ThreadManager {
private static final Log log = LogFactory.getLog(ThreadManagerImpl.class);
@@ -42,14 +43,13 @@
private final ScheduledExecutorService serviceScheduler;
- public ThreadManagerImpl() {
+ protected ThreadManagerImpl() {
log.info("Intializing Thread Manager");
serviceScheduler = Executors.newScheduledThreadPool(10);
}
-
public void initialize() throws InitializationException {
Date now = new Date();
@@ -84,10 +84,8 @@
log.error("Error instantiating task", ex);
}
}
- }
-
+ }
}
-
public void executeInBackground(Runnable runnable)
throws InterruptedException {
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java Sat Jun 23 08:27:55 2007
@@ -46,7 +46,7 @@
/** Execute operation immediately */
public abstract void executeIndexOperationNow(final IndexOperation op);
-
+
/**
* Release all resources associated with Roller session.
*/
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -45,7 +45,6 @@
import EDU.oswego.cs.dl.util.concurrent.ReadWriteLock;
import EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock;
import org.apache.roller.weblogger.config.RollerConfig;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.commons.lang.StringUtils;
/**
@@ -54,11 +53,13 @@
* @author Mindaugas Idzelis (min@idzelis.com)
* @author mraible (formatting and making indexDir configurable)
*/
+@com.google.inject.Singleton
public class IndexManagerImpl implements IndexManager {
//~ Static fields/initializers
// =============================================
private IndexReader reader;
+ private Roller roller;
static Log mLogger = LogFactory.getFactory().getInstance(
IndexManagerImpl.class);
@@ -92,8 +93,10 @@
* @param indexDir -
* the path to the index directory
*/
- public IndexManagerImpl() {
-
+ @com.google.inject.Inject
+ protected IndexManagerImpl(Roller roller) {
+ this.roller = roller;
+
// check config to see if the internal search is enabled
String enabled = RollerConfig.getProperty("search.enabled");
if("false".equalsIgnoreCase(enabled))
@@ -180,31 +183,31 @@
public void rebuildWebsiteIndex() throws WebloggerException {
scheduleIndexOperation(
- new RebuildWebsiteIndexOperation(this, null));
+ new RebuildWebsiteIndexOperation(roller, this, null));
}
public void rebuildWebsiteIndex(Weblog website) throws WebloggerException {
scheduleIndexOperation(
- new RebuildWebsiteIndexOperation(this, website));
+ new RebuildWebsiteIndexOperation(roller, this, website));
}
public void removeWebsiteIndex(Weblog website) throws WebloggerException {
scheduleIndexOperation(
- new RemoveWebsiteIndexOperation(this, website));
+ new RemoveWebsiteIndexOperation(roller, this, website));
}
public void addEntryIndexOperation(WeblogEntry entry) throws WebloggerException {
- AddEntryOperation addEntry = new AddEntryOperation(this, entry);
+ AddEntryOperation addEntry = new AddEntryOperation(roller, this, entry);
scheduleIndexOperation(addEntry);
}
public void addEntryReIndexOperation(WeblogEntry entry) throws WebloggerException {
- ReIndexEntryOperation reindex = new ReIndexEntryOperation(this, entry);
+ ReIndexEntryOperation reindex = new ReIndexEntryOperation(roller, this, entry);
scheduleIndexOperation(reindex);
}
public void removeEntryIndexOperation(WeblogEntry entry) throws WebloggerException {
- RemoveEntryOperation removeOp = new RemoveEntryOperation(this, entry);
+ RemoveEntryOperation removeOp = new RemoveEntryOperation(roller, this, entry);
executeIndexOperationNow(removeOp);
}
@@ -230,7 +233,7 @@
// only if search is enabled
if(this.searchEnabled) {
mLogger.debug("Starting scheduled index operation: "+op.getClass().getName());
- RollerFactory.getRoller().getThreadManager().executeInBackground(op);
+ roller.getThreadManager().executeInBackground(op);
}
} catch (InterruptedException e) {
mLogger.error("Error executing operation", e);
@@ -245,7 +248,7 @@
// only if search is enabled
if(this.searchEnabled) {
mLogger.debug("Executing index operation now: "+op.getClass().getName());
- RollerFactory.getRoller().getThreadManager().executeInForeground(op);
+ roller.getThreadManager().executeInForeground(op);
}
} catch (InterruptedException e) {
mLogger.error("Error executing operation", e);
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java Sat Jun 23 08:27:55 2007
@@ -26,7 +26,6 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.search.IndexManagerImpl;
import org.apache.roller.weblogger.business.Roller;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
@@ -44,14 +43,16 @@
//~ Instance fields ========================================================
private WeblogEntry data;
+ private Roller roller;
//~ Constructors ===========================================================
/**
* Adds a web log entry into the index.
*/
- public AddEntryOperation(IndexManagerImpl mgr,WeblogEntry data) {
+ public AddEntryOperation(Roller roller, IndexManagerImpl mgr,WeblogEntry data) {
super(mgr);
+ this.roller = roller;
this.data = data;
}
@@ -64,14 +65,13 @@
// the weblog object passed in as a detached object which is proned to
// lazy initialization problems, so requery for the object now
try {
- WeblogManager wMgr = RollerFactory.getRoller().getWeblogManager();
+ WeblogManager wMgr = roller.getWeblogManager();
this.data = wMgr.getWeblogEntry(this.data.getId());
} catch (WebloggerException ex) {
mLogger.error("Error getting weblogentry object", ex);
return;
}
- Roller roller = RollerFactory.getRoller();
try {
if (writer != null) {
writer.addDocument(getDocument(data));
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java Sat Jun 23 08:27:55 2007
@@ -29,7 +29,6 @@
import org.apache.roller.weblogger.business.search.IndexManagerImpl;
import org.apache.roller.weblogger.business.search.FieldConstants;
import org.apache.roller.weblogger.business.Roller;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
@@ -47,14 +46,16 @@
//~ Instance fields ========================================================
private WeblogEntry data;
+ private Roller roller;
//~ Constructors ===========================================================
/**
* Adds a web log entry into the index.
*/
- public ReIndexEntryOperation(IndexManagerImpl mgr,WeblogEntry data) {
+ public ReIndexEntryOperation(Roller roller, IndexManagerImpl mgr,WeblogEntry data) {
super(mgr);
+ this.roller = roller;
this.data = data;
}
@@ -66,7 +67,7 @@
// the weblog object passed in as a detached object which is proned to
// lazy initialization problems, so requery for the object now
try {
- WeblogManager wMgr = RollerFactory.getRoller().getWeblogManager();
+ WeblogManager wMgr = roller.getWeblogManager();
this.data = wMgr.getWeblogEntry(this.data.getId());
} catch (WebloggerException ex) {
mLogger.error("Error getting weblogentry object", ex);
@@ -86,7 +87,6 @@
}
IndexWriter writer = beginWriting();
- Roller roller = RollerFactory.getRoller();
try {
if (writer != null) {
writer.addDocument(getDocument(data));
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java Sat Jun 23 08:27:55 2007
@@ -34,7 +34,6 @@
import org.apache.roller.weblogger.business.search.FieldConstants;
import org.apache.roller.weblogger.business.search.IndexUtil;
import org.apache.roller.weblogger.business.Roller;
-import org.apache.roller.weblogger.business.RollerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
@@ -54,6 +53,7 @@
//~ Instance fields ========================================================
private Weblog website;
+ private Roller roller;
//~ Constructors ===========================================================
@@ -62,8 +62,9 @@
*
* @param website The website to rebuild the index for, or null for all users.
*/
- public RebuildWebsiteIndexOperation(IndexManagerImpl mgr, Weblog website) {
+ public RebuildWebsiteIndexOperation(Roller roller, IndexManagerImpl mgr, Weblog website) {
super(mgr);
+ this.roller = roller;
this.website = website;
}
@@ -77,7 +78,7 @@
// lazy initialization problems, so requery for the object now
if(this.website != null) {
try {
- UserManager uMgr = RollerFactory.getRoller().getUserManager();
+ UserManager uMgr = roller.getUserManager();
this.website = uMgr.getWebsite(this.website.getId());
} catch (WebloggerException ex) {
mLogger.error("Error getting website object", ex);
@@ -111,7 +112,6 @@
IndexWriter writer = beginWriting();
- Roller roller = RollerFactory.getRoller();
try {
if (writer != null) {
WeblogManager weblogManager = roller.getWeblogManager();
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java Sat Jun 23 08:27:55 2007
@@ -25,7 +25,7 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.search.IndexManagerImpl;
import org.apache.roller.weblogger.business.search.FieldConstants;
@@ -46,11 +46,13 @@
//~ Instance fields ========================================================
private WeblogEntry data;
+ private Roller roller;
//~ Constructors ===========================================================
- public RemoveEntryOperation(IndexManagerImpl mgr,WeblogEntry data) {
+ public RemoveEntryOperation(Roller roller, IndexManagerImpl mgr,WeblogEntry data) {
super(mgr);
+ this.roller = roller;
this.data = data;
}
@@ -62,7 +64,7 @@
// the weblog object passed in as a detached object which is proned to
// lazy initialization problems, so requery for the object now
try {
- WeblogManager wMgr = RollerFactory.getRoller().getWeblogManager();
+ WeblogManager wMgr = roller.getWeblogManager();
this.data = wMgr.getWeblogEntry(this.data.getId());
} catch (WebloggerException ex) {
mLogger.error("Error getting weblogentry object", ex);
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java Sat Jun 23 08:27:55 2007
@@ -26,7 +26,7 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.search.IndexManagerImpl;
import org.apache.roller.weblogger.business.search.FieldConstants;
@@ -48,6 +48,7 @@
//~ Instance fields ========================================================
private Weblog website;
+ private Roller roller;
//~ Constructors ===========================================================
@@ -55,8 +56,9 @@
* Create a new operation that will recreate an index.
* @param website The website to rebuild the index for, or null for all sites.
*/
- public RemoveWebsiteIndexOperation(IndexManagerImpl mgr, Weblog website) {
+ public RemoveWebsiteIndexOperation(Roller roller, IndexManagerImpl mgr, Weblog website) {
super(mgr);
+ this.roller = roller;
this.website = website;
}
@@ -69,7 +71,7 @@
// the weblog object passed in as a detached object which is proned to
// lazy initialization problems, so requery for the object now
try {
- UserManager uMgr = RollerFactory.getRoller().getUserManager();
+ UserManager uMgr = roller.getUserManager();
this.website = uMgr.getWebsite(this.website.getId());
} catch (WebloggerException ex) {
mLogger.error("Error getting website object", ex);
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/themes/ThemeManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -34,7 +34,7 @@
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.FileManager;
import org.apache.roller.weblogger.business.InitializationException;
-import org.apache.roller.weblogger.business.RollerFactory;
+import org.apache.roller.weblogger.business.Roller;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.config.RollerConfig;
import org.apache.roller.weblogger.pojos.Theme;
@@ -51,9 +51,11 @@
* This particular implementation reads theme data off the filesystem
* and assumes that those themes are not changable at runtime.
*/
+@com.google.inject.Singleton
public class ThemeManagerImpl implements ThemeManager {
private static Log log = LogFactory.getLog(ThemeManagerImpl.class);
+ private Roller roller = null;
// directory where themes are kept
private String themeDir = null;
@@ -61,8 +63,9 @@
// the Map contains ... (theme id, Theme)
private Map themes = null;
-
- public ThemeManagerImpl() {
+ @com.google.inject.Inject
+ protected ThemeManagerImpl(Roller roller) {
+ this.roller = roller;
// get theme directory from config and verify it
this.themeDir = RollerConfig.getProperty("themes.dir");
if(themeDir == null || themeDir.trim().length() < 1) {
@@ -133,7 +136,7 @@
// otherwise we are returning a WeblogSharedTheme
} else {
- ThemeManager themeMgr = RollerFactory.getRoller().getThemeManager();
+ ThemeManager themeMgr = roller.getThemeManager();
SharedTheme staticTheme =
(SharedTheme) this.themes.get(weblog.getEditorTheme());
if(staticTheme != null) {
@@ -175,7 +178,7 @@
log.debug("Importing theme ["+theme.getName()+"] to weblog ["+website.getName()+"]");
try {
- UserManager userMgr = RollerFactory.getRoller().getUserManager();
+ UserManager userMgr = roller.getUserManager();
Set importedActionTemplates = new HashSet();
ThemeTemplate themeTemplate = null;
@@ -255,7 +258,7 @@
// now lets import all the theme resources
- FileManager fileMgr = RollerFactory.getRoller().getFileManager();
+ FileManager fileMgr = roller.getFileManager();
List resources = theme.getResources();
Iterator iterat = resources.iterator();
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/PingConfig.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/PingConfig.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/PingConfig.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/PingConfig.java Sat Jun 23 08:27:55 2007
@@ -98,6 +98,11 @@
// targets that implement minor variants of the WeblogUpdates.ping call.
// This is initialized once at startup, and referenced when pings are made.
private static final Map configuredVariants = new HashMap();
+
+ // Pattern used to parse common ping targets as well as ping variants.
+ // Each initial commmon ping target is specified in the format {{name}{url}}
+ // Ping variants are also specified in a nested brace format {{url}{options}}
+ private static final Pattern NESTED_BRACE_PAIR = Pattern.compile("\\{\\{(.*?)\\}\\{(.*?)\\}\\}");
// Inhibit construction
@@ -166,11 +171,6 @@
public static boolean getSuspendPingProcessing() {
return RollerRuntimeConfig.getBooleanProperty(PINGS_SUSPEND_PING_PROCESSING_PROP);
}
-
- // Pattern used to parse common ping targets as well as ping variants.
- // Each initial commmon ping target is specified in the format {{name}{url}}
- // Ping variants are also specified in a nested brace format {{url}{options}}
- private static final Pattern NESTED_BRACE_PAIR = Pattern.compile("\\{\\{(.*?)\\}\\{(.*?)\\}\\}");
/**
* Initialize the common ping targets from the configuration properties. If the current list of common ping targets
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties Sat Jun 23 08:27:55 2007
@@ -79,7 +79,11 @@
# Hibernate dialect: You MUST override this to use a database other than MySQL4
hibernate.dialect=org.hibernate.dialect.MySQLDialect
+#---------------------------------
+# Pluggable backend
+
# No need to touch these two settings unless you are customizing Roller
+guice.backend.module=org.apache.roller.weblogger.business.jpa.RollerModule
hibernate.connectionProvider=org.apache.roller.weblogger.business.hibernate.HibernateConnectionProvider
#---------------------------------
Added: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java?view=auto&rev=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java (added)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java Sat Jun 23 08:27:55 2007
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.hibernate;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.PlanetException;
+import org.apache.roller.planet.business.hibernate.HibernatePersistenceStrategy;
+import org.apache.roller.weblogger.config.RollerConfig;
+
+/**
+ * Hibernate strategy for Planet, uses RollerConfig to get Hibernate configuration.
+ */
+@com.google.inject.Singleton
+public class HibernateRollerPlanetPersistenceStrategy extends HibernatePersistenceStrategy {
+ private static Log logger =
+ LogFactory.getFactory().getInstance(HibernateRollerPlanetPersistenceStrategy.class);
+
+ /**
+ * Persistence strategy configures itself by using 'planet-hibernate.cfg.xml'
+ * and Roller properties: 'hibernate.dialect' - the classname of the Hibernate
+ * dialect to be used, 'hibernate.connectionProvider - the classname of
+ * Roller's connnection provider impl.
+ */
+ protected HibernateRollerPlanetPersistenceStrategy() throws PlanetException {
+ String dialect =
+ RollerConfig.getProperty("hibernate.dialect");
+ String connectionProvider =
+ RollerConfig.getProperty("hibernate.connectionProvider");
+ String configuration = "planet-hibernate.cfg.xml";
+ init(dialect, connectionProvider, configuration);
+ }
+}
Added: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java?view=auto&rev=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java (added)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java Sat Jun 23 08:27:55 2007
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.hibernate;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import org.apache.roller.planet.business.FeedFetcher;
+import org.apache.roller.planet.business.MultiPlanetURLStrategy;
+import org.apache.roller.planet.business.Planet;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.business.PropertiesManager;
+import org.apache.roller.planet.business.RomeFeedFetcher;
+import org.apache.roller.planet.business.URLStrategy;
+import org.apache.roller.planet.business.hibernate.HibernatePlanetImpl;
+import org.apache.roller.planet.business.hibernate.HibernatePlanetManagerImpl;
+import org.apache.roller.planet.business.hibernate.HibernatePropertiesManagerImpl;
+
+/**
+ * Guice module for configuring Roller's built-in Planet, Hibernate version.
+ */
+public class RollerPlanetModule implements Module {
+
+ public void configure(Binder binder) {
+
+ binder.bind(Planet.class).to(HibernatePlanetImpl.class);
+
+ // Use special Planet persistence strategy that works against RollerConfig
+ binder.bind(HibernateRollerPlanetPersistenceStrategy.class);
+
+ binder.bind(PlanetManager.class).to( HibernatePlanetManagerImpl.class);
+ binder.bind(PropertiesManager.class).to( HibernatePropertiesManagerImpl.class);
+ binder.bind(URLStrategy.class).to( MultiPlanetURLStrategy.class);
+ binder.bind(FeedFetcher.class).to( RomeFeedFetcher.class);
+ }
+}
+
Added: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java?view=auto&rev=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java (added)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java Sat Jun 23 08:27:55 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License. For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.jpa;
+
+import java.util.Enumeration;
+import java.util.Properties;
+import javax.persistence.Persistence;
+import javax.persistence.PersistenceException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.PlanetException;
+import org.apache.roller.planet.business.jpa.JPAPersistenceStrategy;
+import org.apache.roller.weblogger.business.DatabaseProvider;
+import org.apache.roller.weblogger.business.startup.WebloggerStartup;
+import org.apache.roller.weblogger.config.RollerConfig;
+
+/**
+ * JPA strategy for Planet, uses RollerConfig to get JPA configuration.
+ */
+@com.google.inject.Singleton
+public class JPARollerPlanetPersistenceStrategy extends JPAPersistenceStrategy {
+ private static Log logger =
+ LogFactory.getFactory().getInstance(JPARollerPlanetPersistenceStrategy.class);
+
+ /**
+ * Construct by finding using DatabaseProvider and RollerConfig.
+ * @throws org.apache.roller.PlanetException on any error
+ */
+ protected JPARollerPlanetPersistenceStrategy() throws PlanetException {
+
+ DatabaseProvider dbProvider = WebloggerStartup.getDatabaseProvider();
+
+ // Pull in any properties defined in JMAEMF.properties config file
+ Properties emfProps = loadPropertiesFromResourceName(
+ "JPAEMF.properties", getContextClassLoader());
+
+ // Add all OpenJPA and Toplinks properties found in RollerConfig
+ Enumeration keys = RollerConfig.keys();
+ while (keys.hasMoreElements()) {
+ String key = (String)keys.nextElement();
+ if (key.startsWith("openjpa.") || key.startsWith("toplink.")) {
+ String value = RollerConfig.getProperty(key);
+ logger.info(key + ": " + value);
+ emfProps.setProperty(key, value);
+ }
+ }
+
+ if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) {
+ // We're doing JNDI, so set OpenJPA JNDI name property
+ String jndiName = "java:comp/env/" + dbProvider.getJndiName();
+ emfProps.setProperty("openjpa.ConnectionFactoryName", jndiName);
+
+ } else {
+ // So set JDBD properties for OpenJPA
+ emfProps.setProperty("openjpa.ConnectionDriverName", dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("openjpa.ConnectionURL", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("openjpa.ConnectionUserName", dbProvider.getJdbcUsername());
+ emfProps.setProperty("openjpa.ConnectionPassword", dbProvider.getJdbcPassword());
+
+ // And Toplink JPA
+ emfProps.setProperty("toplink.jdbc.driver", dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("toplink.jdbc.url", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("toplink.jdbc.user", dbProvider.getJdbcUsername());
+ emfProps.setProperty("toplink.jdbc.password", dbProvider.getJdbcPassword());
+
+ // And Hibernate JPA
+ emfProps.setProperty("hibernate.connection.driver_class",dbProvider.getJdbcDriverClass());
+ emfProps.setProperty("hibernate.connection.url", dbProvider.getJdbcConnectionURL());
+ emfProps.setProperty("hibernate.connection.username", dbProvider.getJdbcUsername());
+ emfProps.setProperty("hibernate.connection.password", dbProvider.getJdbcPassword());
+ }
+
+ try {
+ this.emf = Persistence.createEntityManagerFactory("PlanetPU", emfProps);
+ } catch (PersistenceException pe) {
+ logger.error("ERROR: creating entity manager", pe);
+ throw new PlanetException(pe);
+ }
+ }
+}