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 04:03:42 UTC

svn commit: r544030 [2/2] - in /roller/branches/roller_guice: ./ 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/apac...

Added: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java?view=auto&rev=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java (added)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/RollerModule.java Sun Jun  3 19:03:40 2007
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.business.jpa;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import org.apache.roller.weblogger.business.DatabaseProvider;
+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.PluginManager;
+import org.apache.roller.weblogger.business.PluginManagerImpl;
+import org.apache.roller.weblogger.business.PropertiesManager;
+import org.apache.roller.weblogger.business.Roller;
+import org.apache.roller.weblogger.business.RollerDatabaseProvider;
+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.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 JPA as Roller-backend.
+ */
+public class RollerModule implements Module {
+
+    public void configure(Binder binder) {
+        
+        binder.bind(DatabaseProvider.class).to(RollerDatabaseProvider.class);
+
+        binder.bind(Roller.class).to(JPARollerImpl.class);
+        
+        binder.bind(JPAPersistenceStrategy.class);       
+        binder.bind(org.apache.roller.planet.business.jpa.JPAPersistenceStrategy.class);   
+        
+        binder.bind(AutoPingManager.class).to(     JPAAutoPingManagerImpl.class);   
+        binder.bind(BookmarkManager.class).to(     JPABookmarkManagerImpl.class);  
+        binder.bind(PingQueueManager.class).to(    JPAPingQueueManagerImpl.class);   
+        binder.bind(PingTargetManager.class).to(   JPAPingTargetManagerImpl.class); 
+        binder.bind(PropertiesManager.class).to(   JPAPropertiesManagerImpl.class);   
+        binder.bind(RefererManager.class).to(      JPARefererManagerImpl.class);
+        binder.bind(UserManager.class).to(         JPAUserManagerImpl.class);   
+        binder.bind(WeblogManager.class).to(       JPAWeblogManagerImpl.class);   
+        
+        
+        binder.bind(ReferrerQueueManager.class).to(ReferrerQueueManagerImpl.class); 
+        binder.bind(FileManager.class).to(         FileManagerImpl.class);   
+        binder.bind(IndexManager.class).to(        IndexManagerImpl.class);
+        binder.bind(PluginManager.class).to(       PluginManagerImpl.class);    
+        binder.bind(ThemeManager.class).to(        ThemeManagerImpl.class);  
+        binder.bind(ThreadManager.class).to(       ThreadManagerImpl.class);  
+    }    
+}
+

Copied: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java (from r543978, roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/PlanetHibernatePersistenceStrategy.java)
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java?view=diff&rev=544030&p1=roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/PlanetHibernatePersistenceStrategy.java&r1=543978&p2=roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java&r2=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/PlanetHibernatePersistenceStrategy.java (original)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/HibernateRollerPlanetPersistenceStrategy.java Sun Jun  3 19:03:40 2007
@@ -18,32 +18,32 @@
 
 package org.apache.roller.weblogger.planet.business.hibernate;
 
-import org.apache.roller.weblogger.WebloggerException;
-import org.apache.roller.weblogger.business.hibernate.HibernatePersistenceStrategy;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.PlanetException;
+import org.apache.roller.planet.business.hibernate.HibernatePersistenceStrategy;
 import org.apache.roller.weblogger.config.RollerConfig;
 
 /**
- * Base class for Hibernate persistence implementation.
- *
- * This class serves as a helper/util class for all of the Hibernate
- * manager implementations by providing a set of basic persistence methods
- * that can be easily reused.
+ * Hibernate strategy for Planet, uses RollerConfig to get Hibernate configuration.
  */
 @com.google.inject.Singleton
