KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > business > hibernate > HibernateRollerImpl


1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. The ASF licenses this file to You
4 * under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License. For additional information regarding
15 * copyright in this work, please see the NOTICE file in the top level
16 * directory of this distribution.
17 */

18 /*
19  * Created on Feb 23, 2003
20  */

21 package org.apache.roller.business.hibernate;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.apache.roller.RollerException;
26 import org.apache.roller.business.RollerImpl;
27 import org.apache.roller.model.BookmarkManager;
28 import org.apache.roller.model.ConfigManager;
29 import org.apache.roller.model.AutoPingManager;
30 import org.apache.roller.model.PingQueueManager;
31 import org.apache.roller.model.PingTargetManager;
32 import org.apache.roller.model.PlanetManager;
33 import org.apache.roller.model.PropertiesManager;
34 import org.apache.roller.model.RefererManager;
35 import org.apache.roller.model.Roller;
36 import org.apache.roller.model.UserManager;
37 import org.apache.roller.model.WeblogManager;
38
39
40 /**
41  * A Hibernate specific implementation of the Roller business layer.
42  */

43 public class HibernateRollerImpl extends RollerImpl {
44     
45     static final long serialVersionUID = 5256135928578074652L;
46     
47     private static Log mLogger = LogFactory.getLog(HibernateRollerImpl.class);
48     
49     // our singleton instance
50
private static HibernateRollerImpl me = null;
51     
52     // a persistence utility class
53
private HibernatePersistenceStrategy strategy = null;
54     
55     // references to the managers we maintain
56
private BookmarkManager bookmarkManager = null;
57     private ConfigManager configManager = null;
58     private PropertiesManager propertiesManager = null;
59     private PlanetManager planetManager = null;
60     private RefererManager refererManager = null;
61     private UserManager userManager = null;
62     private WeblogManager weblogManager = null;
63     private PingQueueManager pingQueueManager = null;
64     private AutoPingManager autoPingManager = null;
65     private PingTargetManager pingTargetManager = null;
66     
67     
68     protected HibernateRollerImpl() throws RollerException {
69         try {
70             strategy = new HibernatePersistenceStrategy();
71         } catch(Throwable JavaDoc t) {
72             // if this happens then we are screwed
73
mLogger.fatal("Error initializing Hibernate", t);
74             throw new RollerException(t);
75         }
76     }
77     
78     
79     /**
80      * Instantiates and returns an instance of HibernateRollerImpl.
81      */

82     public static Roller instantiate() throws RollerException {
83         if (me == null) {
84             mLogger.debug("Instantiating HibernateRollerImpl");
85             me = new HibernateRollerImpl();
86         }
87         
88         return me;
89     }
90     
91     
92     public void flush() throws RollerException {
93         this.strategy.flush();
94     }
95     
96     
97     public void release() {
98         
99         // release our own stuff first
100
if (bookmarkManager != null) bookmarkManager.release();
101         if (configManager != null) configManager.release();
102         if (refererManager != null) refererManager.release();
103         if (userManager != null) userManager.release();
104         if (weblogManager != null) weblogManager.release();
105         if (pingTargetManager != null) pingTargetManager.release();
106         if (pingQueueManager != null) pingQueueManager.release();
107         if (autoPingManager != null) autoPingManager.release();
108         
109         // tell Hibernate to close down
110
this.strategy.release();
111         
112         // then let parent do its thing
113
super.release();
114     }
115     
116     
117     public void shutdown() {
118         
119         // do our own shutdown first
120
this.release();
121         
122         // then let parent do its thing
123
super.shutdown();
124     }
125     
126     
127     /**
128      * @see org.apache.roller.model.Roller#getUserManager()
129      */

130     public UserManager getUserManager() throws RollerException {
131         if ( userManager == null ) {
132             userManager = new HibernateUserManagerImpl(strategy);
133         }
134         return userManager;
135     }
136     
137     /**
138      * @see org.apache.roller.model.Roller#getBookmarkManager()
139      */

140     public BookmarkManager getBookmarkManager() throws RollerException {
141         if ( bookmarkManager == null ) {
142             bookmarkManager = new HibernateBookmarkManagerImpl(strategy);
143         }
144         return bookmarkManager;
145     }
146     
147     /**
148      * @see org.apache.roller.model.Roller#getWeblogManager()
149      */

150     public WeblogManager getWeblogManager() throws RollerException {
151         if ( weblogManager == null ) {
152             weblogManager = new HibernateWeblogManagerImpl(strategy);
153         }
154         return weblogManager;
155     }
156     
157     /**
158      * @see org.apache.roller.model.Roller#getRefererManager()
159      */

160     public RefererManager getRefererManager() throws RollerException {
161         if ( refererManager == null ) {
162             refererManager = new HibernateRefererManagerImpl(strategy);
163         }
164         return refererManager;
165     }
166     
167     /**
168      * @see org.apache.roller.model.Roller#getConfigManager()
169      */

170     public ConfigManager getConfigManager() throws RollerException {
171         if (configManager == null) {
172             configManager = new HibernateConfigManagerImpl(strategy);
173         }
174         return configManager;
175     }
176     
177     /**
178      * @see org.apache.roller.model.Roller#getPropertiesManager()
179      */

180     public PropertiesManager getPropertiesManager() throws RollerException {
181         if (propertiesManager == null) {
182             propertiesManager = new HibernatePropertiesManagerImpl(strategy);
183         }
184         return propertiesManager;
185     }
186     
187     /**
188      * @see org.apache.roller.model.Roller#getPingTargetManager()
189      */

190     public PingQueueManager getPingQueueManager() throws RollerException {
191         if (pingQueueManager == null) {
192             pingQueueManager = new HibernatePingQueueManagerImpl(strategy);
193         }
194         return pingQueueManager;
195     }
196     
197     /**
198      * @see org.apache.roller.model.Roller#getPlanetManager()
199      */

200     public PlanetManager getPlanetManager() throws RollerException {
201         if ( planetManager == null ) {
202             planetManager = new HibernateRollerPlanetManagerImpl(strategy);
203         }
204         return planetManager;
205     }
206     
207     
208     /**
209      * @see org.apache.roller.model.Roller#getPingTargetManager()
210      */

211     public AutoPingManager getAutopingManager() throws RollerException {
212         if (autoPingManager == null) {
213             autoPingManager = new HibernateAutoPingManagerImpl(strategy);
214         }
215         return autoPingManager;
216     }
217     
218     
219     /**
220      * @see org.apache.roller.model.Roller#getPingTargetManager()
221      */

222     public PingTargetManager getPingTargetManager() throws RollerException {
223         if (pingTargetManager == null) {
224             pingTargetManager = new HibernatePingTargetManagerImpl(strategy);
225         }
226         return pingTargetManager;
227     }
228     
229 }
230
Popular Tags