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.anders...@evertiq.com
> <mailto:hakan.anders...@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-unsubscr...@ibatis.apache.org
>     <mailto:user-java-unsubscr...@ibatis.apache.org>
>     For additional commands, e-mail: user-java-h...@ibatis.apache.org
>     <mailto:user-java-h...@ibatis.apache.org>
> 
> 

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

Reply via email to