View Javadoc

    1   /***
    2    * @(#)EhCacheServiceProvider.java
    3    *
    4    * JFoxSOAF, Service-Oriented Application Framework
    5    *
    6    * Copyright(c) JFoxSOAF Team
    7    *
    8    * Licensed under the GNU LGPL, Version 2.1 (the "License");
    9    * you may not use this file except in compliance with the License.
    10   * You may obtain a copy of the License at
    11   *
    12   * http://www.gnu.org/copyleft/lesser.html
    13   *
    14   * Unless required by applicable law or agreed to in writing, software
    15   * distributed under the License is distributed on an "AS IS" BASIS,
    16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    17   * See the License for the specific language governing permissions and
    18   * limitations under the License.
    19   *
    20   * For more information, please visit:
    21   * http://www.jfox.cn/confluence/display/JFoxSOAF/Home
    22   * http://www.huihoo.org/jfox/jfoxsoaf
    23   */
    24
    25  package org.huihoo.jfox.soaf.services.cache;
    26
    27  import java.util.Properties;
    28
    29  import net.sf.ehcache.Cache;
    30  import net.sf.ehcache.CacheException;
    31  import net.sf.ehcache.CacheManager;
    32
    33  import org.huihoo.jfox.soaf.exception.CacheServiceException;
    34
    35  /***
    36   * <p>
    37   * EhCacheService for pluggable cache.
    38   * </p>
    39   *
    40   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    41   * @version $Revision: 1.1 $ $Date: 2005/05/22 06:48:52 $
    42   * @version Revision: 1.0
    43   */
    44
    45  public class EhCacheServiceProvider implements CacheServiceProvider {
    46
    47      private CacheManager manager;
    48
    49      /***
    50       * @see org.huihoo.jfox.soaf.services.cache.CacheServiceProvider#buildCacheService(java.lang.String,
    51       *      java.util.Properties)
    52       */
    53      public CacheService buildCacheService(String regionName,
    54              Properties properties) throws CacheServiceException {
    55          try {
    56              manager = CacheManager.create();
    57              Cache cache = manager.getCache(regionName);
    58              if (cache == null) {
    59                  manager.addCache(regionName);
    60                  cache = manager.getCache(regionName);
    61              }
    62              return new EhCacheServiceImpl(cache);
    63          } catch (CacheException e) {
    64              throw new CacheServiceException("Build EhCacheService ", e);
    65          }
    66      }
    67
    68  }