View Javadoc

    1   /***
    2    * @(#)JCSCacheServiceImpl.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 org.apache.commons.logging.Log;
    28  import org.apache.commons.logging.LogFactory;
    29  import org.apache.jcs.JCS;
    30  import org.apache.jcs.access.exception.CacheException;
    31  import org.huihoo.jfox.soaf.exception.CacheServiceException;
    32
    33  /***
    34   * <p>
    35   * Support for Apache Turbine's JCS
    36   * </p>
    37   *
    38   * @author <a href="mailto:founder_chen@yahoo.com.cn">Peter Cheng </a>
    39   * @author <a href="mailto:m.bogaert@intrasoft.be">Mathias Bogaert </a>
    40   * @version $Revision: 1.1 $ $Date: 2005/05/22 06:48:52 $
    41   * @version Revision: 1.0
    42   */
    43
    44  public class JCSCacheServiceImpl implements CacheService {
    45
    46      private static final Log log = LogFactory.getLog(JCSCacheServiceImpl.class);
    47
    48      private JCS cache;
    49
    50      /***
    51       * Constructor with given param.
    52       */
    53      public JCSCacheServiceImpl(String regionName) throws CacheServiceException {
    54          try {
    55              cache = JCS.getInstance(regionName);
    56          } catch (CacheException e) {
    57              log.error("could not create JCS region", e);
    58              throw new CacheServiceException(e);
    59          }
    60      }
    61
    62      /***
    63       * @see org.huihoo.jfox.soaf.services.cache.CacheService#get(java.lang.Object)
    64       */
    65      public Object get(Object key) throws CacheServiceException {
    66          return cache.get(key);
    67      }
    68
    69      /***
    70       * @see org.huihoo.jfox.soaf.services.cache.CacheService#put(java.lang.Object,
    71       *      java.lang.Object)
    72       */
    73      public void put(Object key, Object value) throws CacheServiceException {
    74          try {
    75              cache.put(key, value);
    76          } catch (CacheException e) {
    77              log.error("could not add to JCS region", e);
    78              throw new CacheServiceException(e);
    79          }
    80      }
    81
    82      /***
    83       * @see org.huihoo.jfox.soaf.services.cache.CacheService#remove(java.lang.Object)
    84       */
    85      public void remove(Object key) throws CacheServiceException {
    86          try {
    87              cache.remove(key);
    88          } catch (CacheException e) {
    89              log.error("could not remove from JCS region", e);
    90              throw new CacheServiceException(e);
    91          }
    92      }
    93
    94      /***
    95       * @see org.huihoo.jfox.soaf.services.cache.CacheService#clear()
    96       */
    97      public void clear() throws CacheServiceException {
    98          try {
    99              cache.remove();
    100         } catch (CacheException e) {
    101             log.error("could not remove from JCS region", e);
    102             throw new CacheServiceException(e);
    103         }
    104     }
    105 }