[jboss-cvs] JBossCache/migration/tests/org/jboss/cache/loader ...
Galder Zamarreno
galder.zamarreno at jboss.com
Wed Mar 7 18:32:06 EST 2007
User: gzamarreno
Date: 07/03/07 18:32:06
Added: migration/tests/org/jboss/cache/loader
TransformingJDBCCacheLoaderTest.java
TransformingFileCacheLoaderTest.java
TransformingCacheLoaderTestBase.java
Log:
[JBCACHE-964] Work committed:
- Transforming Cache Loaders implemented and unit tests provided
- migration folder structure. See JIRA.
- build.xml modified to compile, jar, create manifest for migration jar
and also added examples and migration jar to distros.
- example created and tested; it includes readme.txt with details of the
example and how to run it.
Still TODO:
- Unit tests for transforming cache loaders need to run from build.xml
- Documentation for transforming cache loaders in users guide, what are
they, when to use them,...etc.
- Fix JBCACHE-877 that occurrs when unzipping JBossCache-core-2.0.0.BETA2.zip
and running the examples. Workaround is to bring trove.jar into its lib.
- Get examples/cacheloader-migration/build.sh working
- Move JDBCCacheLoaderOld to the migration side. It's not that straightforward due to classes in
/src having dependencies on it. Needs further study.
Revision Changes Path
1.1 date: 2007/03/07 23:32:06; author: gzamarreno; state: Exp;JBossCache/migration/tests/org/jboss/cache/loader/TransformingJDBCCacheLoaderTest.java
Index: TransformingJDBCCacheLoaderTest.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.cache.loader;
import org.jboss.cache.CacheImpl;
import org.jboss.cache.Fqn;
import org.jboss.invocation.MarshalledValue;
import java.util.Properties;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
/**
* Unit tests for TransformingJDBCCacheLoader
*
* @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
*/
public class TransformingJDBCCacheLoaderTest extends TransformingCacheLoaderTestBase
{
private CacheImpl cache;
@Override
protected void setUp() throws Exception
{
super.setUp();
cache = createCache();
Properties prop = getProperties();
String cacheJdbcUrl = changeDbName(prop.getProperty("cache.jdbc.url"));
String props = "cache.jdbc.driver =" + prop.getProperty("cache.jdbc.driver") + "\n" +
"cache.jdbc.url=" + cacheJdbcUrl + "\n" +
"cache.jdbc.user=" + prop.getProperty("cache.jdbc.user") + "\n" +
"cache.jdbc.password=" + prop.getProperty("cache.jdbc.password") + "\n" +
"cache.jdbc.node.type=" + prop.getProperty("cache.jdbc.node.type") + "\n" +
"cache.jdbc.sql-concat=" + prop.getProperty("cache.jdbc.sql-concat");
cache.getConfiguration().setCacheLoaderConfig(getSingleCacheLoaderConfig("",
"org.jboss.cache.loader.TransformingJDBCCacheLoaderTest$LegacyJDBCCacheLoader", props, false, true, false));
}
@Override
protected void tearDown() throws Exception
{
cache.stop();
cache.destroy();
}
public void testPutGetData() throws Exception
{
cache.start();
loadCache(cache);
cache.evict(Fqn.fromString("/"), true);
checkData(cache);
}
protected Properties getProperties() throws Exception
{
Properties properties = new Properties();
try
{
properties.load(this.getClass().getClassLoader().getResourceAsStream("cache-jdbc.properties"));
return properties;
}
catch (Exception e)
{
throw new Exception("Error loading jdbc properties ", e);
}
}
private String changeDbName(String url)
{
return url.replaceFirst("jbossdb", "jbossdb-1x");
}
public static class LegacyJDBCCacheLoader extends TransformingJDBCCacheLoader
{
@Override
protected Object marshall(Object obj) throws Exception
{
Object marshalledNode = new MarshalledValue(obj);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(marshalledNode);
return baos.toByteArray();
}
}
}
1.1 date: 2007/03/07 23:32:06; author: gzamarreno; state: Exp;JBossCache/migration/tests/org/jboss/cache/loader/TransformingFileCacheLoaderTest.java
Index: TransformingFileCacheLoaderTest.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.cache.loader;
import junit.framework.TestCase;
import java.io.FileOutputStream;
import java.io.File;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;
import java.util.HashMap;
import org.jboss.cache.marshall.ObjectSerializationFactory;
import org.jboss.cache.CacheImpl;
import org.jboss.cache.DefaultCacheFactory;
import org.jboss.cache.Fqn;
import org.jboss.cache.misc.TestingUtil;
import org.jboss.cache.config.Configuration;
/**
* Unit tests for TransformingFileCacheLoader
*
* @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
*/
public class TransformingFileCacheLoaderTest extends TransformingCacheLoaderTestBase
{
private CacheImpl cache;
private String targetLoc;
@Override
protected void setUp() throws Exception
{
super.setUp(); //To change body of overridden methods use File | Settings | File Templates.
String targetDir = System.getProperty("java.io.tmpdir", "/tmp");
targetLoc = targetDir + "/filecacheloader-1x";
cache = createCache();
cache.getConfiguration().setCacheLoaderConfig(getSingleCacheLoaderConfig("",
"org.jboss.cache.loader.TransformingFileCacheLoaderTest$LegacyFileCacheLoader",
"location=" + targetLoc, false, true, false));
TestingUtil.recursiveFileRemove(targetLoc);
}
@Override
protected void tearDown() throws Exception
{
cache.stop();
cache.destroy();
TestingUtil.recursiveFileRemove(targetLoc);
}
public void testPutGetData() throws Exception
{
cache.start();
loadCache(cache);
cache.evict(Fqn.fromString("/"), true);
checkData(cache);
}
public static class LegacyFileCacheLoader extends TransformingFileCacheLoader
{
@Override
protected void marshall(Object obj, File to) throws Exception
{
FileOutputStream out = new FileOutputStream(to);
ObjectOutputStream output = new ObjectOutputStream(out);
output.writeObject(obj);
out.close();
}
}
}
1.1 date: 2007/03/07 23:32:06; author: gzamarreno; state: Exp;JBossCache/migration/tests/org/jboss/cache/loader/TransformingCacheLoaderTestBase.java
Index: TransformingCacheLoaderTestBase.java
===================================================================
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.cache.loader;
import org.jboss.cache.CacheImpl;
import org.jboss.cache.DefaultCacheFactory;
import org.jboss.cache.config.Configuration;
import java.util.HashMap;
/**
* Transforming cache loader test base.
*
* @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
*/
public class TransformingCacheLoaderTestBase extends AbstractCacheLoaderTestBase
{
private static final String CAPITAL = "capital";
private static final String CURRENCY = "currency";
private static final String POPULATION = "population";
private static final String AREA = "area";
private static final String EUROPE_NODE = "Europe";
protected CacheImpl createCache() throws Exception
{
CacheImpl cache = (CacheImpl) DefaultCacheFactory.getInstance().createCache(false);
Configuration c = new Configuration();
cache.setConfiguration(c);
c.setCacheMode(Configuration.CacheMode.LOCAL);
c.setTransactionManagerLookupClass("org.jboss.cache.transaction.DummyTransactionManagerLookup");
return cache;
}
protected void loadCache(CacheImpl cache) throws Exception
{
cache.put(EUROPE_NODE, new HashMap());
cache.put("Europe/Austria", new HashMap());
cache.put("Europe/Austria", CAPITAL, "Vienna");
cache.put("Europe/Austria", CURRENCY, "Euro");
cache.put("Europe/Austria", POPULATION, new Integer(8184691));
cache.put("Europe/England", new HashMap());
cache.put("Europe/England", CAPITAL, "London");
cache.put("Europe/England", CURRENCY, "British Pound");
cache.put("Europe/England", POPULATION, new Integer(60441457));
HashMap albania = new HashMap(4);
albania.put(CAPITAL, "Tirana");
albania.put(CURRENCY, "Lek");
albania.put(POPULATION, new Integer(3563112));
albania.put(AREA, new Integer(28748));
cache.put("Europe/Albania", albania);
HashMap hungary = new HashMap(4);
hungary.put(CAPITAL, "Budapest");
hungary.put(CURRENCY, "Forint");
hungary.put(POPULATION, new Integer(10006835));
hungary.put(AREA, new Integer(93030));
cache.put("Europe/Hungary", hungary);
}
protected void checkData(CacheImpl cache) throws Exception
{
assertEquals("Vienna", cache.get("Europe/Austria", CAPITAL));
assertEquals("Euro", cache.get("Europe/Austria", CURRENCY));
assertEquals(8184691, cache.get("Europe/Austria", POPULATION));
assertEquals("London", cache.get("Europe/England", CAPITAL));
assertEquals("British Pound", cache.get("Europe/England", CURRENCY));
assertEquals(60441457, cache.get("Europe/England", POPULATION));
assertEquals("Tirana", cache.get("Europe/Albania", CAPITAL));
assertEquals("Lek", cache.get("Europe/Albania", CURRENCY));
assertEquals(3563112, cache.get("Europe/Albania", POPULATION));
assertEquals(28748, cache.get("Europe/Albania", AREA));
assertEquals("Budapest", cache.get("Europe/Hungary", CAPITAL));
assertEquals("Forint", cache.get("Europe/Hungary", CURRENCY));
assertEquals(10006835, cache.get("Europe/Hungary", POPULATION));
assertEquals(93030, cache.get("Europe/Hungary", AREA));
}
}
More information about the jboss-cvs-commits
mailing list