You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ep...@apache.org on 2003/10/27 17:47:06 UTC

cvs commit: jakarta-turbine-fulcrum/cache/src/test/org/apache/fulcrum/cache CacheServiceFacadeTest.java

epugh       2003/10/27 08:47:06

  Modified:    cache/src/java/org/apache/fulcrum/cache
                        DefaultGlobalCacheService.java
               cache/xdocs changes.xml
  Added:       cache/src/java/org/apache/fulcrum/cache
                        CacheServiceFacade.java
               cache/src/test/org/apache/fulcrum/cache
                        CacheServiceFacadeTest.java
  Log:
  Add in Facade for Cache
  
  Revision  Changes    Path
  1.2       +2 -1      jakarta-turbine-fulcrum/cache/src/java/org/apache/fulcrum/cache/DefaultGlobalCacheService.java
  
  Index: DefaultGlobalCacheService.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/cache/src/java/org/apache/fulcrum/cache/DefaultGlobalCacheService.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultGlobalCacheService.java	20 Aug 2003 00:45:45 -0000	1.1
  +++ DefaultGlobalCacheService.java	27 Oct 2003 16:47:05 -0000	1.2
  @@ -317,6 +317,7 @@
       }
       public void initialize() throws Exception
       {
  +		CacheServiceFacade.setService(this);
           try
           {
               cache = new Hashtable(cacheInitialSize);
  
  
  
  1.1                  jakarta-turbine-fulcrum/cache/src/java/org/apache/fulcrum/cache/CacheServiceFacade.java
  
  Index: CacheServiceFacade.java
  ===================================================================
  package org.apache.fulcrum.cache;
  /*
   * ==================================================================== The
   * Apache Software License, Version 1.1
   * 
   * Copyright (c) 2001-2003 The Apache Software Foundation. All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are met:
   *  1. Redistributions of source code must retain the above copyright notice,
   * this list of conditions and the following disclaimer.
   *  2. Redistributions in binary form must reproduce the above copyright
   * notice, this list of conditions and the following disclaimer in the
   * documentation and/or other materials provided with the distribution.
   *  3. The end-user documentation included with the redistribution, if any,
   * must include the following acknowledgment: "This product includes software
   * developed by the Apache Software Foundation (http://www.apache.org/)."
   * Alternately, this acknowledgment may appear in the software itself, if and
   * wherever such third-party acknowledgments normally appear.
   *  4. The names "Apache" and "Apache Software Foundation" and "Apache Turbine"
   * must not be used to endorse or promote products derived from this software
   * without prior written permission. For written permission, please contact
   * apache@apache.org.
   *  5. Products derived from this software may not be called "Apache", "Apache
   * Turbine", nor may "Apache" appear in their name, without prior written
   * permission of the Apache Software Foundation.
   * 
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
   * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
   * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   * ====================================================================
   * 
   * This software consists of voluntary contributions made by many individuals
   * on behalf of the Apache Software Foundation. For more information on the
   * Apache Software Foundation, please see <http://www.apache.org/> .
   */
  import java.io.IOException;
  /**
   * This is a Facade class for globalCacheService.
   * 
   * This class provides static methods that call related methods of the
   * implementation of the globalCacheService used by the System.
   * 
   * @version $Id: CacheServiceFacade.java,v 1.1 2003/10/27 16:47:05 epugh Exp $
   */
  public class CacheServiceFacade
  {
  
      /** Static instance of the globalCacheService. */
      private static GlobalCacheService globalCacheService;
  
      /**
  	 * Gets a cached object given its id (a String).
  	 * 
  	 * @param id The String id for the object.
  	 * @return A CachedObject.
  	 * @exception ObjectExpiredException, if the object has expired in the
  	 *                cache.
  	 */
      public static CachedObject getObject(String id)
          throws ObjectExpiredException
      {
          return getService().getObject(id);
      }
  
      /**
  	 * Adds an object to the cache.
  	 * 
  	 * @param id The String id for the object.
  	 * @param o The object to add to the cache.
  	 */
      public static void addObject(String id, CachedObject o)
      {
          getService().addObject(id, o);
      }
  
      /**
  	 * Removes an object from the cache.
  	 * 
  	 * @param id The String id for the object.
  	 */
      public static void removeObject(String id)
      {
          getService().removeObject(id);
      }
  
      /**
  	 * Returns the current size of the cache.
  	 * 
  	 * @return int representing current cache size in number of bytes
  	 */
      public static int getCacheSize() throws IOException
      {
          return getService().getCacheSize();
      }
  
      /**
  	 * Returns the number of objects in the cache.
  	 * 
  	 * @return int The current number of objects in the cache.
  	 */
      public static int getNumberOfObjects()
      {
          return getService().getNumberOfObjects();
      }
  
      /*
  	 * Utility method for accessing the service implementation
  	 * 
  	 * @return a CacheServiceFacade implementation instance
  	 */
      private static GlobalCacheService getService()
      {
          if (globalCacheService == null)
          {
              throw new RuntimeException("GlobalCacheService Service has not been set yet.");
          }
          return globalCacheService;
      }
      static void setService(GlobalCacheService service)
      {
          globalCacheService = service;
      }
  }
  
  
  
  1.2       +4 -1      jakarta-turbine-fulcrum/cache/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/cache/xdocs/changes.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- changes.xml	8 Sep 2003 15:26:56 -0000	1.1
  +++ changes.xml	27 Oct 2003 16:47:05 -0000	1.2
  @@ -6,7 +6,10 @@
     </properties>
   
     <body>
  -    <release version="Not applicable" date="">
  +    <release version="1.0-alpha-3" date="in CVS">
  +     <action dev="epugh" type="add">
  +        Added CacheServiceFacade class.
  +      </action>
         <action dev="epugh" type="add">
           Integrated howto documentation on main page.
         </action>
  
  
  
  1.1                  jakarta-turbine-fulcrum/cache/src/test/org/apache/fulcrum/cache/CacheServiceFacadeTest.java
  
  Index: CacheServiceFacadeTest.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2000-2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *     "Apache Jetspeed" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache" or
   *    "Apache Jetspeed", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.fulcrum.cache;
  // Cactus and Junit imports
  import junit.awtui.TestRunner;
  import junit.framework.Test;
  import junit.framework.TestSuite;
  
  import org.apache.fulcrum.testcontainer.BaseUnitTest;
  
  
  /**
   * Test the WorkflowServiceFacade.  
   *
   * @author <a href="epugh@upstate.com">Eric Pugh</a>
   * @version $Id: CacheServiceFacadeTest.java,v 1.1 2003/10/27 16:47:06 epugh Exp $
   */
  public class CacheServiceFacadeTest extends BaseUnitTest
  {
      /**
       * Defines the testcase name for JUnit.
       *
       * @param name the testcase's name.
       */
      public CacheServiceFacadeTest(String name)
      {
          super(name);
      }
      /**
       * Start the tests.
       *
       * @param args the arguments. Not used
       */
      public static void main(String args[])
      {
          TestRunner.main(
              new String[] { CacheServiceFacadeTest.class.getName()});
      }
      /**
       * Creates the test suite.
       *
       * @return a test suite (<code>TestSuite</code>) that includes all methods
       *         starting with "test"
       */
      public static Test suite()
      {
          // All methods starting with "test" will be executed in the test suite.
          return new TestSuite(CacheServiceFacadeTest.class);
      }
  
      public void testWorkflowFacadeNotConfigured() throws Exception
      {
          try
          {
              int cacheSize = CacheServiceFacade.getCacheSize();
          }
          catch (RuntimeException re)
          {
              //good;
          }
      }
  
      public void testWorkflowFacadeConfigured() throws Exception
      {
      	// this.lookup causes the workflow service to be configured.
  		this.lookup(GlobalCacheService.ROLE);
  		int cacheSize = CacheServiceFacade.getCacheSize();
  		assertEquals(80,cacheSize);       
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org