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/04 05:46:17 UTC

svn commit: r544039 - in /roller/branches/roller_guice: 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/business/jpa/ apps/weblogger...

Author: snoopdave
Date: Sun Jun  3 20:46:15 2007
New Revision: 544039

URL: http://svn.apache.org/viewvc?view=rev&rev=544039
Log:
Further refinements of Roller Guice implementation

Modified:
    roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/DatabaseProvider.java
    roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/PlanetFactory.java
    roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernateConnectionProvider.java
    roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java
    roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/jpa/JPAPersistenceStrategy.java
    roller/branches/roller_guice/apps/weblogger/properties.xmlf
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/DatabaseProvider.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateConnectionProvider.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java
    roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
    roller/branches/roller_guice/tools/roller-planet/roller-planet-business.jar

Modified: roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/DatabaseProvider.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/DatabaseProvider.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/DatabaseProvider.java (original)
+++ roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/DatabaseProvider.java Sun Jun  3 20:46:15 2007
@@ -51,35 +51,18 @@
 public abstract class DatabaseProvider  {
     private static Log log = LogFactory.getLog(DatabaseProvider.class);
     public enum ConfigurationType {JNDI_NAME, JDBC_PROPERTIES;}
-    
-    private static DatabaseProvider databaseProvider = null;
-    
-    protected ConfigurationType type = ConfigurationType.JNDI_NAME; 
+        
+    protected ConfigurationType type = ConfigurationType.JNDI_NAME;
     
     protected String jndiName = null; 
-    protected DataSource dataSource = null;
+    protected DataSource dataSource = null;  
     
     protected String jdbcDriverClass = null;
     protected String jdbcConnectionURL = null;
     protected String jdbcPassword = null;
     protected String jdbcUsername = null;
     protected Properties props = null;
-    
-    // Singleton
-    protected DatabaseProvider() {}
-    
-    
-    // Needed by HibernateConnectionProvider, it's not instantiated by Guice
-    public static DatabaseProvider getDatabaseProvider() {
-        return databaseProvider;
-    }
-    
-    
-    @com.google.inject.Inject
-    private void setDatabaseProvider(DatabaseProvider dbprovider) {
-        databaseProvider = dbprovider;
-    }
-    
+   
     
     protected void init(
         ConfigurationType type,

Modified: roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/PlanetFactory.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/PlanetFactory.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/PlanetFactory.java (original)
+++ roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/PlanetFactory.java Sun Jun  3 20:46:15 2007
@@ -37,8 +37,7 @@
      * Let's just be doubling certain this class cannot be instantiated.
      */
     private PlanetFactory() {} // hello planetary citizens
-    
-    
+        
     static { 
 
         String moduleClassname = PlanetConfig.getProperty("guice.backend.module");
@@ -51,12 +50,18 @@
             throw new RuntimeException("Error instantiating backend module" + moduleClassname, e);
         }
     }
-    
-        
+            
     /**
      * Static accessor for the instance of Roller
      */
     public static Planet getPlanet() {
         return injector.getInstance(Planet.class);
     }     
+    
+    /**
+     * TODO_GUICE: elimiate the need for PlanetFactory.getInjector()
+     */
+    public static Injector getInjector() {
+        return injector;
+    }
 }

Modified: roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernateConnectionProvider.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernateConnectionProvider.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernateConnectionProvider.java (original)
+++ roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernateConnectionProvider.java Sun Jun  3 20:46:15 2007
@@ -6,6 +6,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.planet.business.DatabaseProvider;
+import org.apache.roller.planet.business.PlanetFactory;
 import org.hibernate.HibernateException;
 import org.hibernate.connection.ConnectionProvider;
 
