View Javadoc

1   /*
2    * $Id: AbstractClientService.java,v 1.18 2011/06/16 09:29:41 jbmeslin Exp $
3    */
4   package org.rcfaces.core.internal.service;
5   
6   import java.util.Map;
7   
8   import javax.faces.context.FacesContext;
9   
10  import org.apache.commons.logging.Log;
11  import org.apache.commons.logging.LogFactory;
12  
13  /**
14   * 
15   * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
16   * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:41 $
17   */
18  public abstract class AbstractClientService extends AbstractService {
19      private static final String REVISION = "$Revision: 1.18 $";
20  
21      private static final Log LOG = LogFactory
22              .getLog(AbstractClientService.class);
23  
24      private static final String CLIENT_SERVICE_REGISTRY_PROPERTY = "camelia.client.service.Repository";
25  
26      protected IClientServiceRegistry getClientServiceRegistry(
27              FacesContext facesContext) {
28  
29          Map applicationMap = facesContext.getExternalContext()
30                  .getApplicationMap();
31          synchronized (AbstractClientService.class) {
32              IClientServiceRegistry clientServiceRegistry = (IClientServiceRegistry) applicationMap
33                      .get(CLIENT_SERVICE_REGISTRY_PROPERTY);
34              if (clientServiceRegistry != null) {
35                  return clientServiceRegistry;
36              }
37  
38              clientServiceRegistry = createClientServiceRegistry();
39  
40              applicationMap.put(CLIENT_SERVICE_REGISTRY_PROPERTY,
41                      clientServiceRegistry);
42  
43              return clientServiceRegistry;
44          }
45      }
46  
47      protected IClientServiceRegistry createClientServiceRegistry() {
48          return new ClientServiceRegistryImpl();
49      }
50  
51  }