From d19a00ddb6b08698ecbb357c7373610d600f9be4 Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Fri, 24 Jun 2011 13:26:21 +0900 Subject: [PATCH] Revert to xerial-core-1.0.21 for compiling with JDK5 --- pom.xml | 2 +- .../org/xerial/snappy/SnappyLoaderTest.java | 103 ++++++++---------- 2 files changed, 45 insertions(+), 60 deletions(-) diff --git a/pom.xml b/pom.xml index fb0b3aa..33125d1 100755 --- a/pom.xml +++ b/pom.xml @@ -229,7 +229,7 @@ org.xerial xerial-core - 2.0.2 + 1.0.21 jar test diff --git a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java index e72a3eb..c45500e 100755 --- a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java +++ b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java @@ -24,72 +24,57 @@ //-------------------------------------- package org.xerial.snappy; -import static org.junit.Assert.*; - -import java.io.File; -import java.io.FileOutputStream; -import java.security.ProtectionDomain; - -import javassist.ClassPool; -import javassist.CtClass; -import javassist.CtField; -import javassist.CtNewMethod; - -import org.codehaus.plexus.classworlds.ClassWorld; -import org.codehaus.plexus.classworlds.realm.ClassRealm; -import org.junit.Ignore; import org.junit.Test; -import org.xerial.util.FileResource; import org.xerial.util.log.Logger; public class SnappyLoaderTest { private static Logger _logger = Logger.getLogger(SnappyLoaderTest.class); - @Ignore - @Test - public void loadFromSytemClassLoader() throws Exception { - - ClassLoader parent = this.getClass().getClassLoader().getParent(); - ClassWorld cw = new ClassWorld(); - ClassRealm L1 = cw.newRealm("l1", parent); - ClassRealm L2 = cw.newRealm("l2", parent); - - File nativeLib = SnappyLoader.findNativeLibrary(); - assertNotNull(nativeLib); - - ClassPool pool = ClassPool.getDefault(); - CtClass cl = pool.makeClass("org.xerial.snappy.SnappyNativeLoader"); - cl.addField(CtField.make("static boolean isLoaded = false;", cl)); - String m1 = FileResource.loadIntoString(SnappyLoaderTest.class, "load.code"); - String m2 = FileResource.loadIntoString(SnappyLoaderTest.class, "loadLibrary.code"); - cl.addMethod(CtNewMethod.make(m1, cl)); - cl.addMethod(CtNewMethod.make(m2, cl)); - - ProtectionDomain systemPD = System.class.getProtectionDomain(); - byte[] bytecode = cl.toBytecode(); - FileOutputStream f = new FileOutputStream("src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode"); - f.write(bytecode); - f.close(); - - //Class< ? > loaderClass = cl.toClass(parent, System.class.getProtectionDomain()); - //_logger.info(cl.getName()); - //Class< ? > loaderClass = cl.toClass(); - - Class< ? > classLoader = Class.forName("java.lang.ClassLoader"); - java.lang.reflect.Method defineClass = classLoader.getDeclaredMethod("defineClass", new Class[] { String.class, - byte[].class, int.class, int.class, ProtectionDomain.class }); - - defineClass.setAccessible(true); - defineClass.invoke(parent, cl.getName(), bytecode, 0, bytecode.length, System.class.getProtectionDomain()); - - Class< ? > forName = parent.loadClass("org.xerial.snappy.SnappyNativeLoader"); - _logger.info(forName.toString()); - - //Class< ? > snappyClass = L1.loadClass("org.xerial.snappy.Snappy"); // not found - //_logger.info(snappyClass.getName()); - - } + // @Ignore + // @Test + // public void loadFromSytemClassLoader() throws Exception { + // + // ClassLoader parent = this.getClass().getClassLoader().getParent(); + // ClassWorld cw = new ClassWorld(); + // ClassRealm L1 = cw.newRealm("l1", parent); + // ClassRealm L2 = cw.newRealm("l2", parent); + // + // File nativeLib = SnappyLoader.findNativeLibrary(); + // assertNotNull(nativeLib); + // + // ClassPool pool = ClassPool.getDefault(); + // CtClass cl = pool.makeClass("org.xerial.snappy.SnappyNativeLoader"); + // cl.addField(CtField.make("static boolean isLoaded = false;", cl)); + // String m1 = FileResource.loadIntoString(SnappyLoaderTest.class, "load.code"); + // String m2 = FileResource.loadIntoString(SnappyLoaderTest.class, "loadLibrary.code"); + // cl.addMethod(CtNewMethod.make(m1, cl)); + // cl.addMethod(CtNewMethod.make(m2, cl)); + // + // ProtectionDomain systemPD = System.class.getProtectionDomain(); + // byte[] bytecode = cl.toBytecode(); + // FileOutputStream f = new FileOutputStream("src/main/resources/org/xerial/snappy/SnappyNativeLoader.bytecode"); + // f.write(bytecode); + // f.close(); + // + // //Class< ? > loaderClass = cl.toClass(parent, System.class.getProtectionDomain()); + // //_logger.info(cl.getName()); + // //Class< ? > loaderClass = cl.toClass(); + // + // Class< ? > classLoader = Class.forName("java.lang.ClassLoader"); + // java.lang.reflect.Method defineClass = classLoader.getDeclaredMethod("defineClass", new Class[] { String.class, + // byte[].class, int.class, int.class, ProtectionDomain.class }); + // + // defineClass.setAccessible(true); + // defineClass.invoke(parent, cl.getName(), bytecode, 0, bytecode.length, System.class.getProtectionDomain()); + // + // Class< ? > forName = parent.loadClass("org.xerial.snappy.SnappyNativeLoader"); + // _logger.info(forName.toString()); + // + // //Class< ? > snappyClass = L1.loadClass("org.xerial.snappy.Snappy"); // not found + // //_logger.info(snappyClass.getName()); + // + // } @Test public void load() throws Exception {