@@ -18,15 +19,16 @@
  */
 public class HibernateConnectionProvider implements ConnectionProvider {
     private static Log log = LogFactory.getLog(HibernateConnectionProvider.class);
+    private DatabaseProvider databaseProvider = null;
     
     /** No-op: we get our configuration from Roller's DatabaseProvider */
     public void configure(Properties properties) throws HibernateException {
-        // no-op
+        databaseProvider = PlanetFactory.getInjector().getInstance(DatabaseProvider.class);
     }
 
     /** Get connecetion from Roller's Database provider */
     public Connection getConnection() throws SQLException {
-        return DatabaseProvider.getDatabaseProvider().getConnection();
+        return databaseProvider.getConnection();
     }
 
     /** Close connection by calling connection.close() */

Modified: roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java (original)
+++ roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java Sun Jun  3 20:46:15 2007
@@ -58,6 +58,7 @@
      * Create HibernatePlanetImpl using Hibernate XML config file or config
      * file plus JDBC overrides from planet-custom.properties.
      */
+    @com.google.inject.Inject 
     public HibernatePlanetImpl(
             HibernatePersistenceStrategy strategy, 
             PlanetManager     planetManager, 

Modified: roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/jpa/JPAPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/jpa/JPAPersistenceStrategy.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/jpa/JPAPersistenceStrategy.java (original)
+++ roller/branches/roller_guice/apps/planet/src/java/org/apache/roller/planet/business/jpa/JPAPersistenceStrategy.java Sun Jun  3 20:46:15 2007
@@ -62,7 +62,8 @@
      * Construct by finding JPA EntityManagerFactory.
      * @throws org.apache.roller.PlanetException on any error
      */
-    public JPAPersistenceStrategy() throws PlanetException { 
+    @com.google.inject.Inject 
+    public JPAPersistenceStrategy(DatabaseProvider dbProvider) throws PlanetException { 
         
         // Pull in any properties defined in JMAEMF.properties config file
         Properties emfProps = loadPropertiesFromResourceName(
@@ -79,7 +80,6 @@
             }
         }
         
-        DatabaseProvider dbProvider = DatabaseProvider.getDatabaseProvider();
         if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) {
             // We're doing JNDI, so set OpenJPA JNDI name property
             String jndiName = "java:comp/env/" + dbProvider.getJndiName();

Modified: roller/branches/roller_guice/apps/weblogger/properties.xmlf
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/properties.xmlf?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/properties.xmlf (original)
+++ roller/branches/roller_guice/apps/weblogger/properties.xmlf Sun Jun  3 20:46:15 2007
@@ -188,6 +188,7 @@
     <fileset refid="mail.jars"/>
     <fileset refid="roller-core.jars" />
     <fileset refid="xmlrpc.jars"/>
+    <fileset refid="roller-planet.jars" />
     <!-- JPA bytecode enhancement apparently wants JPA classes everywhere -->
     <fileset refid="jpa.jars" />
 </path>
@@ -201,7 +202,6 @@
 <path id="presentation.path">
     <path refid="base.path"/>
     <fileset refid="presentation.jars"/>
-    <fileset refid="roller-planet.jars" />
     <fileset refid="struts.jars"/>
     <fileset refid="struts2.jars"/>
     <fileset refid="servlet.jars"/>

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/DatabaseProvider.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/DatabaseProvider.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/DatabaseProvider.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/DatabaseProvider.java Sun Jun  3 20:46:15 2007
@@ -27,7 +27,6 @@
 import javax.sql.DataSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.roller.planet.PlanetException;
 
 /**
  * Encapsulates Roller database configuration via JDBC properties or JNDI.
@@ -51,35 +50,18 @@
 public abstract class DatabaseProvider  {
     private static Log log = LogFactory.getLog(DatabaseProvider.class);
     public enum ConfigurationType {JNDI_NAME, JDBC_PROPERTIES;}
-    
-    private static DatabaseProvider databaseProvider = null;
-    
-    protected ConfigurationType type = ConfigurationType.JNDI_NAME; 
+        
+    protected ConfigurationType type = ConfigurationType.JNDI_NAME;
     
     protected String jndiName = null; 
-    protected DataSource dataSource = null;
+    protected DataSource dataSource = null;  
     
     protected String jdbcDriverClass = null;
     protected String jdbcConnectionURL = null;
     protected String jdbcPassword = null;
     protected String jdbcUsername = null;
     protected Properties props = null;
-    
-    // Singleton
-    protected DatabaseProvider() {}
-    
-    
-    // Needed by HibernateConnectionProvider, it's not instantiated by Guice
-    public static DatabaseProvider getDatabaseProvider() {
-        return databaseProvider;
-    }
-    
-    
-    @com.google.inject.Inject
-    private void setDatabaseProvider(DatabaseProvider dbprovider) {
-        databaseProvider = dbprovider;
-    }
-    
+   
     
     protected void init(
         ConfigurationType type,

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java Sun Jun  3 20:46:15 2007
@@ -42,7 +42,6 @@
     
     
     static { 
-
         String moduleClassname = RollerConfig.getProperty("guice.backend.module");
         try {
             Class moduleClass = Class.forName(moduleClassname);
@@ -51,9 +50,29 @@
         } catch (Throwable e) {                
             // Fatal misconfiguration, cannot recover
             throw new RuntimeException("Error instantiating backend module" + moduleClassname, e);
-        }
-        
-        try {
+        }            
+    }
+    
+    
+    /**
+     * Static accessor for the instance of Roller
+     */
+    public static Roller getRoller() {
+        return injector.getInstance(Roller.class);
+    }    
+
+    /**
+     * TODO_GUICE: elimiate the need for RollerFactory.getInjector()
+     */
+    public static Injector getInjector() {
+        return injector;
+    }
+    
+    /**
+     * TODO_GUICE: figure out the right place for this ping and search init
+     */
+    public static void bootstrap() {
+       try {
             // Initialize common targets from the configuration
             PingConfig.initializeCommonTargets();
             
@@ -71,25 +90,12 @@
                 log.info("Ping usage has been disabled.  Removing any existing auto ping configurations.");
                 RollerFactory.getRoller().getAutopingManager().removeAllAutoPings();
             }
+            
+            RollerFactory.getRoller().getIndexManager().bootstrap();
+            
         } catch (WebloggerException e) {
             log.error("ERROR configing ping managers", e);
         }
-            
-    }
-    
-    
-    /**
-     * Static accessor for the instance of Roller
-     */
-    public static Roller getRoller() {
-        return injector.getInstance(Roller.class);
-    }    
-
-    /**
-     * TODO: elimiate the need for RollerFactory.getInjector()
-     */
-    public static Injector getInjector() {
-        return injector;
     }
 }
 

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateConnectionProvider.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateConnectionProvider.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateConnectionProvider.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateConnectionProvider.java Sun Jun  3 20:46:15 2007
@@ -5,8 +5,8 @@
 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.DatabaseProvider;
+import org.apache.roller.weblogger.business.RollerFactory;
 import org.hibernate.HibernateException;
 import org.hibernate.connection.ConnectionProvider;
 
@@ -22,11 +22,14 @@
     private DatabaseProvider databaseProvider = null;
     
     /** No-op: we get our configuration from Roller's DatabaseProvider */
-    public void configure(Properties properties) throws HibernateException {}
+    public void configure(Properties properties) throws HibernateException {
+        // This class is created by Hibermate, so we do self-injection here
+        databaseProvider = RollerFactory.getInjector().getInstance(DatabaseProvider.class);
+    }
 
     /** Get connecetion from Roller's Database provider */
     public Connection getConnection() throws SQLException {
-        return DatabaseProvider.getDatabaseProvider().getConnection();
+        return databaseProvider.getConnection();
     }
 
     /** Close connection by calling connection.close() */

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java Sun Jun  3 20:46:15 2007
@@ -56,7 +56,7 @@
         binder.bind(Roller.class).to(HibernateRollerImpl.class);
         
         binder.bind(HibernatePersistenceStrategy.class);       
-        binder.bind(org.apache.roller.planet.business.hibernate.HibernatePersistenceStrategy.class);   
+        binder.bind(org.apache.roller.weblogger.planet.business.hibernate.HibernateRollerPlanetPersistenceStrategy.class);     
         
         binder.bind(AutoPingManager.class).to(     HibernateAutoPingManagerImpl.class);   
         binder.bind(BookmarkManager.class).to(     HibernateBookmarkManagerImpl.class);  

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAPersistenceStrategy.java Sun Jun  3 20:46:15 2007
@@ -61,7 +61,8 @@
      * Construct by finding JPA EntityManagerFactory.
      * @throws org.apache.roller.WebloggerException on any error
      */
-    public JPAPersistenceStrategy() throws WebloggerException { 
+    @com.google.inject.Inject
+    public JPAPersistenceStrategy(DatabaseProvider dbProvider) throws WebloggerException { 
         
         // Pull in any properties defined in JMAEMF.properties config file
         Properties emfProps = loadPropertiesFromResourceName(
@@ -78,7 +79,6 @@
             }
         }
         
-        DatabaseProvider dbProvider = DatabaseProvider.getDatabaseProvider(); 
         if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) { 
             // We're doing JNDI, so set OpenJPA JNDI name property
             String jndiName = "java:comp/env/" + dbProvider.getJndiName();

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManager.java Sun Jun  3 20:46:15 2007
@@ -47,6 +47,9 @@
     /** Execute operation immediately */
     public abstract void executeIndexOperationNow(final IndexOperation op);
     
+    /** Init index manager by checking and rebuilding index */
+    public void bootstrap();
+    
     /**
      * Release all resources associated with Roller session.
      */

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/IndexManagerImpl.java Sun Jun  3 20:46:15 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;
 
 /**
@@ -59,6 +58,7 @@
     // =============================================
     
     private IndexReader reader;
+    private Roller roller;
     
     static Log mLogger = LogFactory.getFactory().getInstance(
             IndexManagerImpl.class);
@@ -92,7 +92,13 @@
      * @param indexDir -
      *            the path to the index directory
      */
-    public IndexManagerImpl() {
+    @com.google.inject.Inject
+    public IndexManagerImpl(Roller roller) {
+        this.roller = roller;
+    }
+        
+    public void bootstrap() {
+        
         // check config to see if the internal search is enabled
         String enabled = RollerConfig.getProperty("search.enabled");
         if("false".equalsIgnoreCase(enabled))
@@ -171,31 +177,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);
     }
     
@@ -221,7 +227,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);
@@ -236,7 +242,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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/AddEntryOperation.java Sun Jun  3 20:46:15 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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/ReIndexEntryOperation.java Sun Jun  3 20:46:15 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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RebuildWebsiteIndexOperation.java Sun Jun  3 20:46:15 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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveEntryOperation.java Sun Jun  3 20:46:15 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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/search/operations/RemoveWebsiteIndexOperation.java Sun Jun  3 20:46:15 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/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java Sun Jun  3 20:46:15 2007
@@ -41,7 +41,8 @@
      * Construct by finding using DatabaseProvider and RollerConfig.
      * @throws org.apache.roller.PlanetException on any error
      */
-    public JPARollerPlanetPersistenceStrategy() throws PlanetException { 
+    @com.google.inject.Inject
+    public JPARollerPlanetPersistenceStrategy(DatabaseProvider dbProvider) throws PlanetException { 
         
         // Pull in any properties defined in JMAEMF.properties config file
         Properties emfProps = loadPropertiesFromResourceName(
@@ -58,7 +59,6 @@
             }
         }
         
-        DatabaseProvider dbProvider = DatabaseProvider.getDatabaseProvider();
         if (dbProvider.getType() == DatabaseProvider.ConfigurationType.JNDI_NAME) {
             // We're doing JNDI, so set OpenJPA JNDI name property
             String jndiName = "java:comp/env/" + dbProvider.getJndiName();

Modified: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/RollerContext.java Sun Jun  3 20:46:15 2007
@@ -117,7 +117,7 @@
         // is set to ${webapp.context}
         RollerConfig.setThemesDir(servletContext.getRealPath("/")+File.separator+"themes");
         
-        try {
+        try {        
             // Parts of database upgrade are not included in migration scripts
             upgradeDatabaseIfNeeded();
             
@@ -130,6 +130,9 @@
             // This will cause instantiation and initialziation of Roller impl
             Roller roller = RollerFactory.getRoller();
             
+            // TODO_GUICE: eliminate need this RollerFactory.bootstrap()
+            RollerFactory.bootstrap();
+            
             // And this will schedule all configured tasks
             roller.getThreadManager().startTasks();
             
@@ -167,13 +170,13 @@
     /**
      * Trigger any database upgrade work that needs to be done.
      */
-    private void upgradeDatabaseIfNeeded() throws Exception {        
+    private void upgradeDatabaseIfNeeded() throws Exception {  
         
-        // TODO_GUICE: elimiate the need for RollerFactory.getInjector()
-        // This should cause injection of DatabaseProvider singleton
-        RollerFactory.getInjector().getInstance(DatabaseProvider.class);
+        // TODO_GUICE: address this little ugliness after table auto-create/update is in place
+        DatabaseProvider databaseProvider = 
+            RollerFactory.getInjector().getInstance(DatabaseProvider.class);
         
-        Connection con = DatabaseProvider.getDatabaseProvider().getConnection();
+        Connection con = databaseProvider.getConnection();
         UpgradeDatabase.upgradeDatabase(con, RollerFactory.getRoller().getVersion());
         con.close();
     }

Modified: roller/branches/roller_guice/tools/roller-planet/roller-planet-business.jar
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/tools/roller-planet/roller-planet-business.jar?view=diff&rev=544039&r1=544038&r2=544039
==============================================================================
Binary files - no diff available.