PojoCache, Serializable object and cluster
jacek187 Mar 20, 2007 8:47 AMQuestion: should be changes made in simple serializable objects propagatet when using PojoCache?
Why in prestented code testPojo fails with error:
junit.framework.AssertionFailedError: expected:<2> but was:<1>
and testTreeCache success?
package org.jboss.cache.aop;
import java.util.Properties;
import javax.naming.Context;
import junit.framework.TestCase;
import org.jboss.cache.CacheException;
import org.jboss.cache.PropertyConfigurator;
public class PojoCacheSerializableTest extends TestCase {
PojoCache cache_;
PojoCache cache1_;
public PojoCacheSerializableTest(String name) {
super(name);
}
protected void setUp() throws Exception {
super.setUp();
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
cache_ = new PojoCache();
PropertyConfigurator config = new PropertyConfigurator(); // configure tree cache.
config.configure(cache_, "META-INF/replSync-service.xml");
cache1_ = new PojoCache();
config.configure(cache1_, "META-INF/replSync-service.xml");
cache_.start();
cache1_.start();
}
protected void tearDown() throws Exception {
super.tearDown();
cache_.stop();
cache1_.stop();
}
public void testPojo() throws CacheException {
SimplePojo simplePojo = new SimplePojo();
simplePojo.setStatus(1);
cache_.putObject("a/b/c/d", simplePojo);
SimplePojo simplePojo2 = (SimplePojo) cache1_.getObject("a/b/c/d");
simplePojo2.setStatus(2);
cache1_.putObject("a/b/c/d", simplePojo2);
SimplePojo simplePojo3 = (SimplePojo) cache_.getObject("a/b/c/d");
assertEquals(2, simplePojo3.getStatus());
}
public void testTreeCache() throws CacheException {
SimplePojo simplePojo = new SimplePojo();
simplePojo.setStatus(1);
cache_.put("a/b/c/d", "key", simplePojo);
SimplePojo simplePojo1 = (SimplePojo) cache1_.get("a/b/c/d", "key");
simplePojo1.setStatus(2);
cache1_.put("a/b/c/d", "key", simplePojo1);
SimplePojo simplePojo2 = (SimplePojo) cache_.get("a/b/c/d", "key");
assertEquals(2, simplePojo2.getStatus());
}
}
SimplePojo
package org.jboss.cache.aop;
import java.io.Serializable;
import org.jboss.cache.aop.annotation.InstanceOfPojoCacheable;
public class SimplePojo implements Serializable{
private int status;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}