ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Håkan Andersson <hakan.anders...@evertiq.com>
Subject Re: Cache in iBATIS 3.0
Date Mon, 07 Sep 2009 14:03:31 GMT
Hi

Sorry for being unclear, I will try to explain a little better what I
have done.

I have a fully working web application with the latest ibatis beta
3.0.0.200 and what I did was to add <cache type="db.TestCache" /> to a
mapper, TestCache implements org.apache.ibatis.cache.Cache but at the
moment it only have logging statements, if I'm not horribly mistaken I
will see a "in putObject()" if hasKey() is false but I don't.

My test class
public class TestCache implements Cache {

	static Logger log = Logger.getLogger(TestCache.class);
	
	private String id;
	private ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
	
	/**
	 * @param id
	 */
	public TestCache(String id) {
		super();
		this.id = id;
	}

	@Override
	public void clear() {
		if (log.isDebugEnabled()) {
			log.debug("in clear()");
		}
		
	}

	@Override
	public String getId() {
		if (log.isDebugEnabled()) {
			log.debug("in getId()");
		}

		return this.id;
	}

	@Override
	public Object getObject(Object obj) {
		if (log.isDebugEnabled()) {
			log.debug("in getObject()");
		}

		return "";
	}

	@Override
	public ReadWriteLock getReadWriteLock() {
		if (log.isDebugEnabled()) {
			log.debug("in getReadWriteLock()");
		}
	
		return this.readWriteLock;
	}

	@Override
	public int getSize() {
		if (log.isDebugEnabled()) {
			log.debug("in getSize()");
		}

		return 0;
	}

	@Override
	public boolean hasKey(Object obj) {
		if (log.isDebugEnabled()) {
			log.debug("in hasKey()");
		}
		return false;
	}

	@Override
	public void putObject(Object arg0, Object arg1) {
		if (log.isDebugEnabled()) {
			log.debug("in putObject()");
		}
	}

	@Override
	public Object removeObject(Object arg0) {
		if (log.isDebugEnabled()) {
			log.debug("in removeObject()");
		}
		
		return null;
	}
}


The logging shows
DEBUG java.sql.Connection  - ooo Connection Opened
DEBUG db.TestCache  - in getReadWriteLock()
DEBUG db.TestCache  - in getReadWriteLock()
DEBUG db.TestCache  - in hasKey()
DEBUG db.TestCache  - in getReadWriteLock()
DEBUG java.sql.PreparedStatement  - ==> Executing: (removed)
DEBUG java.sql.ResultSet  - <== ResultSet Returned
DEBUG java.sql.ResultSet  - <== Columns: (removed)
DEBUG java.sql.ResultSet  - <== Row: (removed)
DEBUG java.sql.ResultSet  - <== Row: (removed)
DEBUG db.TestCache  - in getReadWriteLock()
DEBUG java.sql.Connection  - xxx Connection Closed



Best Regards
Håkan Andersson


On 06/09/09 09:21, Clinton Begin wrote:
> I'm not quite sure about your question...
> 
>   * What are you referring to when you say "the custom cache" -- I'm
> assuming that's something you've implemented.
> 
>   * How are you hooking it into your statements?
> 
>   * Can you provide a simple unit test to demonstrate the behavior (e.g.
> you could just use a simple hashmap implementation).
> 
> Cheers,
> Clinton
> 
> 2009/9/3 Håkan Andersson <hakan.andersson@evertiq.com
> <mailto:hakan.andersson@evertiq.com>>
> 
>     Hi
> 
>     I have been playing a little with the custom cache in ibatis 3.0 Beta 3,
>     but I can't see that the putObject is fired, is there any special
>     condition that needs to be fulfilled before it will happen?
>     hasKey, getObject and getReadWriteLock all get fired when it should but
>     not putObject.
> 
> 
>     Best Regards
>     Håkan Andersson
> 
> 
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>     <mailto:user-java-unsubscribe@ibatis.apache.org>
>     For additional commands, e-mail: user-java-help@ibatis.apache.org
>     <mailto:user-java-help@ibatis.apache.org>
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message