You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2007/02/15 18:54:59 UTC
svn commit: r508048 - in
/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business:
./ hibernate/
Author: agilliland
Date: Thu Feb 15 09:54:58 2007
New Revision: 508048
URL: http://svn.apache.org/viewvc?view=rev&rev=508048
Log:
cleanup the shutdown/release process a bit.
Added:
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/AbstractManagerImpl.java
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/Manager.java
Modified:
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PlanetManager.java
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PropertiesManager.java
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetManagerImpl.java
incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePropertiesManagerImpl.java
Added: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/AbstractManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/AbstractManagerImpl.java?view=auto&rev=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/AbstractManagerImpl.java (added)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/AbstractManagerImpl.java Thu Feb 15 09:54:58 2007
@@ -0,0 +1,37 @@
+/*
+ * 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.planet.business;
+
+
+/**
+ * Provides base implementations for release() and shutdown() so that manager
+ * implemenations can just override them if needed.
+ */
+public abstract class AbstractManagerImpl implements Manager {
+
+ public void release() {
+ // no-op
+ }
+
+
+ public void shutdown() {
+ // no-op
+ }
+
+}
Added: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/Manager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/Manager.java?view=auto&rev=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/Manager.java (added)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/Manager.java Thu Feb 15 09:54:58 2007
@@ -0,0 +1,40 @@
+/*
+ * 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.planet.business;
+
+
+/**
+ * Some things common to all XXXManager interfaces.
+ *
+ * TODO: there should probably be a startup() method.
+ */
+public interface Manager {
+
+ /**
+ * Release all resources associated with session.
+ */
+ public void release();
+
+
+ /**
+ * Cleanup for application shutdown.
+ */
+ public void shutdown();
+
+}
Modified: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PlanetManager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PlanetManager.java?view=diff&rev=508048&r1=508047&r2=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PlanetManager.java (original)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PlanetManager.java Thu Feb 15 09:54:58 2007
@@ -32,7 +32,7 @@
* Manages groups and subscriptions, can return aggregation for any group.
* @author David M Johnson
*/
-public interface PlanetManager extends Serializable {
+public interface PlanetManager extends Manager {
//------------------------------------------------------------------ create
Modified: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PropertiesManager.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PropertiesManager.java?view=diff&rev=508048&r1=508047&r2=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PropertiesManager.java (original)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/PropertiesManager.java Thu Feb 15 09:54:58 2007
@@ -26,7 +26,7 @@
/**
* Manages global runtime properties.
*/
-public interface PropertiesManager {
+public interface PropertiesManager extends Manager {
/**
* Save a single property
@@ -50,11 +50,5 @@
* Retrieve a list of all properties
*/
public Map getProperties() throws RollerException;
-
-
- /**
- * Release all resources associated with session.
- */
- public void release();
}
Modified: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java?view=diff&rev=508048&r1=508047&r2=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java (original)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetImpl.java Thu Feb 15 09:54:58 2007
@@ -124,15 +124,31 @@
public void release() {
-
- // tell Hibernate to close down
+ // allow managers to do any session cleanup
+ if(this.propertiesManager != null) {
+ this.propertiesManager.release();
+ }
+
+ if(this.planetManager != null) {
+ this.planetManager.release();
+ }
+
+ // close down the session
this.strategy.release();
}
public void shutdown() {
+ // allow managers to do any shutdown needed
+ if(this.propertiesManager != null) {
+ this.propertiesManager.shutdown();
+ }
+
+ if(this.planetManager != null) {
+ this.planetManager.shutdown();
+ }
- // do our own shutdown first
+ // trigger the final release()
this.release();
}
Modified: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetManagerImpl.java?view=diff&rev=508048&r1=508047&r2=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetManagerImpl.java (original)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePlanetManagerImpl.java Thu Feb 15 09:54:58 2007
@@ -44,6 +44,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.planet.business.AbstractManagerImpl;
import org.apache.roller.planet.business.PlanetManager;
import org.apache.roller.planet.config.PlanetRuntimeConfig;
import org.apache.roller.planet.pojos.PlanetData;
@@ -52,10 +53,12 @@
import org.apache.roller.planet.pojos.PlanetSubscriptionData;
import org.apache.roller.planet.util.rome.DiskFeedInfoCache;
+
/**
* Hibernate implementation of the PlanetManager.
*/
-public class HibernatePlanetManagerImpl implements PlanetManager {
+public class HibernatePlanetManagerImpl extends AbstractManagerImpl
+ implements PlanetManager {
private static Log log = LogFactory.getLog(HibernatePlanetManagerImpl.class);
Modified: incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePropertiesManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePropertiesManagerImpl.java?view=diff&rev=508048&r1=508047&r2=508048
==============================================================================
--- incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePropertiesManagerImpl.java (original)
+++ incubator/roller/trunk/apps/planet/src/java/org/apache/roller/planet/business/hibernate/HibernatePropertiesManagerImpl.java Thu Feb 15 09:54:58 2007
@@ -28,6 +28,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.RollerException;
+import org.apache.roller.planet.business.AbstractManagerImpl;
import org.apache.roller.planet.business.PropertiesManager;
import org.apache.roller.planet.config.PlanetRuntimeConfig;
import org.apache.roller.planet.config.runtime.ConfigDef;
@@ -40,7 +41,8 @@
/**
* Hibernate implementation of the PropertiesManager.
*/
-public class HibernatePropertiesManagerImpl implements PropertiesManager {
+public class HibernatePropertiesManagerImpl extends AbstractManagerImpl
+ implements PropertiesManager {
private static Log log = LogFactory.getLog(HibernatePropertiesManagerImpl.class);
@@ -203,8 +205,5 @@
return props;
}
-
-
- public void release() {}
}