KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > jetspeed > services > cms > DefaultCmsService


1 /* ====================================================================
2  * The Apache Software License, Version 1.1
3  *
4  * Copyright (c) 2001 The Apache Software Foundation. All rights
5  * reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in
16  * the documentation and/or other materials provided with the
17  * distribution.
18  *
19  * 3. The end-user documentation included with the redistribution,
20  * if any, must include the following acknowledgment:
21  * "This product includes software developed by the
22  * Apache Software Foundation (http://www.apache.org/)."
23  * Alternately, this acknowledgment may appear in the software itself,
24  * if and wherever such third-party acknowledgments normally appear.
25  *
26  * 4. The names "Apache" and "Apache Software Foundation" and
27  * "Apache Jetspeed" must not be used to endorse or promote products
28  * derived from this software without prior written permission. For
29  * written permission, please contact apache@apache.org.
30  *
31  * 5. Products derived from this software may not be called "Apache",
32  * "Apache Jetspeed", nor may "Apache" appear in their name, without
33  * prior written permission of the Apache Software Foundation.
34  *
35  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46  * SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Apache Software Foundation. For more
51  * information on the Apache Software Foundation, please see
52  * <http://www.apache.org/>.
53  */

54
55 package org.apache.jetspeed.services.cms;
56
57
58
59 // Java core classes
60
import java.util.*;
61
62 // Tubine
63
import org.apache.turbine.services.*;
64 //import org.apache.turbine.services.resources.*;
65

66 // Jetspeed
67
import org.apache.jetspeed.services.cms.manager.CmsFactory;
68 import org.apache.jetspeed.services.cms.manager.CmsManager;
69 import org.apache.jetspeed.services.cms.JetspeedCMSException;
70
71
72 /**
73  * Default CMS service.
74  * This class is an implementation of {@link CmsService}.
75  *
76  * @author <a HREF="mailto:christophe.lombart@skynet.be">Christophe Lombart</a>
77  *
78  */

79 public class DefaultCmsService
80     extends BaseService
81     implements CmsService
82 {
83
84     /**
85      * List of all Cms Manager used by the service.
86      * TO DO : replace by the pool service (?)
87      */

88      private Hashtable cmsRepositories = new Hashtable();
89
90     /**
91      * Default namespace value.
92      */

93     private final static String JavaDoc DEFAULT_NAMESPACE_VALUE = "jetspeed";
94
95     /**
96      * Initialize the CMS Service.
97      * @exception InitializationException error during initialization
98      */

99     public void init() throws InitializationException
100     {
101         // init the default CmsManager
102
try
103         {
104             this.getCmsManager();
105         }
106         catch( JetspeedCMSException e)
107         {
108             throw new InitializationException("CMSService: Unable to retrieve default CMSManager");
109         }
110
111         setInit(true);
112     }
113
114     public CmsManager getCmsManager() throws JetspeedCMSException
115     {
116         return this.getCmsManager(DEFAULT_NAMESPACE_VALUE);
117     }
118
119     public CmsManager getCmsManager(String JavaDoc nameSpace) throws JetspeedCMSException
120     {
121         CmsManager cms = null;
122
123         try
124         {
125             cms = (CmsManager) cmsRepositories.get(nameSpace);
126
127             if (cms == null)
128             {
129                 cms = CmsFactory.getCmsManagerInstance(nameSpace);
130                 cmsRepositories.put(nameSpace, cms);
131             }
132         }
133         catch (Exception JavaDoc e)
134         {
135             throw new JetspeedCMSException("System Error : impossible to access to the content repository");
136         }
137
138         return cms;
139     }
140 }
141
Popular Tags