weaver 2004/10/29 06:52:44 Added: components/cm/src/test/org/apache/jetspeed/cache/general cache-test.xml InvocationCountingCache.java TestCachingInterceptors.java Log: Start of a simple caching api. Test cases Revision Changes Path 1.1 jakarta-jetspeed-2/components/cm/src/test/org/apache/jetspeed/cache/general/cache-test.xml Index: cache-test.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!-- - Application context definition for PortletEntity using Apache OJB. --> <beans> <!-- define our caching service. This one uses a simple hashmap and counts method access - for testing purposes --> <bean id="systemCache" class="org.apache.jetspeed.cache.general.InvocationCountingCache" /> <!-- This interceptor is responsible for retreiving/adding objects to the cache. --> <bean id="systemCachingInterceptor" class="org.apache.jetspeed.components.interceptors.CachingInterceptor" > <constructor-arg> <ref bean="systemCache"/> </constructor-arg> </bean> <!-- This interceptor is responsible for removing items from the cache --> <bean id="systemRemoveFromCacheInterceptor" class="org.apache.jetspeed.components.interceptors.RemoveFromCacheInterceptor" > <constructor-arg> <ref bean="systemCache"/> </constructor-arg> </bean> <!-- We use a RegEx advisor to indicate when we should invoke the caching interceptor --> <bean id="mockCachingAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref bean="systemCachingInterceptor"/> </property> <property name="patterns"> <list> <value>.*getValue</value> </list> </property> </bean> <!-- We use a RegEx advisor to indicate when we should invoke the remove from cache interceptor --> <bean id="mockRemoveFromCacheAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice"> <ref bean="systemRemoveFromCacheInterceptor"/> </property> <property name="patterns"> <list> <value>.*setValue</value> </list> </property> </bean> <!-- Simple object that will have its methods wrapped with cachinng aspects --> <bean id="baseMockTarget" class="org.apache.jetspeed.components.BaseMockComponent" > <constructor-arg index="0"> <value>1</value> </constructor-arg> <constructor-arg index="1"> <value>value1</value> </constructor-arg> </bean> <!-- Actual proxied component we will access from the bean factory.--> <bean id="mockComponent" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <value>org.apache.jetspeed.components.MockComponent</value> </property> <property name="target"><ref local="baseMockTarget"/></property> <property name="interceptorNames"> <list> <value>mockCachingAdvisor</value> <value>mockRemoveFromCacheAdvisor</value> </list> </property> </bean> </beans> 1.1 jakarta-jetspeed-2/components/cm/src/test/org/apache/jetspeed/cache/general/InvocationCountingCache.java Index: InvocationCountingCache.java =================================================================== /* * Created on Oct 20, 2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */ package org.apache.jetspeed.cache.general; /** * <p> * InvocationCountingCache * </p> * <p> * * </p> * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> * @version $Id: InvocationCountingCache.java,v 1.1 2004/10/29 13:52:44 weaver Exp $ * */ public class InvocationCountingCache extends SimpleHashMapCache { int getCount, putCount, removeCount, successGetCount, containsCount; public Object get( String key ) { getCount++; Object value = super.get(key); if(value != null) { successGetCount++; } return value; } public void put( String key, Object value ) { putCount++; super.put(key, value); } public Object remove( String key ) { removeCount++; return super.remove(key); } public boolean contains( String key ) { containsCount++; return super.contains(key); } } 1.1 jakarta-jetspeed-2/components/cm/src/test/org/apache/jetspeed/cache/general/TestCachingInterceptors.java Index: TestCachingInterceptors.java =================================================================== /* * Copyright 2000-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jetspeed.cache.general; import org.apache.jetspeed.components.MockComponent; import org.apache.jetspeed.components.test.AbstractSpringTestCase; /** * <p> * TestCachingInterceptors * </p> * <p> * * </p> * @author <a href="mailto:[EMAIL PROTECTED]">Scott T. Weaver</a> * @version $Id: TestCachingInterceptors.java,v 1.1 2004/10/29 13:52:44 weaver Exp $ * */ public class TestCachingInterceptors extends AbstractSpringTestCase { public void testInterceptors() throws Exception { MockComponent mc = (MockComponent) ctx.getBean("mockComponent"); InvocationCountingCache cache = (InvocationCountingCache) ctx.getBean("systemCache"); assertNotNull(mc); assertNotNull(cache); assertNotNull(mc.getValue("2")); assertEquals(1, cache.containsCount); assertEquals(0, cache.getCount); assertEquals(0, cache.successGetCount); assertEquals(1, cache.putCount); assertEquals(0, cache.removeCount); assertNotNull(mc.getValue("2")); assertEquals(2, cache.containsCount); assertEquals(1, cache.getCount); assertEquals(1, cache.successGetCount); assertEquals(1, cache.putCount); assertEquals(0, cache.removeCount); mc.setValue("2", "some other value"); assertEquals(2, cache.containsCount); assertEquals(1, cache.getCount); assertEquals(1, cache.successGetCount); assertEquals(1, cache.putCount); assertEquals(1, cache.removeCount); assertEquals("some other value", mc.getValue("2")); assertEquals(3, cache.containsCount); assertEquals(1, cache.getCount); assertEquals(1, cache.successGetCount); assertEquals(2, cache.putCount); assertEquals(1, cache.removeCount); } protected String[] getConfigurations() { return new String[] {"org/apache/jetspeed/cache/general/cache-test.xml"}; } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]