-public class PlanetHibernatePersistenceStrategy extends HibernatePersistenceStrategy {
+public class HibernateRollerPlanetPersistenceStrategy extends HibernatePersistenceStrategy {
+    private static Log logger = 
+        LogFactory.getFactory().getInstance(HibernateRollerPlanetPersistenceStrategy.class); 
     
     /**
-     * Persistence strategy configures itself by using Roller properties:
-     * 'hibernate.configResource' - the resource name of Roller's Hibernate XML configuration file, 
-     * 'hibernate.dialect' - the classname of the Hibernate dialect to be used,
-     * 'hibernate.connectionProvider - the classname of Roller's connnection provider impl.
+     * Persistence strategy configures itself by using 'planet-hibernate.cfg.xml' 
+     * and Roller properties: 'hibernate.dialect' - the classname of the Hibernate 
+     * dialect to be used, 'hibernate.connectionProvider - the classname of 
+     * Roller's connnection provider impl.
      */
-    protected PlanetHibernatePersistenceStrategy() throws WebloggerException {        
+    protected HibernateRollerPlanetPersistenceStrategy() throws PlanetException {        
         String dialect =  
             RollerConfig.getProperty("hibernate.dialect");
         String connectionProvider = 
             RollerConfig.getProperty("hibernate.connectionProvider");        
-        String configuration = "hibernate.cfg.xml";
+        String configuration = "planet-hibernate.cfg.xml";
         init(dialect, connectionProvider, configuration);
     }   
 }

Added: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java?view=auto&rev=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java (added)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/hibernate/RollerPlanetModule.java Sun Jun  3 19:03:40 2007
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.hibernate;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import org.apache.roller.planet.business.Planet;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.business.PropertiesManager;
+import org.apache.roller.planet.business.hibernate.HibernatePlanetImpl;
+import org.apache.roller.planet.business.hibernate.HibernatePlanetManagerImpl;
+import org.apache.roller.planet.business.hibernate.HibernatePropertiesManagerImpl;
+
+
+/**
+ * Guice module for configuring Roller's built-in Planet, Hibernate version.
+ */
+public class RollerPlanetModule implements Module {
+
+    public void configure(Binder binder) {
+        
+        binder.bind(Planet.class).to(HibernatePlanetImpl.class);
+
+        // Use special Planet persistence strategy that works against RollerConfig
+        binder.bind(HibernateRollerPlanetPersistenceStrategy.class); 
+        
+        binder.bind(PlanetManager.class).to(     HibernatePlanetManagerImpl.class);   
+        binder.bind(PropertiesManager.class).to( HibernatePropertiesManagerImpl.class);   
+    }    
+}
+

Added: 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=auto&rev=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java (added)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/JPARollerPlanetPersistenceStrategy.java Sun Jun  3 19:03:40 2007
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.jpa;
+
+import java.util.Enumeration;
+import java.util.Properties;
+import javax.persistence.Persistence;
+import javax.persistence.PersistenceException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.planet.PlanetException;
+import org.apache.roller.planet.business.jpa.JPAPersistenceStrategy;
+import org.apache.roller.weblogger.business.DatabaseProvider;
+import org.apache.roller.weblogger.config.RollerConfig;
+
+/**
+ * JPA strategy for Planet, uses RollerConfig to get JPA configuration.
+ */
+@com.google.inject.Singleton
+public class JPARollerPlanetPersistenceStrategy extends JPAPersistenceStrategy {
+    private static Log logger = 
+        LogFactory.getFactory().getInstance(JPARollerPlanetPersistenceStrategy.class); 
+    
+    /**
+     * Construct by finding using DatabaseProvider and RollerConfig.
+     * @throws org.apache.roller.PlanetException on any error
+     */
+    public JPARollerPlanetPersistenceStrategy() throws PlanetException { 
+        
+        // Pull in any properties defined in JMAEMF.properties config file
+        Properties emfProps = loadPropertiesFromResourceName(
+           "JPAEMF.properties", getContextClassLoader());
+                
+        // Add all OpenJPA and Toplinks properties found in RollerConfig
+        Enumeration keys = RollerConfig.keys();
+        while (keys.hasMoreElements()) {
+            String key = (String)keys.nextElement();
+            if (key.startsWith("openjpa.") || key.startsWith("toplink.")) {
+                String value = RollerConfig.getProperty(key);
+                logger.info(key + ": " + value);
+                emfProps.setProperty(key, value);
+            }
+        }
+        
+        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();
+            emfProps.setProperty("openjpa.ConnectionFactoryName", jndiName);
+            
+        } else {
+            // So set JDBD properties for OpenJPA
+            emfProps.setProperty("openjpa.ConnectionDriverName",     dbProvider.getJdbcDriverClass());
+            emfProps.setProperty("openjpa.ConnectionURL",            dbProvider.getJdbcConnectionURL());
+            emfProps.setProperty("openjpa.ConnectionUserName",       dbProvider.getJdbcUsername());
+            emfProps.setProperty("openjpa.ConnectionPassword",       dbProvider.getJdbcPassword()); 
+
+            // And Toplink JPA
+            emfProps.setProperty("toplink.jdbc.driver",              dbProvider.getJdbcDriverClass());
+            emfProps.setProperty("toplink.jdbc.url",                 dbProvider.getJdbcConnectionURL());
+            emfProps.setProperty("toplink.jdbc.user",                dbProvider.getJdbcUsername());
+            emfProps.setProperty("toplink.jdbc.password",            dbProvider.getJdbcPassword());
+
+            // And Hibernate JPA
+            emfProps.setProperty("hibernate.connection.driver_class",dbProvider.getJdbcDriverClass());
+            emfProps.setProperty("hibernate.connection.url",         dbProvider.getJdbcConnectionURL());
+            emfProps.setProperty("hibernate.connection.username",    dbProvider.getJdbcUsername());
+            emfProps.setProperty("hibernate.connection.password",    dbProvider.getJdbcPassword()); 
+        }
+        
+        try {
+            this.emf = Persistence.createEntityManagerFactory("PlanetPU", emfProps);
+        } catch (PersistenceException pe) {
+            logger.error("ERROR: creating entity manager", pe);
+            throw new PlanetException(pe);
+        }
+    }  
+}

Added: roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java?view=auto&rev=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java (added)
+++ roller/branches/roller_guice/apps/weblogger/src/java/org/apache/roller/weblogger/planet/business/jpa/RollerPlanetModule.java Sun Jun  3 19:03:40 2007
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.weblogger.planet.business.jpa;
+
+import com.google.inject.Binder;
+import com.google.inject.Module;
+import org.apache.roller.planet.business.Planet;
+import org.apache.roller.planet.business.PlanetManager;
+import org.apache.roller.planet.business.PropertiesManager;
+import org.apache.roller.planet.business.jpa.JPAPlanetImpl;
+import org.apache.roller.planet.business.jpa.JPAPlanetManagerImpl;
+import org.apache.roller.planet.business.jpa.JPAPropertiesManagerImpl;
+import org.apache.roller.weblogger.planet.business.jpa.JPARollerPlanetPersistenceStrategy;
+
+
+/**
+ * Guice module for configuring Roller's built-in Planet, JPA version.
+ */
+public class RollerPlanetModule implements Module {
+
+    public void configure(Binder binder) {
+        
+        binder.bind(Planet.class).to(JPAPlanetImpl.class);
+
+        // Use special Planet persistence strategy that works against RollerConfig
+        binder.bind(JPARollerPlanetPersistenceStrategy.class); 
+        
+        binder.bind(PlanetManager.class).to(     JPAPlanetManagerImpl.class);   
+        binder.bind(PropertiesManager.class).to( JPAPropertiesManagerImpl.class);   
+    }    
+}
+

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/planet.properties
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/planet.properties?view=diff&rev=544030&r1=544029&r2=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/planet.properties (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/planet.properties Sun Jun  3 19:03:40 2007
@@ -40,7 +40,6 @@
 # properties in this file are accessed like this ...
 #    PlanetConfig.getProperty("propname");
 
-persistence.planet.classname=org.apache.roller.planet.business.jpa.JPAPlanetImpl
 
 # You MUST override and set these three properties correctly:
 cache.dir=/var/planet/cache
@@ -53,5 +52,11 @@
 # choose a feed fetcher
 feedfetcher.classname=\
 org.apache.roller.weblogger.planet.business.RollerRomeFeedFetcher
+
+
+#---------------------------------
+
+# Pluggable backend
+guice.backend.module=org.apache.roller.weblogger.planet.business.hibernate.RollerModule
 
 

Modified: roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/roller.properties
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/roller.properties?view=diff&rev=544030&r1=544029&r2=544030
==============================================================================
--- roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/roller.properties (original)
+++ roller/branches/roller_guice/apps/weblogger/web/WEB-INF/classes/roller.properties Sun Jun  3 19:03:40 2007
@@ -40,6 +40,7 @@
 # properties in this file are accessed like this ...
 #    RollerConfig.getProperty("propname");
 
+
 #---------------------------------
 # Database configuration settings
 
@@ -69,8 +70,11 @@
 mail.username
 mail.password
 
+
 #---------------------------------
-guice.backend.module=org.apache.roller.weblogger.business.hibernate.HibernateModule
+
+# Pluggable backend
+guice.backend.module=org.apache.roller.weblogger.business.hibernate.RollerModule
 
 # Hibernate dialect: You MUST override this to use a database other than MySQL4
 hibernate.dialect=org.hibernate.dialect.MySQLDialect

Modified: roller/branches/roller_guice/merges.txt
URL: http://svn.apache.org/viewvc/roller/branches/roller_guice/merges.txt?view=diff&rev=544030&r1=544029&r2=544030
==============================================================================
--- roller/branches/roller_guice/merges.txt (original)
+++ roller/branches/roller_guice/merges.txt Sun Jun  3 19:03:40 2007
@@ -1,9 +1,16 @@
 
-Latest
-
-May 30, 2007
+June 1-3, 2007
+svn merge -r 543970:543971 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 543952:543970 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 543889:543952 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 543889:543952 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 543886:543889 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 543760:543886 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 542905:543760 https://svn.apache.org/repos/asf/roller/trunk
 svn merge -r 542748:542905 https://svn.apache.org/repos/asf/roller/trunk
 svn merge -r 541742:542748 https://svn.apache.org/repos/asf/roller/trunk
+svn merge -r 539779:541742 https://svn.apache.org/repos/asf/roller/trunk
 
 May 25, 2007
 svn merge -r 539779:541742 https://svn.apache.org/repos/asf/roller/trunk
+

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=544030&r1=544029&r2=544030
==============================================================================
Binary files - no diff available.