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.