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 [2/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/planet/test/java/org/apache/roller/planet/TestUtils.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/TestUtils.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/TestUtils.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/TestUtils.java Sat Jun 23 08:27:55 2007
@@ -18,9 +18,9 @@
 
 package org.apache.roller.planet;
 
-import org.apache.roller.planet.PlanetException;
 import org.apache.roller.planet.business.PlanetFactory;
 import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.business.startup.PlanetStartup;
 import org.apache.roller.planet.pojos.PlanetData;
 import org.apache.roller.planet.pojos.PlanetEntryData;
 import org.apache.roller.planet.pojos.PlanetGroupData;
@@ -31,6 +31,27 @@
  * Utility class for unit test classes.
  */
 public final class TestUtils {
+    
+    
+    public static void setupPlanet() throws Exception {
+        
+        if(!PlanetFactory.isBootstrapped()) {
+            
+            // do core services preparation
+            PlanetStartup.prepare();
+            
+            // do application bootstrapping and init
+            PlanetFactory.bootstrap();
+            PlanetFactory.getPlanet().initialize();
+        }
+    }
+    
+    
+    public static void shutdownPlanet() throws Exception {
+        
+        // trigger shutdown
+        PlanetFactory.getPlanet().shutdown();
+    }
     
     
     /**

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryBasicTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryBasicTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryBasicTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryBasicTests.java Sat Jun 23 08:27:55 2007
@@ -32,6 +32,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+        
         testSub = TestUtils.setupSubscription("entryBasicTest");
     }
     

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryFunctionalTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryFunctionalTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/EntryFunctionalTests.java Sat Jun 23 08:27:55 2007
@@ -44,6 +44,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         log.info("ENTERED");
         
         testPlanet = TestUtils.setupPlanet("entryFuncTestPlanet");

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupBasicTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupBasicTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupBasicTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupBasicTests.java Sat Jun 23 08:27:55 2007
@@ -32,6 +32,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         testPlanet = TestUtils.setupPlanet("groupBasicTest");
     }
     

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupFunctionalTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupFunctionalTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/GroupFunctionalTests.java Sat Jun 23 08:27:55 2007
@@ -34,6 +34,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         testPlanet = TestUtils.setupPlanet("groupFuncTest");
         testGroup1 = TestUtils.setupGroup(testPlanet, "groupFuncTest1");
         testGroup2 = TestUtils.setupGroup(testPlanet, "groupFuncTest2");

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetBasicTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetBasicTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetBasicTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetBasicTests.java Sat Jun 23 08:27:55 2007
@@ -34,6 +34,9 @@
     
     public void testPlanetCRUD() throws Exception {
         
+        // setup planet
+        TestUtils.setupPlanet();
+
         PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
         
         PlanetData testPlanet = new PlanetData("testPlanet", "testPlanet", "testPlanet");

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PlanetFunctionalTests.java Sat Jun 23 08:27:55 2007
@@ -35,6 +35,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         testPlanet = TestUtils.setupPlanet("planetFuncTest");
     }
     

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PropertiesTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PropertiesTest.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PropertiesTest.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/PropertiesTest.java Sat Jun 23 08:27:55 2007
@@ -38,7 +38,11 @@
     public static Log log = LogFactory.getLog(PropertiesTest.class);
     
     
-    public void setUp() throws Exception {}
+    public void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
+    }
     
     public void tearDown() throws Exception {}
     

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/RomeFeedFetcherTest.java Sat Jun 23 08:27:55 2007
@@ -41,6 +41,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         testPlanet = TestUtils.setupPlanet("fetcherTestPlanet");
         testGroup = TestUtils.setupGroup(testPlanet, "fetcherTestGroup");
         

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionBasicTests.java Sat Jun 23 08:27:55 2007
@@ -29,6 +29,9 @@
     
     public void testSubscriptionCRUD() throws Exception {
         
+        // setup planet
+        TestUtils.setupPlanet();
+
         PlanetManager mgr = PlanetFactory.getPlanet().getPlanetManager();
         
         PlanetSubscriptionData testSub = new PlanetSubscriptionData();

Modified: roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java (original)
+++ roller/trunk/apps/planet/test/java/org/apache/roller/planet/business/SubscriptionFunctionalTests.java Sat Jun 23 08:27:55 2007
@@ -37,6 +37,9 @@
     
     
     protected void setUp() throws Exception {
+        // setup planet
+        TestUtils.setupPlanet();
+
         testPlanet = TestUtils.setupPlanet("subFuncTest");
         testGroup1 = TestUtils.setupGroup(testPlanet, "subFuncTest1");
         testGroup2 = TestUtils.setupGroup(testPlanet, "subFuncTest2");

Modified: roller/trunk/apps/planet/testdata/planet-custom.properties
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/testdata/planet-custom.properties?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/testdata/planet-custom.properties (original)
+++ roller/trunk/apps/planet/testdata/planet-custom.properties Sat Jun 23 08:27:55 2007
@@ -1,6 +1,6 @@
-persistence.planet.classname=org.apache.roller.planet.business.jpa.JPAPlanetImpl
-#persistence.planet.classname=org.apache.roller.planet.business.datamapper.jpa.JPAPlanetImpl
-#persistence.planet.classname=org.apache.roller.planet.business.hibernate.HibernatePlanetImpl
+
+# Pluggable backend
+#guice.backend.module=org.apache.roller.planet.business.hibernate.PlanetModule
 
 database.configurationType=jdbc
 

Modified: roller/trunk/apps/planet/web/WEB-INF/classes/planet.properties
URL: http://svn.apache.org/viewvc/roller/trunk/apps/planet/web/WEB-INF/classes/planet.properties?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/planet/web/WEB-INF/classes/planet.properties (original)
+++ roller/trunk/apps/planet/web/WEB-INF/classes/planet.properties Sat Jun 23 08:27:55 2007
@@ -66,28 +66,19 @@
 hibernate.dialect=org.hibernate.dialect.MySQLDialect
 
 
+
 #----------------------------------------------------
 # Optional properties
 
+# Pluggable backend
+guice.backend.module=org.apache.roller.planet.business.jpa.PlanetModule
 
 # Number of Technorati queries allowed per day
 planet.aggregator.technorati.limit=500
 
-# Business layer implementation to be used - don't touch unless you are customizing Planet
-persistence.planet.classname=\
-org.apache.roller.planet.business.jpa.JPAPlanetImpl
-
 # Connection provider to be used - don't touch unless you are customizing Planet
 hibernate.connectionProvider=\
 org.apache.roller.planet.business.hibernate.HibernateConnectionProvider
-
-# choose a url strategy
-urlstrategy.classname=\
-org.apache.roller.planet.business.MultiPlanetURLStrategy
-
-# choose a feed fetcher
-feedfetcher.classname=\
-org.apache.roller.planet.business.RomeFeedFetcher
 
 # The set of default Roller renderer factories.
 rendering.rollerRendererFactories=\

Modified: roller/trunk/apps/weblogger/nbproject/project.xml
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/nbproject/project.xml?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/nbproject/project.xml (original)
+++ roller/trunk/apps/weblogger/nbproject/project.xml Sat Jun 23 08:27:55 2007
@@ -10,11 +10,6 @@
             </properties>
             <folders>
                 <source-folder>
-                    <label>web</label>
-                    <type>doc_root</type>
-                    <location>web</location>
-                </source-folder>
-                <source-folder>
                     <label>src</label>
                     <type>java</type>
                     <location>src/java</location>
@@ -24,6 +19,11 @@
                     <type>java</type>
                     <location>test/java</location>
                 </source-folder>
+                <source-folder>
+                    <label>web</label>
+                    <type>doc_root</type>
+                    <location>web</location>
+                </source-folder>
             </folders>
             <ide-actions>
                 <action name="build">
@@ -103,14 +103,13 @@
             <compilation-unit>
                 <package-root>src/java</package-root>
                 <package-root>test/java</package-root>
-                <classpath mode="compile">../../tools/lib/commons-betwixt-1.0-beta-1.jar:../../tools/lib/commons-codec-1.3.jar:../../tools/lib/commons-collections-3.2.jar:../../tools/lib/commons-httpclient-2.0.2.jar:../../tools/lib/commons-id-0.1-SNAPSHOT.jar:../../tools/lib/commons-lang-2.1.jar:../../tools/lib/commons-logging-1.0.4.jar:../../tools/lib/jaxen-full.jar:../../tools/lib/jdom.jar:../../tools/lib/log4j-1.2.11.jar:../../tools/lib/lucene-1.4.3.jar:../../tools/lib/rome-0.9.jar:../../tools/lib/rome-fetcher-0.9.jar:../../tools/lib/saxpath.jar:../../tools/lib/velocity-1.5.jar:../../tools/lib/taglibs-string.jar:../../tools/struts-1.2.4/lib/antlr.jar:../../tools/struts-1.2.4/lib/commons-beanutils.jar:../../tools/struts-1.2.4/lib/commons-digester.jar:../../tools/struts-1.2.4/lib/commons-validator.jar:../../tools/struts-1.2.4/lib/jakarta-oro.jar:../../tools/struts-1.2.4/lib/struts-el.jar:../../tools/struts-1.2.4/lib/struts.jar:../../tools/struts-2.0.6/lib/antlr-2.7.2.jar:..
 /../tools/struts-2.0.6/lib/commons-beanutils-1.6.jar:../../tools/struts-2.0.6/lib/commons-chain-1.1.jar:../../tools/struts-2.0.6/lib/commons-fileupload-1.2.jar:../../tools/struts-2.0.6/lib/commons-io-1.3.1.jar:../../tools/struts-2.0.6/lib/commons-validator-1.3.0.jar:../../tools/struts-2.0.6/lib/freemarker-2.3.8.jar:../../tools/struts-2.0.6/lib/ognl-2.6.11.jar:../../tools/struts-2.0.6/lib/oro-2.0.8.jar:../../tools/struts-2.0.6/lib/struts2-core-2.0.6.jar:../../tools/struts-2.0.6/lib/struts2-spring-plugin-2.0.6.jar:../../tools/struts-2.0.6/lib/struts2-tiles-plugin-2.0.6.jar:../../tools/struts-2.0.6/lib/tiles-api-2.0-20070207.130156-4.jar:../../tools/struts-2.0.6/lib/tiles-core-2.0-20070207.130156-4.jar:../../tools/struts-2.0.6/lib/xwork-2.0.1.jar:../../tools/buildtime/tomcat-5.0.28/jsp-api.jar:../../tools/buildtime/tomcat-5.0.28/servlet-api.jar:../../tools/buildtime/activation.jar:../../tools/buildtime/mail.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/jstl.jar:../../tools
 /jakarta-taglibs-standard-1.1.2/lib/serializer.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/standard.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/xalan.jar:../../tools/hibernate-3.1/hibernate3.jar:../../tools/hibernate-3.1/lib/asm-attrs.jar:../../tools/hibernate-3.1/lib/asm.jar:../../tools/hibernate-3.1/lib/cglib-2.1.3.jar:../../tools/hibernate-3.1/lib/dom4j-1.6.1.jar:../../tools/hibernate-3.1/lib/ehcache-1.1.jar:../../tools/hibernate-3.1/lib/jdbc2_0-stdext.jar:../../tools/hibernate-3.1/lib/jta.jar:../../tools/openjpa-0.9.7/geronimo-j2ee-connector_1.5_spec-1.0.1.jar:../../tools/openjpa-0.9.7/geronimo-jpa_3.0_spec-1.0.jar:../../tools/openjpa-0.9.7/geronimo-jta_1.0.1B_spec-1.0.1.jar:../../tools/openjpa-0.9.7/openjpa-0.9.7-incubating.jar:../../tools/openjpa-0.9.7/serp-1.11.0.jar:../../tools/spring-1.2/acegi-security-1.0.3.jar:../../tools/spring-1.2/spring.jar:../../tools/roller-core/roller-core.jar:../../tools/roller-planet/roller-planet-business.jar:../../tools/xml
 rpc-3.0/lib/ws-commons-util-1.0.1.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-client-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-common-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-server-3.0.jar:../../tools/buildtime/junit-4.1.jar</classpath>
+                <classpath mode="compile">../../tools/lib/commons-betwixt-1.0-beta-1.jar:../../tools/lib/commons-codec-1.3.jar:../../tools/lib/commons-collections-3.2.jar:../../tools/lib/commons-digester-1.6.jar:../../tools/lib/commons-httpclient-2.0.2.jar:../../tools/lib/commons-id-0.1-SNAPSHOT.jar:../../tools/lib/commons-lang-2.1.jar:../../tools/lib/commons-logging-1.0.4.jar:../../tools/lib/concurrent-1.3.2.jar:../../tools/lib/guice-1.0.jar:../../tools/lib/jaxen-full.jar:../../tools/lib/jdom.jar:../../tools/lib/log4j-1.2.11.jar:../../tools/lib/lucene-1.4.3.jar:../../tools/lib/rome-0.9.jar:../../tools/lib/rome-fetcher-0.9.jar:../../tools/lib/saxpath.jar:../../tools/lib/taglibs-string.jar:../../tools/lib/velocity-1.5.jar:../../tools/hibernate-3.1/hibernate3.jar:../../tools/struts-2.0.6/lib/antlr-2.7.2.jar:../../tools/struts-2.0.6/lib/commons-beanutils-1.6.jar:../../tools/struts-2.0.6/lib/commons-chain-1.1.jar:../../tools/struts-2.0.6/lib/commons-fileupload-1.2.jar:../../tool
 s/struts-2.0.6/lib/commons-io-1.3.1.jar:../../tools/struts-2.0.6/lib/commons-validator-1.3.0.jar:../../tools/struts-2.0.6/lib/freemarker-2.3.8.jar:../../tools/struts-2.0.6/lib/ognl-2.6.11.jar:../../tools/struts-2.0.6/lib/oro-2.0.8.jar:../../tools/struts-2.0.6/lib/struts2-core-2.0.6.jar:../../tools/struts-2.0.6/lib/struts2-spring-plugin-2.0.6.jar:../../tools/struts-2.0.6/lib/struts2-tiles-plugin-2.0.6.jar:../../tools/struts-2.0.6/lib/tiles-api-2.0-20070207.130156-4.jar:../../tools/struts-2.0.6/lib/tiles-core-2.0-20070207.130156-4.jar:../../tools/struts-2.0.6/lib/xwork-2.0.1.jar:../../tools/openjpa-0.9.7/geronimo-j2ee-connector_1.5_spec-1.0.1.jar:../../tools/openjpa-0.9.7/geronimo-jpa_3.0_spec-1.0.jar:../../tools/openjpa-0.9.7/geronimo-jta_1.0.1B_spec-1.0.1.jar:../../tools/openjpa-0.9.7/openjpa-0.9.7-incubating.jar:../../tools/openjpa-0.9.7/serp-1.11.0.jar:../../tools/xmlrpc-3.0/lib/ws-commons-util-1.0.1.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-client-3.0.jar:../../tools/xmlrpc-3
 .0/lib/xmlrpc-common-3.0.jar:../../tools/xmlrpc-3.0/lib/xmlrpc-server-3.0.jar:../../tools/spring-1.2/acegi-security-1.0.3.jar:../../tools/spring-1.2/spring.jar:../../tools/roller-core/roller-core.jar:../../tools/roller-planet/roller-planet-business.jar:../../tools/struts-1.2.4/lib/antlr.jar:../../tools/struts-1.2.4/lib/commons-beanutils.jar:../../tools/struts-1.2.4/lib/commons-digester.jar:../../tools/struts-1.2.4/lib/commons-validator.jar:../../tools/struts-1.2.4/lib/jakarta-oro.jar:../../tools/struts-1.2.4/lib/struts-el.jar:../../tools/struts-1.2.4/lib/struts.jar:../../tools/buildtime/tomcat-5.0.28/jsp-api.jar:../../tools/buildtime/tomcat-5.0.28/servlet-api.jar:../../tools/buildtime/activation.jar:../../tools/buildtime/mail.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/jstl.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/serializer.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/standard.jar:../../tools/jakarta-taglibs-standard-1.1.2/lib/xalan.jar:../../tools/hi
 bernate-3.1/lib/asm-attrs.jar:../../tools/hibernate-3.1/lib/asm.jar:../../tools/hibernate-3.1/lib/cglib-2.1.3.jar:../../tools/hibernate-3.1/lib/dom4j-1.6.1.jar:../../tools/hibernate-3.1/lib/ehcache-1.1.jar:../../tools/hibernate-3.1/lib/jdbc2_0-stdext.jar:../../tools/hibernate-3.1/lib/jta.jar:../../tools/buildtime/junit-4.1.jar</classpath>
                 <source-level>1.5</source-level>
             </compilation-unit>
         </java-data>
         <web-data xmlns="http://www.netbeans.org/ns/freeform-project-web/1">
             <web-module>
                 <doc-root>web</doc-root>
-                <classpath/>
                 <context-path>/roller</context-path>
                 <j2ee-spec-level>1.5</j2ee-spec-level>
             </web-module>

Modified: roller/trunk/apps/weblogger/properties.xmlf
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/properties.xmlf?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/properties.xmlf (original)
+++ roller/trunk/apps/weblogger/properties.xmlf Sat Jun 23 08:27:55 2007
@@ -107,6 +107,7 @@
     <include name="rome-0.9.jar"/>
     <include name="rome-fetcher-0.9.jar"/>
     <include name="velocity-1.5.jar"/>
+    <include name="guice-1.0.jar"/>
 </fileset>
 
 <fileset id="presentation.jars" dir="${ro.tools}/lib">
@@ -187,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>
@@ -200,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/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerFactory.java Sat Jun 23 08:27:55 2007
@@ -1,113 +1,123 @@
-/*
- * 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;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.business.startup.WebloggerStartup;
-import org.apache.roller.weblogger.config.RollerConfig;
-
-
-/**
- * Provides access to the Roller instance.
- */
-public final class RollerFactory {
-    
-    private static final Log log = LogFactory.getLog(RollerFactory.class);
-    
-    // a reference to the bootstrapped Roller instance
-    private static Roller rollerInstance = null;
-    
-    
-    // non-instantiable
-    private RollerFactory() {
-        // hello all you beautiful people
-    }
-    
-    
-    /**
-     * True if bootstrap process was completed, False otherwise.
-     */
-    public static boolean isBootstrapped() {
-        return (rollerInstance != null);
-    }
-    
-    
-    /**
-     * Accessor to the Roller Weblogger business tier.
-     *
-     * @return Roller An instance of Roller.
-     * @throws IllegalStateException If the app has not been properly bootstrapped yet.
-     */
-    public static final Roller getRoller() {
-        if(rollerInstance == null) {
-            throw new IllegalStateException("Roller Weblogger has not been bootstrapped yet");
-        }
-        
-        return rollerInstance;
-    }
-    
-    
-    /**
-     * Bootstrap the Roller Weblogger business tier.
-     *
-     * Bootstrapping the application effectively instantiates all the necessary
-     * pieces of the business tier and wires them together so that the app is 
-     * ready to run.
-     *
-     * @throws IllegalStateException If the app has not been properly prepared yet.
-     * @throws BootstrapException If an error happens during the bootstrap process.
-     */
-    public static final void bootstrap() throws BootstrapException {
-        
-        // if the app hasn't been properly started so far then bail
-        if (!WebloggerStartup.isPrepared()) {
-            throw new IllegalStateException("Cannot bootstrap until application has been properly prepared");
-        }
-        
-        log.info("Bootstrapping Roller Weblogger business tier");
-        
-        // bootstrap Roller Weblogger business tier
-        
-        // lookup value for the roller classname to use
-        String roller_classname =
-                RollerConfig.getProperty("persistence.roller.classname");
-        if(roller_classname == null || roller_classname.trim().length() < 1) {
-            throw new BootstrapException("Invalid roller classname - "+roller_classname);
-        } else {
-            log.info("Using Roller Impl: " + roller_classname);
-        }
-        
-        try {
-            Class rollerClass = Class.forName(roller_classname);
-            java.lang.reflect.Method instanceMethod =
-                    rollerClass.getMethod("instantiate", (Class[])null);
-            
-            // do the invocation
-            rollerInstance = (Roller) instanceMethod.invoke(rollerClass, (Object[])null);
-            
-        } catch (Throwable ex) {
-            // bootstrapping failed
-            throw new BootstrapException("Exception doing bootstrapping", ex);
-        }
-        
-        log.info("Roller Weblogger business tier successfully bootstrapped");
-    }
-
-}
+/*
+ * 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;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.weblogger.business.startup.WebloggerStartup;
+import org.apache.roller.weblogger.config.PingConfig;
+import org.apache.roller.weblogger.config.RollerConfig;
+
+
+/**
+ * Provides access to the Roller instance.
+ */
+public final class RollerFactory {
+    
+    private static final Log log = LogFactory.getLog(RollerFactory.class);
+    
+    // have we been bootstrapped yet?
+    private static boolean bootstrapped = false;
+    
+    // a reference to the bootstrapped Roller instance
+    private static Roller rollerInstance = null;
+    
+    private static Injector injector = null;
+  
+    
+    static {
+        String moduleClassname = RollerConfig.getProperty("guice.backend.module");
+        try {
+            Class moduleClass = Class.forName(moduleClassname);
+            Module module = (Module)moduleClass.newInstance();
+            injector = Guice.createInjector(module);
+        } catch (Throwable e) {
+            // Fatal misconfiguration, cannot recover
+            throw new RuntimeException("Error instantiating backend module" + moduleClassname, e);
+        }
+    } 
+    
+    
+    // non-instantiable
+    private RollerFactory() {
+        // hello all you beautiful people
+    }
+    
+    
+    /**
+     * True if bootstrap process was completed, False otherwise.
+     */
+    public static boolean isBootstrapped() {
+        return bootstrapped;
+    }
+    
+    
+    /**
+     * Accessor to the Roller Weblogger business tier.
+     *
+     * @return Roller An instance of Roller.
+     * @throws IllegalStateException If the app has not been properly bootstrapped yet.
+     */
+    public static final Roller getRoller() {
+        if (rollerInstance == null) {
+            throw new IllegalStateException("Roller Weblogger has not been bootstrapped yet");
+        }
+        
+        return rollerInstance;
+    }
+    
+    
+    /**
+     * Access to Guice injector so that developers can add new injected objects.
+     */
+    public static Injector getInjector() {
+        return injector;
+    }
+    
+    
+    /**
+     * Bootstrap the Roller Weblogger business tier.
+     *
+     * Bootstrapping the application effectively instantiates all the necessary
+     * pieces of the business tier and wires them together so that the app is 
+     * ready to run.
+     *
+     * @throws IllegalStateException If the app has not been properly prepared yet.
+     * @throws BootstrapException If an error happens during the bootstrap process.
+     */
+    public static final void bootstrap() throws BootstrapException {
+        
+        // if the app hasn't been properly started so far then bail
+        if (!WebloggerStartup.isPrepared()) {
+            throw new IllegalStateException("Cannot bootstrap until application has been properly prepared");
+        }
+        
+        log.info("Bootstrapping Roller Weblogger business tier");
+        
+        rollerInstance = injector.getInstance(Roller.class);
+            
+        // note that we've now been bootstrapped
+        bootstrapped = true;
+            
+        log.info("Roller Weblogger business tier successfully bootstrapped");
+    }    
+}

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/RollerImpl.java Sat Jun 23 08:27:55 2007
@@ -25,40 +25,77 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
+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.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.ThreadManagerImpl;
-import org.apache.roller.weblogger.business.search.IndexManagerImpl;
 import org.apache.roller.weblogger.business.search.IndexManager;
 import org.apache.roller.weblogger.business.runnable.ThreadManager;
 import org.apache.roller.weblogger.business.themes.ThemeManager;
-import org.apache.roller.weblogger.business.themes.ThemeManagerImpl;
 import org.apache.roller.weblogger.config.PingConfig;
 
-
 /**
  * The abstract version of the Roller implementation.
  *
  * Here we put code that pertains to *all* implementations of the Roller
  * interface, regardless of their persistence strategy.
  */
+@com.google.inject.Singleton
 public abstract class RollerImpl implements Roller {
-    
     private static Log mLogger = LogFactory.getLog(RollerImpl.class);
     
-    private FileManager   fileManager = null;
-    private IndexManager  indexManager = null;
-    private ThreadManager threadManager = null;
-    private ThemeManager  themeManager = null;
-    private PluginManager pluginManager = null;
+    private AutoPingManager      autoPingManager = null;
+    private BookmarkManager      bookmarkManager = null;
+    private FileManager          fileManager = null;
+    private IndexManager         indexManager = null;
+    private PingQueueManager     pingQueueManager = null;
+    private PingTargetManager    pingTargetManager = null;
+    private PluginManager        pluginManager = null;
+    private PropertiesManager    propertiesManager = null;
+    private RefererManager       refererManager = null;
+    private ReferrerQueueManager refererQueueManager = null;
+    private ThemeManager         themeManager = null;
+    private ThreadManager        threadManager = null;
+    private UserManager          userManager = null;
+    private WeblogManager        weblogManager = null;
             
     private String version = null;
     private String buildTime = null;
     private String buildUser = null;
     
-    
-    public RollerImpl() {
+    protected RollerImpl(
+        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 { 
                 
+        this.autoPingManager     = autoPingManager;
+        this.bookmarkManager     = bookmarkManager;
+        this.fileManager         = fileManager;
+        this.indexManager        = indexManager;
+        this.pingQueueManager    = pingQueueManager;
+        this.pingTargetManager   = pingTargetManager;
+        this.pluginManager       = pluginManager;
+        this.propertiesManager   = propertiesManager;
+        this.refererManager      = refererManager;
+        this.refererQueueManager = refererQueueManager;
+        this.themeManager        = themeManager;
+        this.threadManager       = threadManager;
+        this.userManager         = userManager;
+        this.weblogManager       = weblogManager;
+            
         Properties props = new Properties();
         try {
             props.load(getClass().getResourceAsStream("/version.properties"));
@@ -76,9 +113,6 @@
      * @see org.apache.roller.weblogger.model.Roller#getFileManager()
      */
     public FileManager getFileManager() {
-        if (fileManager == null) {
-            fileManager = new FileManagerImpl();
-        }
         return fileManager;
     }
     
@@ -87,9 +121,6 @@
      * @see org.apache.roller.weblogger.model.Roller#getThreadManager()
      */
     public ThreadManager getThreadManager() {
-        if (threadManager == null) {
-            threadManager = new ThreadManagerImpl();
-        }
         return threadManager;
     }
     
@@ -98,9 +129,6 @@
      * @see org.apache.roller.weblogger.model.Roller#getIndexManager()
      */
     public IndexManager getIndexManager() {
-        if (indexManager == null) {
-            indexManager = new IndexManagerImpl();
-        }
         return indexManager;
     }
     
@@ -109,9 +137,6 @@
      * @see org.apache.roller.weblogger.model.Roller#getThemeManager()
      */
     public ThemeManager getThemeManager() {
-        if (themeManager == null) {
-            themeManager = new ThemeManagerImpl();
-        }
         return themeManager;
     }
     
@@ -120,7 +145,72 @@
      * @see org.apache.roller.weblogger.business.referrers.ReferrerQueueManager
      */
     public ReferrerQueueManager getReferrerQueueManager() {
-        return ReferrerQueueManagerImpl.getInstance();
+        return refererQueueManager;
+    }
+    
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getUserManager()
+     */
+    public UserManager getUserManager() {
+        return userManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getBookmarkManager()
+     */
+    public BookmarkManager getBookmarkManager() {
+        return bookmarkManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getWeblogManager()
+     */
+    public WeblogManager getWeblogManager() {
+        return weblogManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getRefererManager()
+     */
+    public RefererManager getRefererManager() {
+        return refererManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getPropertiesManager()
+     */
+    public PropertiesManager getPropertiesManager() {
+        return propertiesManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
+     */
+    public PingQueueManager getPingQueueManager() {
+        return pingQueueManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
+     */
+    public AutoPingManager getAutopingManager() {
+        return autoPingManager;
+    }
+    
+    
+    /**
+     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
+     */
+    public PingTargetManager getPingTargetManager() {
+        return pingTargetManager;
     }
     
     
@@ -128,23 +218,30 @@
      * @see org.apache.roller.weblogger.model.Roller#getPluginManager()
      */
     public PluginManager getPagePluginManager() {
-        if (pluginManager == null) {
-            pluginManager = new PluginManagerImpl();
-        }
         return pluginManager;
     }
     
     
     public void release() {
         try {
-            if (fileManager != null) fileManager.release();
-            if (threadManager != null) threadManager.release();
-            if (pluginManager != null) pluginManager.release();
+            autoPingManager.release();
+            bookmarkManager.release();
+            fileManager.release();
+            pingTargetManager.release();
+            pingQueueManager.release();
+            pluginManager.release();
+            refererManager.release();
+            threadManager.release();
+            userManager.release();
+            weblogManager.release();
         } catch(Throwable e) {
             mLogger.error("Error calling Roller.release()", e);
         }
     }
     
+
+    
+    
     
     /**
      * @inheritDoc
@@ -191,7 +288,7 @@
             flush();
         } catch(WebloggerException ex) {
             throw new InitializationException("Error flushing after initialization", ex);
-        }
+        } 
         
         mLogger.info("Roller Weblogger business tier successfully initialized");
     }

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateAutoPingManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateAutoPingManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateAutoPingManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateAutoPingManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -16,7 +16,7 @@
  * directory of this distribution.
  */
 
-package org.apache.roller.weblogger.business.hibernate;
+package org.apache.roller.weblogger.business.hibernate; 
 
 import org.hibernate.Criteria;
 import org.hibernate.HibernateException;
@@ -31,12 +31,13 @@
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;  
+import org.apache.commons.logging.LogFactory;  
+import org.apache.roller.RollerException;
+import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.config.PingConfig;
 import org.apache.roller.weblogger.business.pings.AutoPingManager;
 import org.apache.roller.weblogger.business.pings.PingQueueManager;
-import org.apache.roller.weblogger.business.RollerFactory;
 
 
 /**
@@ -44,16 +45,20 @@
  *
  * @author <a href="mailto:anil@busybuddha.org">Anil Gangolli</a>
  */
+@com.google.inject.Singleton
 public class HibernateAutoPingManagerImpl implements AutoPingManager {
     
+    private Roller roller;
+    
     static final long serialVersionUID = 5420615676256979199L;
     
     private static Log log = LogFactory.getLog(HibernateAutoPingManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
     
-    
-    public HibernateAutoPingManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernateAutoPingManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
+        this.roller = roller;
         this.strategy = strat;
     }
     
@@ -122,7 +127,7 @@
         }
         
         // TODO: new manager method for addQueueEntries(list)?
-        PingQueueManager pingQueueMgr = RollerFactory.getRoller().getPingQueueManager();
+        PingQueueManager pingQueueMgr = roller.getPingQueueManager();
         List applicableAutopings = getApplicableAutoPings(changedWeblogEntry);
         for (Iterator i = applicableAutopings.iterator(); i.hasNext(); ) {
             AutoPing autoPing = (AutoPing) i.next();

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateBookmarkManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateBookmarkManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateBookmarkManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateBookmarkManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -28,7 +28,6 @@
 import org.apache.roller.weblogger.pojos.WeblogBookmarkFolder;
 import org.apache.roller.weblogger.pojos.Weblog;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -36,13 +35,13 @@
 import org.jdom.Element;
 import org.jdom.input.SAXBuilder;
 import org.apache.roller.weblogger.business.BookmarkManager;
-import org.apache.roller.weblogger.business.RollerFactory;
-import org.apache.roller.weblogger.util.Utilities;
+import org.apache.roller.weblogger.business.Roller;
 
 
 /**
  * Hibernate implementation of the BookmarkManager.
  */
+@com.google.inject.Singleton
 public class HibernateBookmarkManagerImpl implements BookmarkManager {
     
     static final long serialVersionUID = 5286654557062382772L;
@@ -50,16 +49,18 @@
     private static Log log = LogFactory.getLog(HibernateBookmarkManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     
     /**
      * @param pstrategy
      * @param roller
      */
-    public HibernateBookmarkManagerImpl(HibernatePersistenceStrategy strat) {
-        log.debug("Instantiating Hibernate Bookmark Manager");
-        
+    @com.google.inject.Inject    
+    protected HibernateBookmarkManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
+        this.roller = roller;
         this.strategy = strat;
+        log.debug("Instantiating Hibernate Bookmark Manager");
     }
     
     
@@ -67,7 +68,7 @@
         this.strategy.store(bookmark);
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(bookmark.getWebsite());
+        roller.getUserManager().saveWebsite(bookmark.getWebsite());
     }
     
     
@@ -86,8 +87,7 @@
         //Now remove it from database
         this.strategy.remove(bookmark);
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager()
-                .saveWebsite(bookmark.getWebsite());
+        roller.getUserManager().saveWebsite(bookmark.getWebsite());
     }
     
     
@@ -101,7 +101,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());
     }
     
     
@@ -110,7 +110,7 @@
         this.strategy.remove(folder);
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(folder.getWebsite());
+        roller.getUserManager().saveWebsite(folder.getWebsite());
     }
     
     

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePersistenceStrategy.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePersistenceStrategy.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePersistenceStrategy.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePersistenceStrategy.java Sat Jun 23 08:27:55 2007
@@ -28,6 +28,7 @@
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
 import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.config.RollerConfig;
 import org.hibernate.cfg.Environment;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
@@ -40,14 +41,12 @@
  * manager implementations by providing a set of basic persistence methods
  * that can be easily reused.
  */
+@com.google.inject.Singleton
 public class HibernatePersistenceStrategy {
-    
-    static final long serialVersionUID = 2561090040518169098L;
+    private static Log log = LogFactory.getLog(HibernatePersistenceStrategy.class);
     
     protected static SessionFactory sessionFactory = null;
     
-    private static Log log = LogFactory.getLog(HibernatePersistenceStrategy.class);
-    
     /** No-op so XML parser doesn't hit the network looking for Hibernate DTDs */
     private EntityResolver noOpEntityResolver = new EntityResolver() {
         public InputSource resolveEntity(String publicId, String systemId) {
@@ -61,11 +60,18 @@
      * 'hibernate.dialect' - the classname of the Hibernate dialect to be used,
      * 'hibernate.connectionProvider - the classname of Roller's connnection provider impl.
      */
-    public HibernatePersistenceStrategy(String configResource, String dialect, String connectionProvider) {
-        
-        // Read Hibernate config file specified by Roller config
+    protected HibernatePersistenceStrategy() throws WebloggerException {        
+        String dialect =  
+            RollerConfig.getProperty("hibernate.dialect");
+        String connectionProvider = 
+            RollerConfig.getProperty("hibernate.connectionProvider");        
+        String configuration = "hibernate.cfg.xml";
+        init(dialect, connectionProvider, configuration);
+    }   
+    
+    protected void init(String dialect, String connectionProvider, String configuration) {
         Configuration config = new Configuration();
-        config.configure(configResource);
+        config.configure(configuration);
 
         // Add dialect specified by Roller config and our connection provider
         Properties props = new Properties();

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingQueueManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingQueueManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingQueueManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingQueueManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -39,6 +39,7 @@
  *
  * @author <a href="mailto:anil@busybuddha.org">Anil Gangolli</a>
  */
+@com.google.inject.Singleton
 public class HibernatePingQueueManagerImpl implements PingQueueManager {
     
     static final long serialVersionUID = -7660638707453106615L;
@@ -48,7 +49,8 @@
     private HibernatePersistenceStrategy strategy = null;
     
     
-    public HibernatePingQueueManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernatePingQueueManagerImpl(HibernatePersistenceStrategy strat) {
         this.strategy = strat;
     }
     

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingTargetManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingTargetManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingTargetManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePingTargetManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -35,9 +35,9 @@
 import java.util.Collection;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.business.pings.AutoPingManager;
 import org.apache.roller.weblogger.business.pings.PingTargetManager;
-import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.pojos.AutoPing;
 import org.apache.roller.weblogger.pojos.PingQueueEntry;
 
@@ -47,6 +47,7 @@
  *
  * @author <a href="mailto:anil@busybuddha.org">Anil Gangolli</a>
  */
+@com.google.inject.Singleton
 public class HibernatePingTargetManagerImpl implements PingTargetManager {
     
     static final long serialVersionUID = 121008492583382718L;
@@ -54,9 +55,12 @@
     private static Log log = LogFactory.getLog(HibernatePingTargetManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     
-    public HibernatePingTargetManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernatePingTargetManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
+        this.roller = roller;
         this.strategy = strat;
     }
     
@@ -87,7 +91,7 @@
         }
         
         // Remove the website's auto ping configurations
-        AutoPingManager autoPingMgr = RollerFactory.getRoller().getAutopingManager();
+        AutoPingManager autoPingMgr = roller.getAutopingManager();
         List autopings = autoPingMgr.getAutoPingsByTarget(ping);
         Iterator it = autopings.iterator();
         while(it.hasNext()) {

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePropertiesManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePropertiesManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePropertiesManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernatePropertiesManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -35,12 +35,14 @@
 import org.apache.roller.weblogger.config.runtime.PropertyDef;
 import org.apache.roller.weblogger.config.runtime.RuntimeConfigDefs;
 import org.apache.roller.weblogger.business.PropertiesManager;
+import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
 
 
 /**
  * Hibernate implementation of the PropertiesManager.
- */
+ */ 
+@com.google.inject.Singleton
 public class HibernatePropertiesManagerImpl implements PropertiesManager {
     
     public static final long serialVersionUID = -4326713177137796936L;
@@ -48,15 +50,17 @@
     private static Log log = LogFactory.getLog(HibernatePropertiesManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     
     /** 
      * Creates a new instance of HibernatePropertiesManagerImpl
      */
-    public HibernatePropertiesManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject
+    protected HibernatePropertiesManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
         
         log.debug("Instantiating Hibernate Properties Manager");
-        
+        this.roller = roller;        
         this.strategy = strat;
     }
     

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRefererManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRefererManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRefererManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRefererManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -46,7 +46,6 @@
 import org.hibernate.engine.SessionFactoryImplementor;
 import org.hibernate.dialect.Dialect;
 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.StatCount;
@@ -58,6 +57,7 @@
 /**
  * Hibernate implementation of the RefererManager.
  */
+@com.google.inject.Singleton
 public class HibernateRefererManagerImpl implements RefererManager {
     
     static final long serialVersionUID = -4966091850482256435L;
@@ -68,14 +68,18 @@
     protected static final String TOTALHITS = "totalHits";
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
+
     private Date mRefDate = new Date();
     
         
-    public HibernateRefererManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernateRefererManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
         
         log.debug("Instantiating Hibernate Referer Manager");
         
-        strategy = strat;
+        this.strategy = strat;
+        this.roller = roller;
     }
     
     public void saveReferer(WeblogReferrer referer) throws WebloggerException {
@@ -527,13 +531,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().getWeblogManager();
+                WeblogManager weblogMgr = roller.getWeblogManager();
                 entry = weblogMgr.getWeblogEntryByAnchor(weblog, entryAnchor);
             }
         } catch (WebloggerException re) {
@@ -629,8 +633,7 @@
                     // Launch thread to extract referer linkback
                     
                     try {
-                        Roller mRoller = RollerFactory.getRoller();
-                        mRoller.getThreadManager().executeInBackground(
+                        roller.getThreadManager().executeInBackground(
                                 new LinkbackExtractorRunnable(ref));
                     } catch (InterruptedException e) {
                         log.warn("Interrupted during linkback extraction",e);

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRollerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRollerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRollerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateRollerImpl.java Sat Jun 23 08:27:55 2007
@@ -22,199 +22,70 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
 import org.apache.roller.weblogger.business.RollerImpl;
-import org.apache.roller.weblogger.config.RollerConfig;
 import org.apache.roller.weblogger.business.BookmarkManager;
+import org.apache.roller.weblogger.business.FileManager;
 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.PropertiesManager;
 import org.apache.roller.weblogger.business.referrers.RefererManager;
-import org.apache.roller.weblogger.business.Roller;
+import org.apache.roller.weblogger.business.referrers.ReferrerQueueManager;
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.business.WeblogManager;
+import org.apache.roller.weblogger.business.plugins.PluginManager;
 import org.apache.roller.weblogger.business.runnable.ThreadManager;
-import org.apache.roller.weblogger.business.hibernate.HibernatePersistenceStrategy;
+import org.apache.roller.weblogger.business.search.IndexManager;
+import org.apache.roller.weblogger.business.themes.ThemeManager;
+
 
 /**
  * A Hibernate specific implementation of the Roller business layer.
  */
-public class HibernateRollerImpl extends RollerImpl {
-    
-    static final long serialVersionUID = 5256135928578074652L;
-    
+@com.google.inject.Singleton
+public class HibernateRollerImpl extends RollerImpl {    
     private static Log mLogger = LogFactory.getLog(HibernateRollerImpl.class);    
     
     // a persistence utility class
     private HibernatePersistenceStrategy strategy = null;
     
-    // references to the managers we maintain
-    private BookmarkManager   bookmarkManager = null;
-    private PropertiesManager propertiesManager = null;
-    private RefererManager    refererManager = null;
-    private UserManager       userManager = null;
-    private WeblogManager     weblogManager = null;
-    private PingQueueManager  pingQueueManager = null;
-    private AutoPingManager   autoPingManager = null;
-    private PingTargetManager pingTargetManager = null;
-    private ThreadManager     threadManager = null;
-    
-    
-    protected HibernateRollerImpl() throws WebloggerException {
-        try {
-            String dialect =  
-                RollerConfig.getProperty("hibernate.dialect");
-            String connectionProvider = 
-                RollerConfig.getProperty("hibernate.connectionProvider");
-            strategy = new HibernatePersistenceStrategy(
-                "/hibernate.cfg.xml", dialect, connectionProvider);
-        } catch(Throwable t) {
-            // if this happens then we are screwed
-            mLogger.fatal("Error initializing Hibernate", t);
-            throw new WebloggerException(t);
-        }
-    }
-    
-    
-    /**
-     * Instantiates and returns an instance of HibernateRollerImpl.
-     */
-    public static Roller instantiate() throws WebloggerException {
-        mLogger.debug("Instantiating HibernateRollerImpl");
-        return new HibernateRollerImpl();
-    }
-    
-    
-    public void flush() throws WebloggerException {
-        this.strategy.flush();
-    }
-    
-    
-    public void release() {
-        
-        // release our own stuff first
-        if (bookmarkManager != null) bookmarkManager.release();
-        if (refererManager != null) refererManager.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();
-        if( threadManager != null) threadManager.release();
-        
-        // tell Hibernate to close down
-        this.strategy.release();
+    @com.google.inject.Inject
+    protected HibernateRollerImpl(
+        HibernatePersistenceStrategy 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 {
         
-        // then let parent do its thing
-        super.release();
+        super(
+            autoPingManager,
+            bookmarkManager,
+            fileManager,
+            indexManager,
+            pingQueueManager,
+            pingTargetManager,
+            pluginManager,
+            propertiesManager,
+            refererManager,
+            refererQueueManager,
+            themeManager,
+            threadManager,
+            userManager,
+            weblogManager); 
+        this.strategy = strategy;
     }
-    
-    
-    public void shutdown() {
-        
-        // do our own shutdown first
-        this.release();
         
-        // then let parent do its thing
-        super.shutdown();
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getUserManager()
-     */
-    public UserManager getUserManager() {
-        if ( userManager == null ) {
-            userManager = new HibernateUserManagerImpl(strategy);
-        }
-        return userManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getBookmarkManager()
-     */
-    public BookmarkManager getBookmarkManager() {
-        if ( bookmarkManager == null ) {
-            bookmarkManager = new HibernateBookmarkManagerImpl(strategy);
-        }
-        return bookmarkManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getWeblogManager()
-     */
-    public WeblogManager getWeblogManager() {
-        if ( weblogManager == null ) {
-            weblogManager = new HibernateWeblogManagerImpl(strategy);
-        }
-        return weblogManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getRefererManager()
-     */
-    public RefererManager getRefererManager() {
-        if ( refererManager == null ) {
-            refererManager = new HibernateRefererManagerImpl(strategy);
-        }
-        return refererManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getPropertiesManager()
-     */
-    public PropertiesManager getPropertiesManager() {
-        if (propertiesManager == null) {
-            propertiesManager = new HibernatePropertiesManagerImpl(strategy);
-        }
-        return propertiesManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
-     */
-    public PingQueueManager getPingQueueManager() {
-        if (pingQueueManager == null) {
-            pingQueueManager = new HibernatePingQueueManagerImpl(strategy);
-        }
-        return pingQueueManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
-     */
-    public AutoPingManager getAutopingManager() {
-        if (autoPingManager == null) {
-            autoPingManager = new HibernateAutoPingManagerImpl(strategy);
-        }
-        return autoPingManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getPingTargetManager()
-     */
-    public PingTargetManager getPingTargetManager() {
-        if (pingTargetManager == null) {
-            pingTargetManager = new HibernatePingTargetManagerImpl(strategy);
-        }
-        return pingTargetManager;
-    }
-    
-    
-    /**
-     * @see org.apache.roller.weblogger.model.Roller#getThreadManager()
-     */
-    public ThreadManager getThreadManager() {
-        if (threadManager == null) {
-            threadManager = new HibernateThreadManagerImpl(strategy);
-        }
-        return threadManager;
-    }
-    
+    public void flush() throws WebloggerException {
+        this.strategy.flush();
+    }    
 }
+

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateThreadManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateThreadManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateThreadManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateThreadManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -22,9 +22,9 @@
 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.ThreadManagerImpl;
 import org.apache.roller.weblogger.business.runnable.RollerTask;
-import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.pojos.TaskLock;
 import org.hibernate.Criteria;
 import org.hibernate.HibernateException;
@@ -39,18 +39,21 @@
  * This implementation extends the base ThreadManagerImpl class and provides
  * leasing abilities which are managed through the database.
  */
+@com.google.inject.Singleton
 public class HibernateThreadManagerImpl extends ThreadManagerImpl {
     
     private static Log log = LogFactory.getLog(HibernateThreadManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     
-    public HibernateThreadManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernateThreadManagerImpl(HibernatePersistenceStrategy strat) {
         super();
         
         log.debug("Instantiating Hibernate Thread Manager");
-        
+        this.roller = roller;        
         this.strategy = strat;
     }
     
@@ -75,7 +78,7 @@
                 
                 // save it and flush
                 this.saveTaskLock(taskLock);
-                RollerFactory.getRoller().flush();
+                roller.flush();
             }
             
         } catch (WebloggerException ex) {
@@ -105,7 +108,7 @@
             int result = query.executeUpdate();
             
             // this may not be needed
-            RollerFactory.getRoller().flush();
+            roller.flush();
             
             if(result == 1) {
                 return true;
@@ -151,7 +154,7 @@
             int result = query.executeUpdate();
             
             // this may not be needed
-            RollerFactory.getRoller().flush();
+            roller.flush();
             
             if(result == 1) {
                 return true;

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateUserManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateUserManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateUserManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateUserManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -20,7 +20,6 @@
 
 import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
@@ -42,8 +41,8 @@
 import org.apache.roller.weblogger.config.RollerConfig;
 import org.apache.roller.weblogger.business.pings.AutoPingManager;
 import org.apache.roller.weblogger.business.BookmarkManager;
+import org.apache.roller.weblogger.business.Roller;
 import org.apache.roller.weblogger.business.pings.PingTargetManager;
-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.AutoPing;
@@ -66,22 +65,25 @@
 
 /**
  * Hibernate implementation of the UserManager.
- */
+ */    
+@com.google.inject.Singleton
 public class HibernateUserManagerImpl implements UserManager {
     
     static final long serialVersionUID = -5128460637997081121L;    
     private static Log log = LogFactory.getLog(HibernateUserManagerImpl.class);    
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     // cached mapping of weblogHandles -> weblogIds
     private Map weblogHandleToIdMap = new Hashtable();
     
     // cached mapping of userNames -> userIds
     private Map userNameToIdMap = new Hashtable();
-        
-    public HibernateUserManagerImpl(HibernatePersistenceStrategy strat) {
+   
+    @com.google.inject.Inject
+    protected HibernateUserManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
         log.debug("Instantiating Hibernate User Manager");
-        
+        this.roller = roller;       
         this.strategy = strat;
     }
     
@@ -113,8 +115,8 @@
         
         Session session = this.strategy.getSession();
         
-        BookmarkManager bmgr = RollerFactory.getRoller().getBookmarkManager();
-        WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+        BookmarkManager bmgr = roller.getBookmarkManager();
+        WeblogManager wmgr = roller.getWeblogManager();
         
         // remove tags
         Criteria tagQuery = session.createCriteria(WeblogEntryTag.class)
@@ -147,7 +149,7 @@
         List queueEntries = criteria.list();
         
         // Remove the website's auto ping configurations
-        AutoPingManager autoPingMgr = RollerFactory.getRoller().getAutopingManager();
+        AutoPingManager autoPingMgr = roller.getAutopingManager();
         List autopings = autoPingMgr.getAutoPingsByWebsite(website);
         Iterator it = autopings.iterator();
         while(it.hasNext()) {
@@ -155,7 +157,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()) {
@@ -238,14 +240,14 @@
         this.strategy.store(page);
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(page.getWebsite());
+        roller.getUserManager().saveWebsite(page.getWebsite());
     }
         
     public void removePage(WeblogTemplate page) throws WebloggerException {
         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 {
@@ -287,8 +289,8 @@
         
     private void addWeblogContents(Weblog newWeblog) throws WebloggerException {
         
-        UserManager umgr = RollerFactory.getRoller().getUserManager();
-        WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+        UserManager umgr = roller.getUserManager();
+        WeblogManager wmgr = roller.getWeblogManager();
         
         // grant weblog creator ADMIN permissions
         WeblogPermission perms = new WeblogPermission();
@@ -358,8 +360,8 @@
         }
         
         // add any auto enabled ping targets
-        PingTargetManager pingTargetMgr = RollerFactory.getRoller().getPingTargetManager();
-        AutoPingManager autoPingMgr = RollerFactory.getRoller().getAutopingManager();
+        PingTargetManager pingTargetMgr = roller.getPingTargetManager();
+        AutoPingManager autoPingMgr = roller.getAutopingManager();
         
         Iterator pingTargets = pingTargetMgr.getCommonPingTargets().iterator();
         PingTarget pingTarget = null;

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateWeblogManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateWeblogManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/HibernateWeblogManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -36,7 +36,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 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,6 +65,7 @@
 /**
  * Hibernate implementation of the WeblogManager.
  */
+@com.google.inject.Singleton
 public class HibernateWeblogManagerImpl implements WeblogManager {
     
     static final long serialVersionUID = -3730860865389981439L;
@@ -72,6 +73,7 @@
     private static Log log = LogFactory.getLog(HibernateWeblogManagerImpl.class);
     
     private HibernatePersistenceStrategy strategy = null;
+    private Roller roller;
     
     // cached mapping of entryAnchors -> entryIds
     private Hashtable entryAnchorToIdMap = new Hashtable();
@@ -81,9 +83,10 @@
     
     private Comparator tagStatComparator = new TagStatComparator();
     
-    public HibernateWeblogManagerImpl(HibernatePersistenceStrategy strat) {
+    @com.google.inject.Inject    
+    protected HibernateWeblogManagerImpl(Roller roller, HibernatePersistenceStrategy strat) {
         log.debug("Instantiating Hibernate Weblog Manager");
-        
+        this.roller = roller;        
         this.strategy = strat;
     }
     
@@ -95,7 +98,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);
     }
@@ -124,7 +127,7 @@
         }
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(cat.getWebsite());
+        roller.getUserManager().saveWebsite(cat.getWebsite());
     }
     
     
@@ -196,7 +199,7 @@
         this.strategy.store(comment);
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(comment.getWeblogEntry().getWebsite());
+        roller.getUserManager().saveWebsite(comment.getWeblogEntry().getWebsite());
     }
     
     
@@ -204,7 +207,7 @@
         this.strategy.remove(comment);
         
         // update weblog last modified date.  date updated by saveWebsite()
-        RollerFactory.getRoller().getUserManager().saveWebsite(comment.getWeblogEntry().getWebsite());
+        roller.getUserManager().saveWebsite(comment.getWeblogEntry().getWebsite());
     }
     
     
@@ -240,12 +243,12 @@
         
         // update weblog last modified date.  date updated by saveWebsite()
         if(entry.isPublished()) {
-            RollerFactory.getRoller().getUserManager().saveWebsite(entry.getWebsite());
+            roller.getUserManager().saveWebsite(entry.getWebsite());
         }
         
         if(entry.isPublished()) {
             // Queue applicable pings for this update.
-            RollerFactory.getRoller().getAutopingManager().queueApplicableAutoPings(entry);
+            roller.getAutopingManager().queueApplicableAutoPings(entry);
         }
     }
     
@@ -292,7 +295,7 @@
         
         // update weblog last modified date.  date updated by saveWebsite()
         if(entry.isPublished()) {
-            RollerFactory.getRoller().getUserManager().saveWebsite(entry.getWebsite());
+            roller.getUserManager().saveWebsite(entry.getWebsite());
         }
         
         // remove entry from cache mapping

Added: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java?view=auto&rev=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java (added)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/hibernate/RollerModule.java Sat Jun 23 08:27:55 2007
@@ -0,0 +1,74 @@
+/*
+ * 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.hibernate;
+
+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.runnable.ThreadManagerImpl;
+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 Hibernate as Roller-backend.
+ */
+public class RollerModule implements Module {
+    
+    public void configure(Binder binder) {
+        
+        binder.bind(Roller.class).to(HibernateRollerImpl.class);
+        
+        binder.bind(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);
+        binder.bind(PingQueueManager.class).to(    HibernatePingQueueManagerImpl.class);
+        binder.bind(PingTargetManager.class).to(   HibernatePingTargetManagerImpl.class);
+        binder.bind(PropertiesManager.class).to(   HibernatePropertiesManagerImpl.class);
+        binder.bind(RefererManager.class).to(      HibernateRefererManagerImpl.class);
+        binder.bind(ThreadManager.class).to(       HibernateThreadManagerImpl.class);
+        binder.bind(UserManager.class).to(         HibernateUserManagerImpl.class);
+        binder.bind(WeblogManager.class).to(       HibernateWeblogManagerImpl.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/jpa/JPAAutoPingManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl.java?view=diff&rev=550055&r1=550054&r2=550055
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAAutoPingManagerImpl.java Sat Jun 23 08:27:55 2007
@@ -21,7 +21,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.RollerFactory;
 import org.apache.roller.weblogger.business.pings.AutoPingManager;
 import org.apache.roller.weblogger.business.pings.PingQueueManager;
 import org.apache.roller.weblogger.config.PingConfig;
@@ -36,6 +35,7 @@
 import java.util.List;
 import javax.persistence.Query;
 import org.apache.roller.weblogger.business.jpa.JPAPersistenceStrategy;
+import org.apache.roller.weblogger.business.Roller;
 
 /*
  * JPAAutoPingManagerImpl.java
@@ -43,21 +43,24 @@
  * Created on May 29, 2006, 11:29 AM
  *
  */
+@com.google.inject.Singleton
 public class JPAAutoPingManagerImpl implements AutoPingManager {
 
     private JPAPersistenceStrategy strategy;
+    private Roller roller = null;
     
     /**
      * The logger instance for this class.
      */
-    private static Log logger = LogFactory
-            .getFactory().getInstance(JPAAutoPingManagerImpl.class);
+    private static Log logger = 
+        LogFactory.getFactory().getInstance(JPAAutoPingManagerImpl.class);
 
     /**
      * Creates a new instance of JPAAutoPingManagerImpl
      */
-    public JPAAutoPingManagerImpl
-            (JPAPersistenceStrategy strategy) {
+    @com.google.inject.Inject
+    protected JPAAutoPingManagerImpl(Roller roller, JPAPersistenceStrategy strategy) {
+        this.roller = roller;
         this.strategy = strategy;
     }
 
@@ -101,7 +104,7 @@
             return;
         }
 
-        PingQueueManager pingQueueMgr = RollerFactory.getRoller().
+        PingQueueManager pingQueueMgr = roller.
             getPingQueueManager();
         List applicableAutopings = getApplicableAutoPings(changedWeblogEntry);
         for (Iterator i = applicableAutopings.iterator(); i.hasNext(); ) {