From 71346082068c765fa688b0070f9f6c31c546eb5e Mon Sep 17 00:00:00 2001 From: "Taro L. Saito" Date: Mon, 27 Jun 2011 10:29:58 +0900 Subject: [PATCH] Use SnappyNativeAPI as an interface to the native code --- src/main/java/org/xerial/snappy/Snappy.java | 44 +++++------ .../java/org/xerial/snappy/SnappyError.java | 5 ++ .../org/xerial/snappy/SnappyErrorCode.java | 2 +- .../org/xerial/snappy/SnappyException.java | 3 +- .../java/org/xerial/snappy/SnappyLoader.java | 47 +++++++----- .../java/org/xerial/snappy/SnappyNative.cpp | 29 +++---- .../java/org/xerial/snappy/SnappyNative.h | 20 ++--- .../java/org/xerial/snappy/SnappyNative.java | 34 ++++----- .../org/xerial/snappy/SnappyNativeAPI.java | 71 ++++++++++++++++++ .../native/Windows/amd64/snappyjava.dll | Bin 644608 -> 645120 bytes .../snappy/native/Windows/x86/snappyjava.dll | Bin 598528 -> 598528 bytes .../org/xerial/snappy/SnappyLoaderTest.java | 21 +++--- 12 files changed, 185 insertions(+), 91 deletions(-) create mode 100755 src/main/java/org/xerial/snappy/SnappyNativeAPI.java diff --git a/src/main/java/org/xerial/snappy/Snappy.java b/src/main/java/org/xerial/snappy/Snappy.java index efebec4..adee9b0 100755 --- a/src/main/java/org/xerial/snappy/Snappy.java +++ b/src/main/java/org/xerial/snappy/Snappy.java @@ -36,15 +36,16 @@ import java.nio.ByteBuffer; */ public class Snappy { + private static SnappyNativeAPI impl; static { - SnappyLoader.load(); + impl = SnappyLoader.load(); } /** * High-level API for compressing the input byte array. This method performs - * array copy to generate the result. If you want to save this cost, use - * {@link #compress(byte[], int, int, byte[], int)} or + * array copy to generate the result. If you want to reduce the memory copy + * cost, use {@link #compress(byte[], int, int, byte[], int)} or * {@link #compress(ByteBuffer, ByteBuffer)}. * * @param input @@ -99,7 +100,7 @@ public class Snappy // output: compressed int uPos = uncompressed.position(); int uLen = uncompressed.remaining(); - int compressedSize = SnappyNative.rawCompress(uncompressed, uPos, uLen, compressed, compressed.position()); + int compressedSize = impl.rawCompress(uncompressed, uPos, uLen, compressed, compressed.position()); // pos limit // [ ......BBBBBBB.........] @@ -152,7 +153,7 @@ public class Snappy * @return native library version */ public static String getNativeLibraryVersion() { - return SnappyNative.nativeLibraryVersion(); + return impl.nativeLibraryVersion(); } /** @@ -164,7 +165,7 @@ public class Snappy public static boolean isValidCompressedBuffer(byte[] input, int offset, int length) throws IOException { if (input == null) throw new NullPointerException("input is null"); - return SnappyNative.isValidCompressedBuffer(input, offset, length); + return impl.isValidCompressedBuffer(input, offset, length); } /** @@ -184,7 +185,7 @@ public class Snappy * factor of four faster than actual decompression. */ public static boolean isValidCompressedBuffer(ByteBuffer compressed) throws IOException { - return SnappyNative.isValidCompressedBuffer(compressed, compressed.position(), compressed.remaining()); + return impl.isValidCompressedBuffer(compressed, compressed.position(), compressed.remaining()); } /** @@ -196,7 +197,7 @@ public class Snappy * @return maximum byte size of the compressed data */ public static int maxCompressedLength(int byteSize) { - return SnappyNative.maxCompressedLength(byteSize); + return impl.maxCompressedLength(byteSize); } /** @@ -210,7 +211,7 @@ public class Snappy */ public static byte[] rawCompress(Object data, int byteSize) { byte[] buf = new byte[Snappy.maxCompressedLength(byteSize)]; - int compressedByteSize = SnappyNative.rawCompress(data, 0, byteSize, buf, 0); + int compressedByteSize = impl.rawCompress(data, 0, byteSize, buf, 0); byte[] result = new byte[compressedByteSize]; System.arraycopy(buf, 0, result, 0, compressedByteSize); return result; @@ -238,7 +239,7 @@ public class Snappy if (input == null || output == null) throw new NullPointerException("input or output is null"); - int compressedSize = SnappyNative.rawCompress(input, inputOffset, inputLength, output, outputOffset); + int compressedSize = impl.rawCompress(input, inputOffset, inputLength, output, outputOffset); return compressedSize; } @@ -269,7 +270,7 @@ public class Snappy throws IOException { if (input == null || output == null) throw new NullPointerException("input or output is null"); - return SnappyNative.rawUncompress(input, inputOffset, inputLength, output, outputOffset); + return impl.rawUncompress(input, inputOffset, inputLength, output, outputOffset); } /** @@ -341,8 +342,7 @@ public class Snappy // pos limit // [ ......UUUUUU.........] - int decompressedSize = SnappyNative - .rawUncompress(compressed, cPos, cLen, uncompressed, uncompressed.position()); + int decompressedSize = impl.rawUncompress(compressed, cPos, cLen, uncompressed, uncompressed.position()); uncompressed.limit(uncompressed.position() + decompressedSize); return decompressedSize; @@ -355,14 +355,14 @@ public class Snappy public static char[] uncompressCharArray(byte[] input, int offset, int length) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, offset, length); char[] result = new char[uncompressedLength / 2]; - int byteSize = SnappyNative.rawUncompress(input, offset, length, result, 0); + int byteSize = impl.rawUncompress(input, offset, length, result, 0); return result; } public static double[] uncompressDoubleArray(byte[] input) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, 0, input.length); double[] result = new double[uncompressedLength / 8]; - int byteSize = SnappyNative.rawUncompress(input, 0, input.length, result, 0); + int byteSize = impl.rawUncompress(input, 0, input.length, result, 0); return result; } @@ -377,7 +377,7 @@ public class Snappy * {@link SnappyErrorCode#PARSING_ERROR} */ public static int uncompressedLength(byte[] input) throws IOException { - return SnappyNative.uncompressedLength(input, 0, input.length); + return impl.uncompressedLength(input, 0, input.length); } /** @@ -396,7 +396,7 @@ public class Snappy if (input == null) throw new NullPointerException("input is null"); - return SnappyNative.uncompressedLength(input, offset, length); + return impl.uncompressedLength(input, offset, length); } public static class CompressedDataLength @@ -473,7 +473,7 @@ public class Snappy if (!compressed.isDirect()) throw new SnappyError(SnappyErrorCode.NOT_A_DIRECT_BUFFER, "input is not a direct buffer"); - return SnappyNative.uncompressedLength(compressed, compressed.position(), compressed.remaining()); + return impl.uncompressedLength(compressed, compressed.position(), compressed.remaining()); } public static float[] uncompressFloatArray(byte[] input) throws IOException { @@ -483,7 +483,7 @@ public class Snappy public static float[] uncompressFloatArray(byte[] input, int offset, int length) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, offset, length); float[] result = new float[uncompressedLength / 4]; - int byteSize = SnappyNative.rawUncompress(input, offset, length, result, 0); + int byteSize = impl.rawUncompress(input, offset, length, result, 0); return result; } @@ -494,7 +494,7 @@ public class Snappy public static int[] uncompressIntArray(byte[] input, int offset, int length) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, offset, length); int[] result = new int[uncompressedLength / 4]; - int byteSize = SnappyNative.rawUncompress(input, offset, length, result, 0); + int byteSize = impl.rawUncompress(input, offset, length, result, 0); return result; } @@ -505,7 +505,7 @@ public class Snappy public static long[] uncompressLongArray(byte[] input, int offset, int length) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, offset, length); long[] result = new long[uncompressedLength / 8]; - int byteSize = SnappyNative.rawUncompress(input, offset, length, result, 0); + int byteSize = impl.rawUncompress(input, offset, length, result, 0); return result; } @@ -516,7 +516,7 @@ public class Snappy public static short[] uncompressShortArray(byte[] input, int offset, int length) throws IOException { int uncompressedLength = Snappy.uncompressedLength(input, offset, length); short[] result = new short[uncompressedLength / 2]; - int byteSize = SnappyNative.rawUncompress(input, offset, length, result, 0); + int byteSize = impl.rawUncompress(input, offset, length, result, 0); return result; } diff --git a/src/main/java/org/xerial/snappy/SnappyError.java b/src/main/java/org/xerial/snappy/SnappyError.java index 3646649..55ae718 100755 --- a/src/main/java/org/xerial/snappy/SnappyError.java +++ b/src/main/java/org/xerial/snappy/SnappyError.java @@ -39,6 +39,11 @@ public class SnappyError extends Error public final SnappyErrorCode errorCode; + public SnappyError(SnappyErrorCode code) { + super(); + this.errorCode = code; + } + public SnappyError(SnappyErrorCode code, Error e) { super(e); this.errorCode = code; diff --git a/src/main/java/org/xerial/snappy/SnappyErrorCode.java b/src/main/java/org/xerial/snappy/SnappyErrorCode.java index 9784159..e3e520a 100755 --- a/src/main/java/org/xerial/snappy/SnappyErrorCode.java +++ b/src/main/java/org/xerial/snappy/SnappyErrorCode.java @@ -32,7 +32,7 @@ package org.xerial.snappy; */ public enum SnappyErrorCode { - // DO NOT change the id of the error codes since these IDs are also used in SnappyNative.cpp + // DO NOT change these error code IDs because these numbers are used inside SnappyNative.cpp UNKNOWN(0), FAILED_TO_LOAD_NATIVE_LIBRARY(1), PARSING_ERROR(2), diff --git a/src/main/java/org/xerial/snappy/SnappyException.java b/src/main/java/org/xerial/snappy/SnappyException.java index 86fa592..d5e13a3 100755 --- a/src/main/java/org/xerial/snappy/SnappyException.java +++ b/src/main/java/org/xerial/snappy/SnappyException.java @@ -34,7 +34,7 @@ import java.io.IOException; * */ @Deprecated -public class SnappyException extends Exception +public class SnappyException extends IOException { private static final long serialVersionUID = 1L; @@ -45,6 +45,7 @@ public class SnappyException extends Exception } public SnappyException(SnappyErrorCode errorCode) { + super(); this.errorCode = errorCode; } diff --git a/src/main/java/org/xerial/snappy/SnappyLoader.java b/src/main/java/org/xerial/snappy/SnappyLoader.java index 5cd70d5..22d96e1 100755 --- a/src/main/java/org/xerial/snappy/SnappyLoader.java +++ b/src/main/java/org/xerial/snappy/SnappyLoader.java @@ -81,14 +81,15 @@ import java.util.Properties; */ public class SnappyLoader { - private static boolean isInitialized = false; - private static boolean isLoaded = false; + private static boolean isInitialized = false; + private static boolean isLoaded = false; + private static SnappyNativeAPI api = null; - private static ClassLoader getAncestorClassLoader() { + private static ClassLoader getRootClassLoader() { ClassLoader cl = SnappyLoader.class.getClassLoader(); - // while (cl.getParent() != null) { - // cl = cl.getParent(); - // } + while (cl.getParent() != null) { + cl = cl.getParent(); + } return cl; } @@ -111,21 +112,22 @@ public class SnappyLoader return isLoaded; } - static void load() { + static SnappyNativeAPI load() { if (isInitialized) - return; + return api; isInitialized = true; final String nativeLoaderClassName = "org.xerial.snappy.SnappyNativeLoader"; - final String[] classesToPreload = new String[] { "org.xerial.snappy.SnappyNative", - "org.xerial.snappy.SnappyErrorCode" }; + final String[] classesToPreload = new String[] { "org.xerial.snappy.SnappyNativeAPI", + "org.xerial.snappy.SnappyNative", "org.xerial.snappy.SnappyErrorCode" }; try { - Class.forName(nativeLoaderClassName); + Class< ? > c = Class.forName(nativeLoaderClassName); // If this native loader class is already defined, it means that another class loader already loaded the native library of snappy + api = (SnappyNativeAPI) Class.forName("org.xerial.snappy.SnappyNative").newInstance(); isLoaded = true; - return; + return api; } catch (ClassNotFoundException e) { try { @@ -142,18 +144,19 @@ public class SnappyLoader Method defineClass = classLoader.getDeclaredMethod("defineClass", new Class[] { String.class, byte[].class, int.class, int.class, ProtectionDomain.class }); - ClassLoader systemClassLoader = getAncestorClassLoader(); + // Use parent class loader to load SnappyNative, since Tomcat, which uses different class loaders for each webapps, cannot load JNI interface twice + ClassLoader systemClassLoader = getRootClassLoader(); + ProtectionDomain pd = System.class.getProtectionDomain(); + // ClassLoader.defineClass is a protected method, so we have to make it accessible defineClass.setAccessible(true); try { // Create a new class using a ClassLoader#defineClass - defineClass.invoke(systemClassLoader, nativeLoaderClassName, byteCode, 0, byteCode.length, - System.class.getProtectionDomain()); + defineClass.invoke(systemClassLoader, nativeLoaderClassName, byteCode, 0, byteCode.length, pd); for (int i = 0; i < classesToPreload.length; ++i) { byte[] b = preloadClassByteCode.get(i); - defineClass.invoke(systemClassLoader, classesToPreload[i], b, 0, b.length, - System.class.getProtectionDomain()); + defineClass.invoke(systemClassLoader, classesToPreload[i], b, 0, b.length, pd); } } finally { @@ -182,13 +185,23 @@ public class SnappyLoader systemClassLoader.loadClass(each); } isLoaded = true; + + api = (SnappyNativeAPI) Class.forName("org.xerial.snappy.SnappyNative").newInstance(); + return api; } } + catch (ClassNotFoundException ee) { + throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY, ee.getMessage()); + } catch (Exception e2) { throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY, e.getMessage()); } } + catch (Exception e) { + throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY, e.getMessage()); + } + throw new SnappyError(SnappyErrorCode.FAILED_TO_LOAD_NATIVE_LIBRARY); } public static final String KEY_SNAPPY_LIB_PATH = "org.xerial.snappy.lib.path"; diff --git a/src/main/java/org/xerial/snappy/SnappyNative.cpp b/src/main/java/org/xerial/snappy/SnappyNative.cpp index 32b5e89..78158ba 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.cpp +++ b/src/main/java/org/xerial/snappy/SnappyNative.cpp @@ -17,17 +17,20 @@ #include #include "SnappyNative.h" -void throw_exception(JNIEnv *env, jclass self, int errorCode) +void throw_exception(JNIEnv *env, jobject self, int errorCode) { - jmethodID mth_throwex = env->GetStaticMethodID(self, "throw_error", "(I)V"); + jclass c = env->FindClass("Lorg/xerial/snappy/SnappyNative;"); + if(c==0) + return; + jmethodID mth_throwex = env->GetMethodID(c, "throw_error", "(I)V"); if(mth_throwex == 0) return; - env->CallStaticVoidMethod(self, mth_throwex, (jint) errorCode); + env->CallVoidMethod(self, mth_throwex, (jint) errorCode); } JNIEXPORT jstring JNICALL Java_org_xerial_snappy_SnappyNative_nativeLibraryVersion - (JNIEnv * env, jclass self) + (JNIEnv * env, jobject self) { return env->NewStringUTF("1.0.3"); } @@ -38,7 +41,7 @@ JNIEXPORT jstring JNICALL Java_org_xerial_snappy_SnappyNative_nativeLibraryVersi * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)J */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_nio_ByteBuffer_2IILjava_nio_ByteBuffer_2I - (JNIEnv* env, jclass self, jobject uncompressed, jint upos, jint ulen, jobject compressed, jint cpos) + (JNIEnv* env, jobject self, jobject uncompressed, jint upos, jint ulen, jobject compressed, jint cpos) { char* uncompressedBuffer = (char*) env->GetDirectBufferAddress(uncompressed); char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed); @@ -54,7 +57,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_ni JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_lang_Object_2IILjava_lang_Object_2I - (JNIEnv * env, jclass self, jobject input, jint inputOffset, jint inputLen, jobject output, jint outputOffset) + (JNIEnv * env, jobject self, jobject input, jint inputOffset, jint inputLen, jobject output, jint outputOffset) { char* in = (char*) env->GetPrimitiveArrayCritical((jarray) input, 0); char* out = (char*) env->GetPrimitiveArrayCritical((jarray) output, 0); @@ -74,7 +77,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_la } JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_lang_Object_2IILjava_lang_Object_2I -(JNIEnv * env, jclass self, jobject input, jint inputOffset, jint inputLength, jobject output, jint outputOffset) +(JNIEnv * env, jobject self, jobject input, jint inputOffset, jint inputLength, jobject output, jint outputOffset) { char* in = (char*) env->GetPrimitiveArrayCritical((jarray) input, 0); char* out = (char*) env->GetPrimitiveArrayCritical((jarray) output, 0); @@ -106,7 +109,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Z */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_nio_ByteBuffer_2IILjava_nio_ByteBuffer_2I - (JNIEnv * env, jclass self, jobject compressed, jint cpos, jint clen, jobject decompressed, jint dpos) + (JNIEnv * env, jobject self, jobject compressed, jint cpos, jint clen, jobject decompressed, jint dpos) { char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed); char* decompressedBuffer = (char*) env->GetDirectBufferAddress(decompressed); @@ -135,7 +138,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_maxCompressedLength - (JNIEnv *, jclass, jint size) + (JNIEnv *, jobject, jint size) { size_t l = snappy::MaxCompressedLength((size_t) size); return (jint) l; @@ -147,7 +150,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_maxCompressedLength * Signature: (Ljava/nio/ByteBuffer;)J */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__Ljava_nio_ByteBuffer_2II - (JNIEnv * env, jclass self, jobject compressed, jint cpos, jint clen) + (JNIEnv * env, jobject self, jobject compressed, jint cpos, jint clen) { char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed); if(compressedBuffer == 0) { @@ -165,7 +168,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__L } JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__Ljava_lang_Object_2II - (JNIEnv * env, jclass self, jobject input, jint offset, jint length) + (JNIEnv * env, jobject self, jobject input, jint offset, jint length) { char* in = (char*) env->GetPrimitiveArrayCritical((jarray) input, 0); if(in == 0) { @@ -187,7 +190,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__L } JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressedBuffer__Ljava_nio_ByteBuffer_2II - (JNIEnv * env, jclass self, jobject compressed, jint cpos, jint clen) + (JNIEnv * env, jobject self, jobject compressed, jint cpos, jint clen) { char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed); if(compressedBuffer == 0) { @@ -200,7 +203,7 @@ JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressed JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressedBuffer__Ljava_lang_Object_2II - (JNIEnv * env, jclass self, jobject input, jint offset, jint length) + (JNIEnv * env, jobject self, jobject input, jint offset, jint length) { char* in = (char*) env->GetPrimitiveArrayCritical((jarray) input, 0); if(in == 0) { diff --git a/src/main/java/org/xerial/snappy/SnappyNative.h b/src/main/java/org/xerial/snappy/SnappyNative.h index 5b08836..4ae4fda 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.h +++ b/src/main/java/org/xerial/snappy/SnappyNative.h @@ -13,7 +13,7 @@ extern "C" { * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_org_xerial_snappy_SnappyNative_nativeLibraryVersion - (JNIEnv *, jclass); + (JNIEnv *, jobject); /* * Class: org_xerial_snappy_SnappyNative @@ -21,7 +21,7 @@ JNIEXPORT jstring JNICALL Java_org_xerial_snappy_SnappyNative_nativeLibraryVersi * Signature: (Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;I)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_nio_ByteBuffer_2IILjava_nio_ByteBuffer_2I - (JNIEnv *, jclass, jobject, jint, jint, jobject, jint); + (JNIEnv *, jobject, jobject, jint, jint, jobject, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -29,7 +29,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_ni * Signature: (Ljava/lang/Object;IILjava/lang/Object;I)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_lang_Object_2IILjava_lang_Object_2I - (JNIEnv *, jclass, jobject, jint, jint, jobject, jint); + (JNIEnv *, jobject, jobject, jint, jint, jobject, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -37,7 +37,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawCompress__Ljava_la * Signature: (Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;I)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_nio_ByteBuffer_2IILjava_nio_ByteBuffer_2I - (JNIEnv *, jclass, jobject, jint, jint, jobject, jint); + (JNIEnv *, jobject, jobject, jint, jint, jobject, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -45,7 +45,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ * Signature: (Ljava/lang/Object;IILjava/lang/Object;I)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_lang_Object_2IILjava_lang_Object_2I - (JNIEnv *, jclass, jobject, jint, jint, jobject, jint); + (JNIEnv *, jobject, jobject, jint, jint, jobject, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -53,7 +53,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_rawUncompress__Ljava_ * Signature: (I)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_maxCompressedLength - (JNIEnv *, jclass, jint); + (JNIEnv *, jobject, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -61,7 +61,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_maxCompressedLength * Signature: (Ljava/nio/ByteBuffer;II)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__Ljava_nio_ByteBuffer_2II - (JNIEnv *, jclass, jobject, jint, jint); + (JNIEnv *, jobject, jobject, jint, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -69,7 +69,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__L * Signature: (Ljava/lang/Object;II)I */ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__Ljava_lang_Object_2II - (JNIEnv *, jclass, jobject, jint, jint); + (JNIEnv *, jobject, jobject, jint, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -77,7 +77,7 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_uncompressedLength__L * Signature: (Ljava/nio/ByteBuffer;II)Z */ JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressedBuffer__Ljava_nio_ByteBuffer_2II - (JNIEnv *, jclass, jobject, jint, jint); + (JNIEnv *, jobject, jobject, jint, jint); /* * Class: org_xerial_snappy_SnappyNative @@ -85,7 +85,7 @@ JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressed * Signature: (Ljava/lang/Object;II)Z */ JNIEXPORT jboolean JNICALL Java_org_xerial_snappy_SnappyNative_isValidCompressedBuffer__Ljava_lang_Object_2II - (JNIEnv *, jclass, jobject, jint, jint); + (JNIEnv *, jobject, jobject, jint, jint); #ifdef __cplusplus } diff --git a/src/main/java/org/xerial/snappy/SnappyNative.java b/src/main/java/org/xerial/snappy/SnappyNative.java index d97b3b3..2eda87a 100755 --- a/src/main/java/org/xerial/snappy/SnappyNative.java +++ b/src/main/java/org/xerial/snappy/SnappyNative.java @@ -28,47 +28,47 @@ import java.io.IOException; import java.nio.ByteBuffer; /** - * Interface to access the native code of Snappy. Although the methods in this - * class are public, do not use them. + * JNI interface of the {@link SnappyNativeAPI} implementation. The native + * method in this class is defined in SnappyNative.h (genereted by javah) and + * SnappyNative.cpp * * * @author leo * */ -public class SnappyNative +public class SnappyNative implements SnappyNativeAPI { - public native static String nativeLibraryVersion(); + public native String nativeLibraryVersion(); // ------------------------------------------------------------------------ // Generic compression/decompression routines. // ------------------------------------------------------------------------ - public native static int rawCompress(ByteBuffer input, int inputOffset, int inputLength, ByteBuffer compressed, + public native int rawCompress(ByteBuffer input, int inputOffset, int inputLength, ByteBuffer compressed, int outputOffset) throws IOException; - public native static int rawCompress(Object input, int inputOffset, int inputByteLength, Object output, - int outputOffset); + public native int rawCompress(Object input, int inputOffset, int inputByteLength, Object output, int outputOffset); - public native static int rawUncompress(ByteBuffer compressed, int inputOffset, int inputLength, - ByteBuffer uncompressed, int outputOffset) throws IOException; - - public native static int rawUncompress(Object input, int inputOffset, int inputLength, Object output, + public native int rawUncompress(ByteBuffer compressed, int inputOffset, int inputLength, ByteBuffer uncompressed, int outputOffset) throws IOException; + public native int rawUncompress(Object input, int inputOffset, int inputLength, Object output, int outputOffset) + throws IOException; + // Returns the maximal size of the compressed representation of // input data that is "source_bytes" bytes in length; - public native static int maxCompressedLength(int source_bytes); + public native int maxCompressedLength(int source_bytes); // This operation takes O(1) time. - public native static int uncompressedLength(ByteBuffer compressed, int offset, int len) throws IOException; + public native int uncompressedLength(ByteBuffer compressed, int offset, int len) throws IOException; - public native static int uncompressedLength(Object input, int offset, int len) throws IOException; + public native int uncompressedLength(Object input, int offset, int len) throws IOException; - public native static boolean isValidCompressedBuffer(ByteBuffer compressed, int offset, int len) throws IOException; + public native boolean isValidCompressedBuffer(ByteBuffer compressed, int offset, int len) throws IOException; - public native static boolean isValidCompressedBuffer(Object input, int offset, int len) throws IOException; + public native boolean isValidCompressedBuffer(Object input, int offset, int len) throws IOException; - protected static void throw_error(int errorCode) throws IOException { + public void throw_error(int errorCode) throws IOException { throw new IOException(String.format("%s(%d)", SnappyErrorCode.getErrorMessage(errorCode), errorCode)); } diff --git a/src/main/java/org/xerial/snappy/SnappyNativeAPI.java b/src/main/java/org/xerial/snappy/SnappyNativeAPI.java new file mode 100755 index 0000000..5726e63 --- /dev/null +++ b/src/main/java/org/xerial/snappy/SnappyNativeAPI.java @@ -0,0 +1,71 @@ +/*-------------------------------------------------------------------------- + * Copyright 2011 Taro L. Saito + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *--------------------------------------------------------------------------*/ +//-------------------------------------- +// snappy-java Project +// +// SnappyNative.java +// Since: 2011/03/30 +// +// $URL$ +// $Author$ +//-------------------------------------- +package org.xerial.snappy; + +import java.io.IOException; +import java.nio.ByteBuffer; + +/** + * Interface to access the native code of Snappy. + * + * + * @author leo + * + */ +public interface SnappyNativeAPI +{ + + public String nativeLibraryVersion(); + + // ------------------------------------------------------------------------ + // Generic compression/decompression routines. + // ------------------------------------------------------------------------ + public int rawCompress(ByteBuffer input, int inputOffset, int inputLength, ByteBuffer compressed, int outputOffset) + throws IOException; + + public int rawCompress(Object input, int inputOffset, int inputByteLength, Object output, int outputOffset); + + public int rawUncompress(ByteBuffer compressed, int inputOffset, int inputLength, ByteBuffer uncompressed, + int outputOffset) throws IOException; + + public int rawUncompress(Object input, int inputOffset, int inputLength, Object output, int outputOffset) + throws IOException; + + // Returns the maximal size of the compressed representation of + // input data that is "source_bytes" bytes in length; + public int maxCompressedLength(int source_bytes); + + // This operation takes O(1) time. + public int uncompressedLength(ByteBuffer compressed, int offset, int len) throws IOException; + + public int uncompressedLength(Object input, int offset, int len) throws IOException; + + public boolean isValidCompressedBuffer(ByteBuffer compressed, int offset, int len) throws IOException; + + public boolean isValidCompressedBuffer(Object input, int offset, int len) throws IOException; + + public void throw_error(int errorCode) throws IOException; + +} diff --git a/src/main/resources/org/xerial/snappy/native/Windows/amd64/snappyjava.dll b/src/main/resources/org/xerial/snappy/native/Windows/amd64/snappyjava.dll index 1ef05cdb9fb811438633408f811c7ca329ccbd23..7ca46eea95a2505e80029fc2fdc30eb2aad75795 100755 GIT binary patch delta 50896 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 delta 73088 zcmc${3tUuH_cuO!&V@liQ9)2q2N*6YDk_$DQAABq@s^gDbTY%z!bGFA!0-YAijBGT z$qI`K^Dfq)Y2h6UmCQ;_6HRmQlA2mt7XRi4|A_x=0%EZ23fz4rC&z0W>F z+HOnQZcA>4G}%L5oHayhuhd!m{X@q1p^F2WS^Kcw%-cGL4P$xMuUIH6v)*P`SbSlH zF_N*~))sPmR^K{Qe#rMgF*EE_3|GT61ODxkErjf!Ti40m+1J(!a<8~pSj;Pak4%!a zeWW(L=LKfvoex8`dBw@znX@gXef=!55t__MOJ!O5B@g>wKfz7c3P>DUrfcmn))d9e z&RUl%!Hpa4V1^NJ@gya0loqOG$`-p~J)*R2dkDFbsx_$|bf|Vhn10Cwu{$EY^?ayS zS+;*yQMR?6>fd-il*6G4rWAu6DPFWDs7<=$#{_5>&*zTLJeL(?+Gp@P9;)r%HK~d> zxbj~6cU9S0H>%OhV7;jhN)-pA z)4;*_&BE61vCR0%c`m3^11l7;)-k>T5RaRC~5TUgw zFXmHsOhW;N9I>}vj%asgrW;HKL)MTZ6)WMkx-0_|phY~frX*w!f3kH)-IjHh3|9>o z%P-pPS=I}6ht%8ARFAC>N@tI<#(2zkZ|e}PwI1=f>K@rdH`r`F;2FSBIL{`=TLY|h z>P5JJ=I1DvHM(9`=5KwuUQ6R0Z|mFjTCfw=?e(5_-|wp%JY?-szi*va9Nb@i*17eI zSiH5Tmp{hcqxe72`hwSJ_wdHL`5NmtUaz>n@1t|U*7yd~+}k*~)z)tttg7>(x30VG zW6f;X)%^hn`-%0-hMQP3>nn}?jepg*u4vSZowgP=>dD@-{@Q4S`-X;ks))kj-oDH| zw}H-jS*Q8*3OKo*8SKRaTzkU<59__*cL}QZtz|wf~8V zulVH;nBDA;1QAF;W**j@#$jzghseH_G=8{VaeckqQ7FH? zx3#}-Qlq{O(M~UvA&s1rS@-+4WE-p%zTqs@+So6b{cQcvZ@GJsr=GZr^`RymyELzJ zZ&nxc>}R4;kg7p7c7$Fme*@}nA5`|8*1{$quxAP%Z92lpE?L+5`+6N&pc=AbN-E5T?{La?it`#K4CJ%1 zdcy8W6SjI)p(kdZw^_44cA~OUOx_fRSJrq_)(j6Z1$(5WhiaILP4j>=lTmz3$GN-l zID{R#fN$1lugp;vkIYcmIP`YU0%pj0@)pJ6^0dkF+85)o*g7~Y(a8R?ejFBP^sKZV z3wxD4VvTS06brEKZZ)^L*Qv_NtQa%9MbmXwj31DkHTp=Vx5YmEwsm}~rqqMR^)}hmFO&}_t zDDqPAAEL;2MJ`d~p<+H!W!8j<;cTFFQ^Y%LfOSNNM_Fm%+77E3i?cq`X&rl{&=h%! zvBW}q=R=H1g+&iOBs2FyV~@XB{XmXqT})nPOfHSo*RAz?ec&ZzL-I0*?apk zy?Xf+9`9AxXl%``^~bej0}9>xJRun`EVWMQ*Mb=fv-*W7>|1NSab{D+QmO{8OV)aQ zh8jQnlw|Ci!oh>WjJn&ZtXjTAZmr8=Uqj%}^lMpXA|k0jH=_~O0$zOvSgk|WF+*YB zp`Gfm*M*n-LOyn;k-aaNt=9JA4zd>oy|}Ptd>g4o)B~RqQ9n1~jEOZb9Fb@-GPUr9 zr(0RrbJmp$Tdj_FxltxrwecIo+h!h!e>gn8Jk_0w!f~#rdqR07qV@I%?|i7 zqy0bD$b%oFK`$I!AhA;G^M@l@zV*YyVJy*FhW~S|w-2{R%2r=*XRN63{EJ% z%IgV*UPqg|u{G9qr+UNS*;D_K(IMQ=zR_sVID;W)l%-kvnX5T{TBMg>wRb7pcs55e z-sxeDvJY?%_yN-vriBV?uDw0mVlB4&vX$1O_GL24W3VPwyw{=_Yh(M-6Ew(WES}>q zUDTiZJG8VYJ7Dc_!PjX2uyD|YV1_w9>0$-*vp#yMN8h}kL$$W_U-~V#eM$mSp;`>D z98bSh_frzT5|-7I@Vv?yEwVc26ZPv1?<~&(qV~_I^XVGv(Mus%^H*N#=8;x_82-W& zVa^|U)|kufAWpvgB>q2sxf6@E*84d&diL%RE&Y$mW!u#+Y>gm<38V(Ru^Pm=+jf?J34c~jU`*2Ok+DtlcqUfN)* zGo5|JjJG!NPmW3Y#c;V5IqD#_v+9Ea`Io(*qCM&4E$KGJw*h73dp(uXj4VKO__}Hav zSo0M~jIg8TOtJJc7@{Q9(!B4mC_h$wG&qm%Udl!zK~v6VvL$>mXFvKbK>}1=GFEbx zF!Edm{;0BoXDwqEQ$Cmzkq5eP+cGwSlqMd!?<{Dt5+XyisTi z+{Df{WbL@y9%g2tJZukDq;23HR%!H{(etlLbo3q#(a|gTs1i1)i3tl2h@u)`1kFDu z(^EbkL&H9w+e%pTpbT9dOQQJhNUh{Q6{-!?rBg`S-}YMxn<5+U%%v{Q#~fr)t#5r7 zs_n1v{Z@8t{lxxJ2zQCCAQleZSUBvH!uXDZETl=;QL_I$#cA){awaZ4#JqhHNn0af z25)tUh49LQOy#2wu|}+fPlf;}_Ym`KRdR+Lx_#qxC;|{d-H$Va5?+QJbn_Y-;lXy~ zZV%kEjE!>ZLPO<}7f(CJn)7*OtZ##q@AZ{W;^hG90kVl7Eo0-^K>om27|{dy;jh?I zpvi}s1!&=6A#DA%5bpSz`8EwZrH{t4AB={a=rDQ&zkI}Kpc?w+Yu1j1@qi<&4bYGy z%nxYN5fnCz=RjDM_Ug&1v~PW_r#-Bj-9Ey`qF0aj2Ki?2pT9xA85B$lw`+AJWRk%@ z`c|m=e;~Ved8l0rsuyr}f@{Gt3rjg!3 z7IbFGgodG&aI|^SzGw^Iaf|^_TFBGi;pEZsq47 zW{qurKeDSHYz=q6$|8+7vv}{TEPxgA$FH&=_C23RXeVEFm9=O2{Mc1I5LWOe*H~}Q z&GV|pO3_it@^c9>#EH{An(CuV;Lk@QixK=LuKTGcF^XUf=iz%eFP~GA{CD5q!?; zN>Bb%bK^Qpti%7K^s^mnVXV(sds{_I<7aB>ge+=;LoF*SF=I}`E-bm@q@Ete89VmH zn4T26LWeH>7E2D9lzz)N<9+C&gpTVv@FN7jpo;G%_!p}9c7lJZiVqX~m~K^qSRoit z#YYPM!79GL;6tnUv9^RzW3C(P$FH?B7Q6Mcp;N}m{B(q|DL>ram@kur{}5qp&Uu6} zA9g)D7=A) z{TUpYK_3Wxu5D+Oalet}+OngK_AK|j9b&$cy=^ZaG9Hp#_|ab*54!T<-x>G0@^_9K z2mA6~!IFu2+v0vPekwT`?_Z7EtC-`rjfGXr(m#!ly0h7~YpS$Bc8~hZkvE@HSNht8 z9q$3QI4wHI!}}UCbBz++}{+M=Evo_KB}F z)Ww^ppVR=$a9hhJ(qz?r_Ch`6>3nfZ>8$&72RoI&VwQe&pXy*I+FlNjJ~8@{dW$>8 zMAmli%F4>?`4z))%JbPoKG-5%cgbTwuyj*$kFBbXm{!tx7q)Y2={%3{6cruZM%vDt z6@4+BDyBN!`|YFwPTkFR(vww&Pee%9j4p=bJ5?L5?Ie}EI$7FT8tQa%xwF)sVNurn zLFuy5ePgCx_yT^iyENGLST|`VbGJE!8%cP@z1YFpY~S>dR=PPIrS_A4bL~8-1Em$l z>Kfpd!Dy4J{$NWUERCrO{z$A;-{^3}FAarZRf#|BF-&4?imhjyBuQ8$_8BR~RC~28 z8Y$s15NC^cSo%xBDtqGwCBe2RUK-}wJ)CEjk}kQL zUr3Z@JEO5Z_l&gJh&kJwA_drDo|P6Tyj{H1n4elG591!GNZvbH%Bm{K*E6J8BTKWv ze1Xd6PjXn=VEJs7&-6J`SGl?ne9t_o8;ks8K57Izfw2pu&DBbqPloiU(Ren;HtjX3 zEtd8ir6ds&LU~7 zi_h`7>!;%vc~CH|549k}uoFn=X+eS($Cv5~=lF8Y8$;a00KT;UO)34u~(g|n3XtjbWKg{;U+meYIq3&9#C-+(@4Z&*u zv6WIbn`pbZQYw}BcMF}B<^O>+h~b&{)Q8eFr<=zM;Kq0~gMaz9)YBHVTKa++FJ*9# zwNfTF4RF+pA6Y96W!@a#dfT*hQjSzz{~Rvs+9qt0u$$Uxd#6xZXJj%T`iXSZP0q&j z`QmEcr$|cS@7tuO@zC@tl3GLGy-2cyvuq*GHf)Qun6XW^(_5t|25sOr=~<@P7H^Zr z!I|yyXOfY`S3j3t1v|Z1@+-e+8!yF)p?6DZ}Fzl zkjsbNkg`AYEkS3Ox!-;%oxR0Z?3b3YO}z6Lm;*NP^Iu2_$bR6L(l5;O5G4#)inW() zIm8DXkkZ&8UUEQMp=*9yA~c)$w1cRq4Bq3A^bE_e6&#YhCHUBWSc;LlbRi#$GhrE1 zf*H)PwH`g&_gD15LTM#k-(GW=**^IW zp`iQ^9+Ub~wY>Db^e00lrks>o>vjF-T<%#R&E~;BNY6vD><6dfWIAtqL3)w*JteI} z%4?^jj;yr^GU*i~tvy71hc7NbaQ>qFuj&C2{m2}?@shNgH#j3b2CqqHq{fYe(Kl(; zMxJS8)SNf1ke=hgKT6NL3HNtq@wb1FEP8k+U*T=9NW-|_S?NVxQV-+jiu5?YeO8)> z#z{RVVav^veiD7;&7TC9eO~kt+j+@Cr9EL6O1BE>2Dm#FLK%7i0~iGxeGvt-h@3s9 z*IKacGxeBlt1n?d>2**%tya@%GpdWXD%nxIpQY23?av~J&@0kGg#GIk>5^Wa?bG?>k z_8<4yg#EiR_d$+auH2HEVBzn6TWWisOp|WP%^RQYT3e=k?QO}o`#)xa&~OqwzO~Un z$9Sh({#l74jk%HKSz@caEk(0VqA<~>tSHDtNn$0_N>Ox4$V#Ym9@4&OaWJL_KI0E5 zBvK@dGi8mqk=0xzjQ28S`G}NWLMT%Dd+m$TQ%0f4wnKkNy@E|1Cr~y0O=j*BAO}&= zy9LNkR7>9vkS!$rGC+Q#5!s@qtMWHNF+EVW=!!T~m3t^`9|g+On}@^-_i_Rd?U1l* zrQ@KO>v-|3zZcloUxt_HC|NT(ZTZ?LxjAK88YL%tkTfS+My8O&_K|~hNt}$_kj<<< za-@u%&W0FyliOz6FZA^1Lk7rC@`L^5;YNEp4;UcRR%pNgc^k3HKw@oe2Fgz`%%Y1P zlFf|L50al@4Q>8|<=#fH@k8XZKz)YFX)xY7RCdR+*j5@x#zD5r!{r2EK6Ip91lDbo zoXgk{+p^K{fmHGsc@_?R(#FU+*ca6sE58JkIaXeP{2DwWzs@{UX$N!1O^l#azTr_h zm8J5Caq>c4^OmmB_?P445)7y%@o?PblkxIKBV25nAb)I(5PPHWKN;Q@I`>BDn4b#B za{%5QIq9!-dNb#myxmQx-3+|)Td66Z@r3-cr$!0Z{)KA`NNlToLT-T~*jhY^-T>V9 zDft{uh0}Sf$)XmAO_ocEZT_?ztXKE=Tf9%QoWgfJEnAUb^fPijrf=LL(8_mj+)Al^ zPX8+M+H6}eMV1|=reA6`-Evbmhnm^Ur#vTr0rX&! zTta4Sng}*@n$BJmtj+g%*(AymFkSBv)8$e(QH^OA`Cl)gX*b)tC(BrpZ?+AYQB{mC z6}84zami7P)R|Sq@Uquxy5pjw7$3eMpU`vkI`7DluTDW9+RP`uC`!=&B|YTZFNqLa z&XP;?1Z#eDhFE{LjCIXs+lE) zJO+r(lUs1#xpG%sO(JOg`JTCQcU?UgXvjQyu(99-e>+ER$~VuG`~Ft}%|}3vb+ZV_ z?g(fB0Y2Gvre_Q5jk$7Lemq+@%tWP!E`~BPNA@S{ z9Cc zD>!c*`5hIUzmCku1!pN2C`=cI|0KAG8v;cdUngf>8Vb}SM4+fH0`==J(7>?*#U=<8 zmzXN>s3d{LrU(?DCQw3#KofHXO3V{z$|ix5J`*VU3xQG&3pD!#A<>#Y35r_thM=f5 zO;*xUYx)U_TC;VkAgMKb2#Q*>pP;BUV+EB5YLuX;HAR-9HRFYhT63bHs5Peuidr*S zP}G{U1x2knS5U>EvO$T~y!j?tGsV%GMf~Hp&|pQj`fpRa74gaMpf!v5j(3E#S)MMP zu@bFW#CNVlYZmc#@1iw}`0MY=8dknH-<6|)9(Yfl4)oD`^3zQV%BvP_Sb))Ly5nAK z(4_K{yj{NB+6eq;z8p+=PCimc*>>j3b&bFWKag7*{Y*cEYM+~NO1XuuGU5Wq^$(I8 zd>)v^S3ak-;6bb8J~*g;a+Mqcl)Xw0?+|9k^5BJsnISXUv^UyAycE9E3eQeyAi0Xb zv9rU~S>dW9uUI8NhWT&cN3yvgrN-)%;v5ej^j71gkL0FMzwwbA8tkHW*VX5-njUXT z-)$MUzaqqu;xtT~l$@+t@Lr!&!83TkYPk&_xkFaVAx$$7)BcKqUz6)w<6wP4XlfV^|;!shp&Nk8K1lc)@A$+SOaZaBl{Wc zKk#qY$ia2&B5_@GLcX}W>h1OBZ_agqcqip$YqeH>OTz2jeH-NKZs;eU7Ris)VHWPQ zOSWNMdtjH`k+Jxtd*p|Vcqun{j~qk~mlJry_tqZS1N29G({|>` zo_bZope4VySN;&{<@-eX?fcM0!}z!RWO}uvlpy>t-l0SY2bG`{@TUvk(uJQ0q3vXe zyp@7oRw~ywA=rW=@&pRjbV~jT!5%*)cR;Y*_nA6A&&l`$%)oDbVNYS?B-<+0L zgPwB+A?s>K$fE-&WQP^|QCO}0Q8@YPN17w~g&z@eB5!h5u733tbpdY#^p|E0c2jRi z^uF|o8_23Qca*H9SV{zTf$BX3E+gER5 zz3AN@28_6gx)o+CWr%45=;KFvZ)u;j2CvQbMW-AQ$W+YF{v^LdnI)V@S0Z!TWevi? z@Wp+Z`z~H^>@z+1oC|UzKCD9acHiF(l@OhRG_=9KCqT=9e+(^f@V^Rewq1UOLc3#k z32j}&`-ax+{*~5v?L)Oy8b4hjHxBscO7goPhm!L?7hEEl+@NM8HdIoMluA{cGb_cV zmPs((1KV!#9u<8*75yM5I+A9b@U7?)(ENz$d9N54ANbZ%Ju5}6>RWst(b}W1#TUIp zZ1H_O94#D;yNURxw-EnXZW~(dIy2_1JrLfhpE%q4R}adcn)Bk%a;X2`1<%`Ek(-RF zc4vRL@&8ezE`h#zMNAJnuE;(OoRR%r*BROQD{`M^qV90~k+u_c*I(3K+ag%>_Xy+B zSLJayuzlyMJQDYK_@e7_7mtBdA^OQrtUhvVgQye4k-U23j3V}~k&_FvmHi+VBWEn> zY2;iILuR%&o^AW0O$Pq%FY;{U)$+O=+LWwm;Ix};Fx)k8V)cPj|EBD1a&J!qXZC%= zYbN^WKZbW>;J*s5*9{Tgr#D=}d;O{VhS%)=)s{NoUsc;!nEi`tJAP9RMP9~VUE&%% zsb*ZZ=wIb5DV6FxXVz@gnzPzb`}$B4FZMB%-aJw@l%}i`Ln*O(DE(BomY7zGDs~Jd z(fl-&M0e4LQmmuNqj3{h3?;PL!@tYzLaIH}NYdb(Mv}Afk3UYs4z?ftE{FO5UFiJh z-{mGFtG(IJ)cHS(vpUR2{}2zBIe*ALUe36FNN~jU!5?zpW}@COj8+`38b(vsh+&k- zr8^i#iM9!M?rYPPiPzgedjR{mHRtt9pDi#Rsfy%OmWO>)=o`Js}qy+17 z*TX%7ZGVsw;vYOkxR%p^T+a5~{=~hNs#bp+m%tu3w6m> zKkzf~pgxL47l`vdgKb0~rLlxP$mD)X6wpWglQB9d zx|2#N-st4=a^7@+l0i>``~ga9wu~PdptP@g>fDvO&p^fEUY+jQfqJ@I1D)wwHk@I~ zc`R8RY92!-{gdJL>UgD7y{w+XQ!jC7y^QxBskErS2Ose4Q-#0&6vxholyJ)U>OWZ#9MS?_-rF?OZ19o7f?&6glX&VASw13NBRU!O6zMz~?Q@@#&De!|?eRVHk%h!8OA8-1aZRcx0&3 zwd#4%cp^;@5%jFx^$1N6sFSrrmEL$>Tpp@CUiG}luWtMT(fIYoiN^OhEmlls{&}3T z09}5-aHS185Sl*7GldqiH_OmA(J793{a!b27pV_bxoI>)$%31AMmXKHdOr?QKHqIlcO=Es_b76 z7iD*ubcU=)M-Z9m9igB`M?i`8KdiLtP@RPO!IgE?03w;*4@5GTet=|QW0a7;jVthl zs<^Jl)r@N@a`=b1Rw08LaryppTua9)bmY{1tkMK%^jP$PME=HDWeBR2mJGb}K&1(f zd_-y7e;d_B^&+8|Sl72h@BT<_8Y{YnN3uYs1faX#4jFjvBT7?a(RWLK$C>%wM?@n# zGiu%V>oZi7HFM&_9#wq1|C8rShzDKo)BRZNV>0jk`5(?#LPfTfk18>&qwwo^B_zV9 zS3;Yq9HO;7i->f6C1l`!@k(eXk7Uy+@T zkY_dXYL*XC^mfhjD2c?kiS$6Fq1gT#n$WVT=K3e)@iC7nsWhJ*eM|}T5DprPN#-bT z_qgK6TTD>A#B}$s{a^X|F8_Rj?%yw=R{xJB{7?O_KYW+}?-CT+AuN5ohI<>rpJMc( za^}oR+83RaN7QtBDHX=oKcO^nS)JPh-bKe3h1Un9s5LA-qmxiGSDsMXwz+#s{$eF{ zAdx^HiXs6GMM^MWq7pi~){L>JqRtaClm=lqwZ_-cGzjHt_x2(1ecxDiO;mzw#PV0( z-^J4CNu@hB?ZckL$P43>pH#YF_I>wBC7xzqOnVPTo~`OMM2Svgzo*k|6rHA2beiPy z)BNeD(C-ZV{8LJhhj5^G8oSE6(|RC%)TrG?}%# zXtL_b+3vXU-Z)JU6E^lIg!8oEILpk z|KwR^u&)U>p+BFA3x{`|6{hgK=aiQG!RM3_e`k?^14Ndjgft;9`zu~RRL-w~@eLNf zP&Vk1|6)tqh%}^r5@e)6nVzdG0jD7pMSSu$>Mq zA76<15O2n%jQf=1&F2*}Z}hzKgl@kj=b!Co80~i6aJtf;@T1d}UWETMU5O1gRUpfU za3U?TEVxgp>Lx4cA;NTJ*58|E@D!{`l;r1z zsSgrP2RS4>R~O~Istkmv;#C9zgLI`CPX8t}bzG@!6= z^-uO~<|;FA(QM^hWdKmcT&z;!c&mBJkl-ZBZ_7)L{7NXlTKeRh^U!+2w81}^I$H0E z`DneoxoEvz^U->Os=EM{E2zN>lxQq>7cEfyeeL%t;%E6v1pj4$GEp~d+e?=Cae|HZ*=!Zj(cdy95af?(K;B@|Mtp(5EpXV#>`SDC; zq7m~;)N4vJzrQzq_ci5V^pxALp=HCkISWHGjCaXW%xK_8vXo{%iO8wCw>rNG$;=Y= z8(?n=yGVg|n!$T#;n7y0Co8BW8P0^WMF)z?MzTba?7d_?nO#q2uO(RlUq#6Zco`)t z5XlsgL2@y-^nPt~p3o%oB1H-=@VPUHWuq_2T0I$I#=8p=W-4RSrg) zAOD6D`SCkBN}PMzPOQyvyy0ydy-U)C-9$;0*Kn&!~ zbF6sqJLr>EWu|*}mDl(sN{*4oer=?y+P^GSjFNt>eh}~dAEkj#j|5_GD!zOhuG{N$ zm1xSFN{?DzxV(Lk=8ibN<4u$(j$eLL3Gs}h8mdTj6E9SF@#~7W{yK9$tl$T*QteFsm3M3Lqxoax-%B@_9YchEz`3p8hXCnM6QaOFKEBrrv!KQz8(dR=aV zoR5D8C7bx3(y~s5F#Z&4E*|ij(j4v0a7&`O^aGWp0Lt1X7BT7?=POg3=50>?gZV-p z|DIyvquy6qHX*P3E9#g3<#@^D{N|{DXTOh5VAmt~;}p5H-zS2f-&a;RErb5nQpEb} z2g+kc`#Jvbhe~h&`NTI+XKLoJ%dedNi<@6lT3|rZ)qob)Pg5LWKmFav4=F%Z==RN< z{hd8OSfDI~<@i--XY#qfLONSBjxfFgYV-!mzxkCPDgVUU^XGr9LOtk~EqwpZ(lJM= ztCh!K|Kw`wXCnW~b2al%};IayTo}ooy_FGY8#di!#_rzqmz7 zcQ<_Ij8WODgh|dZ{lIo*tHd{KP#jm!mw$ooUd{S^i6?FeKfObFYUw6LhtkC zmBH2A_MJ*Pzq3W58RDT`F0NnNORmFNy^6+pXrtCx6*yl>Z#^JXoPDR<_4fL$>LgXBx`+??PHB&# zz5JaryMF9^EHhd!GT=9CDlPNUxap|!PDA>B3{L}7nBx<|JKOk{qsquyzKCmnOp#=q zjRu@lIF2T_oK!3_9sxg`R_G?kpfk!tsNW@L=md)w1JUC2@);}<3;6HXl($IwqcR*F z?7}a~TXe%}<5?vRNsQ-^WGrt-DAD%lIn*emspo~G)#sJrxztk?)Y?psS zj|;C*yp8ytv~LBDN=RhzWy48W9NIW)hKc>-~J1%?<%*2ue~lj9KQ|^qVT@F`3>>>LJc60*1rlps==2( z`zsU$JpI?2b>Yv8e}h>fM}?riD|pjeqAp@?)u@Z%cU8l1)W8$JJ8PhgUU<~HD0dqa z+2c>ef-hX&=%9w;|3}mgEdPxxwMol@*U*Df@lwb6==7tmLq|WfpfJC&OO0%tiw?EF z!uFoiNNl%qxhGQtP=@wQ9ba3Ydz+~d#=qwAGNwLSOW*5mR437#_^zaG1R5o)@wIu` zDXU9rN&S?f=HTZi_)S%9?~_Qov%0tOn=R4$O^;pl;=Ze!8rqgrj{71{!T@r|C|p41 z&Y{)rEgFT1JO@dFU6M4YPEuv6i}*1&wG+bjG$H>2%KtiUb-3hTz=xaE(1xUP+h!tH7t0rmWiGdC5JmYqNBuJ&?O z9r(3MwbxzkNG89#t73QAw~i`ym#@}Q2Vrm>sH3(A`m>JO8>nYp!A-4;QknS5y6OOZ zLwLQe>ew1~@=$wXd`$CDoB4!cZ+h=yd!>hpXEdoQI^A$yh;gn}!g#rdN~?9@Ah8w) zIP&m>1EH#T?|MxKi9E>@4hnP!1+_RR;5*2HP*pU#$3el;dPr{<=^NW?NsqxcqMnK! zjwnLnh<*H`+E? ze`wt>EkKO}+8Llu2YMh-os2m+FHk)UG(AW?4>ZoAR$yZj6O1ty$LHy2kB*cO47E7k zH3aP$$LE9ylN}-IU_8V;L%}8SAv(&@(ScATNa8FEV^eJRM}}c+3d$O$_F@VAaF`lb z|8a4d8Na-SDJ{x>67SFoebw~HN2oyQ)YpZr8nX#R&8v*Rp+1jaXN%vDb6&JT1nZ~w9rZ_BWPZJRBlB>?9oV)$C z?P&rM8|culYK~qk6x)jlNH`F?`Wg=KGXxPd0SO1ZtfqrRK0888K*B*mEfEy(1LQ!c zD%|dIP{2Jpz(KKI1hLVt5kWB@-vJKvGk_Nk)r_E+ujruq;ko}Ytbk5*P`kS2&BL_u zLpU$*t~Rqh*ij8IvOL=(k?I8WQQMZz>TBS6zbUfsxtqpi@LW; za;Tr`wzQktq)H%6Ms%xTQV%C{Rc8qBrgg`pc~#Wfr}mmLL%*`S+6A#3@2)na*e>_f zV;j<2eVSq`>LX(F>8sK$1$wbcp_Mvm1m(d~qgC8rs#40lELtsb3Si*_`dmLX#B9KV zeSgJ+r)q|w%Uhn}i@K|gy{1pNYboQ!hsUVR(6o)5!oeq`y#AEZ9;r0$u*xJ@O1uw@rJqUBme2lhq*p$^`Y9hS}?N+p*X)lQPJm zY>}WYaG$tAS5D;X64XNXu{NjQryo}ru&(@<$JN#?>2@$G49mimd3aW4Mte{U%N({V zcy~?R>h52pCoSNAY4DWiU^nxvPpFIVUD%+BYU`$S`B(RpIZHSxcbFC17EV-OH8wEN zl{Yx|+M;_abP-k=bCzI8e8f4%Uh;m3=uZuU^`aG?E zIy~)sK=<@b3Opq^mH5dkl;y7!6$c}H9O&v}Rlc57u?rPb9cQ_o@2vX>ehEH`t9*=k z35G*o54dY_|H8OJjaM zTOC$?3dMb2R)_I=FN+YKBU(S};rodGOqaKO1xc!YTYt!f!wNo;jnjF|_vx-Hfd zTh$gexA|(GiEXwOEL5*c_)vPq>*|{gYn$92dS88|wr%sV_tmNQZkzd-57f-s%zybn zO{v9v)`x26T4vfEAF3_yol$MqK2)Pv`%=u7IWcAS4+HVa z*fpmqTf!LM4_l`WsKq>Oo!SwnZiVaA4eY3G;(E1A z!S^(sKUVQ;x1)H5O+6Xsc=?Kz);{GZb~&y*{cf6rr#)L5eoA$7C$koNBtW|aIQmV1 zRs}uk$^xPqm*P7qS9U{Nrox;SC-}^g-@UkwPvrG7N zpl@{U<=sN)Kws%x@E#XS+krjm82paOP9CyP-9-5KKJ`_^KfXki?e22_S%TjxkK%py zi^`axqgDIW2O&JIb3R`P-9tKh`3s@@Sm!Ff5VhCjOM!NLB`jb5Qe@QOus}Dz6gg}x z72N+0I&iR-qD(!cXLLveaqf_avw4|oQ8LSfZo7`Il?g9x^{5~JN|a%-j%qE+)Wf2+ z)*i+d6@BG@u|&3bJIW$JOEVeHoZ5Mzo;q?Ne$<9ccGdh|>I7fo&@~ z@&ysc@(ZHeCohPyHMl5Z9Db2>wzn>-b?f3|=T*Pz)$prO2K=U;vYI6?w!y}3sS^g9 z(r`{bHX}r{O}nMu@$yK+ccv=<$pC8uDI)a;O-{XS$m4D!nNRrHV9f&X2Y3TK0Fkzj zHMeMEYVo!pZ6crtAf+fsy97LCYmgSUJxDVUYzfkqfxq)hxk3hEu zaO)HJ0iUrUNDBwZfT%S=+GgO$bwS!y;1UAJ62R|XAEYI&4@%XdK#W=o17HJS1(eBv z;*a16d~mzgu{f_b%$Ogf?U@&(4FZ?|W99~Fvu6isAI}QXx&dyz6r>FR1W#=rJh6T7 zi-zEV-GYbc|91->Y4|)kNSoRZ>0*Mk3xJZo1gSdlRR19DYk)4)aqj_l^Q7AhS+{{G zF~HTf<3qaR6~L}?S2|^IkQNe)0EYx=^8vpAN@7J6y290%=t+C6Gn_2R;Bt!TSM9c+gPo>arlM6c7(ZHt@uy0N^M<5y07` z%5y>5jAw(ix`6#t(FLXiX=^72Y0UwJPXuYx0L%ECr`?*Ro@|FM*fvO;1?U3s53U9; z@N2`XdD6|U!IP{jWXIYBX|Vv;^fy}TeqU~Nx7^i63xu*)Sdi8h@I`2l_AtO{KyoMT z#HT}owABD7?}}&CkT(ZE%l7g!Za>P8-s)=BZqxvhxq{rytPzl%ll~`st1E9Y&8=zb z{nC(s@?io*ID9)}AsK-)24~(i<8o}j}H;HM^=wdPNo zwZ{NA`k1v-&zQAG6V2MwPnoqd0FNiYPc&z<(tJ2T$3#CEqeBVsdGNash;@)z8!*_ceGzNc+~D^Y$hP!B6L}3ZYf1gg+Ke}0 z0C)fp40sO^_Mur@^#1=IM8ID{0s7i1bbO*y9n9>H%-R}&VKp)ZWCK>Lxi@2vb-FAc zL4}o6L*hQO<^+<5@2>`@om20`B*U;19RX$&7T!AAj4cgS2bBzsrB znnoumMZ$jrl&Gd%wWDgC5dqY+BmVJIwFHrR|Ej5qxOr^}|3x}yaF>5DYdZkT03>@3 zxSNAcbsD*1Ux$)p>&r1II0Co|Y`tjKGB4&$R2iJhz#REt1g)CXlRg;KPM*Hvydq+m}JS2 z;jdctauW0hp$w@I((f%hF-SuWWReSJpcg~t0sJ=aIm@kO%!gnpUMD8=H4ax!O!}>m zQ8rEt(y$A%288*_S#ARYz5z?2Ix(4i4_Q4Y#$RPiy#N9Eb7FVUS0Hn(Cx{HcK}I@f zT;!O&jh&YZruqxvdJ&x%B7-;VD6JEdtc5Nc;Uq|A2!oLRJeU)ctP^Aupc7M}yFliO z$*zw>*2i{pw%a0>IvanugDTI7$%g*n8mpl^Pp<_hz5<>Cq&?wn&{T;|Tz943KDaV$ z@B>X9!UEhM*r}Tg`Wc5^3UCMfNg2aOAgBX82PkqVOLV2-cZY5wbf$N8J3ru#;0N1! zrn*J5RLgszS}4E>89{5%Z2{D2h;I+Nql>;X=q?UD*>rQ^$zDav^mMV00v+wJCw&a) zfes$&Qw@W_3;~dmAP)3M0M$HY5D$6+fM|lpK~DrwHz1z=bjmXhJ*A%tI?0899`p== z(|-!+SylQ}gW+W`X)Xropy#{rnV_=)lo>gZP{Nr@s~s+cZZUwm0qNfWy$s;Y@J-Nf zyYMSP=L3X4y2oFzI7`n(H&0rX`6*^NAp8)tz6$w~AMjyag0yogk1myH-v~eAWo@_ipdjUvCK{f>Kr=h| zG;2!$WdNf40puDG3w}4isZUb^v}YY~#DPnJcLTNo)~Ep**$`}YK&e}RHWv_K3ed~| z6Tt2kkgD0;1GH=aIV5NCplbrjU3IRs(>Ah}bWU9ubmm$i^?r)~efe3G_#Q~DP56IF z)(?JbLTXLH|4lv~{eqgg$br#}sY37ugw782{}!YD|KDad&ehpuG-A zy;CPZlR$U@oHgMGx}}2;1#SoE4CvvIMFS59OaM#;%m!%ibIT(@TjCj@O$6kF4hJp* zyj?#)8|M|EEd+c7C;^-U_%}fNM>h!2o&i_^-vZnk254;osetu>Zvbke0BtB>Cm_;0 zKzj+W2k?LoCK)*Y?*Z+9zr?S=`QFB;8AKW$j#&+02M`?(@UHk2jRh_TRvdf;pZc2H^x+BXF!y8Pp9Cxc zPXRXLIq*C%EelhC@jFh2SAgjOG#7Xb_}75Fz~=(fvtcPP#D*2TLzdfs)To&O+VN*~ z2yoC|E;6UCY({{#0YH2%@N@?~#(|x7|3jQA9L6QU6vb1>^z9VUhzA{las) zthS8uY6;xnlJ?#-&*;uNKdeaQrWgwM~v-4SYwA+xiBrRt9JZ zc{=2Qe$qB)q1!2zdS^k^TO{->gW)e1o@JoF0)ztpsi56mcu&x->Fa}cP2Ui_YkD8> zuIb^DpUQRX*?}B6Ga*clT=^z7cz^y?u3IBp!eX~H=5q|6C!7IX2HXS~aMjF%-+bNe zIozXs((3l9Pm(QE%LU8@i~)5TaQC6gAn>KQrXvLxQzCvB6q4G9e&Y zF)~@>$f%qmaxJ6Nux1&lGVcoASs67$FJDr_(AkbP4MjV;#^`Lvdt&^z)hi0)>d{%4 z8Xi;WZ_cId3e_@z^MK<4BrA8w%)7B~-KOgkTjk6E52mI$1a{?8Qs!&va)|pwBw!G|+b(nG}PTi**~rzEI8I5nz-Ho#voLCZH*} zBMupc!ITp4m%tm*B?zcx2~+1Z;yFh8tI$IvwnH-VkkDu(zfp^v{NHl;4+Cu~(F^7W zyg0x+mC}WQCV!L<-IODo@4%#w`Um~kf6yo0U!Q8A05f1f856z2h28+#S&7Ah`kNu$<-6|!y*@cdDp$7^&RX2(UL(VBd5@=_pd7z!GTMpXU zy5=un?+7>nbQ;o@AZ;FKs!3XCc)7Gpc`foV3eNJSo@peoGt&gn)a(>Y9%vJv^QK!% z(Ng7LsdWfwgc3FrM$aH~b7`nXJ%#85(4-S?K+|ZhA!V9FSxib?l%&K*LDOA7qOXEZbI_)PIH7USX3%*KIt_HOgDwYM z?x3R%q5C`NJkXRm`P_UcwYrOxLgDN#XF)rg`i_g-udLc8611~&V?h@?YG?}RatECa znm*p8%+`Q5JLpo-BCk{^E;$*{9$!^w5bmH$Addx&R=I01tw1K!RHUEs5Bj`X^hpRN z)#;%8J_b&``SAS%pwfjyALVHCE}#<}^gz&Q4tgwTXALLnbgHPDG#5p&3vKwiIzf~R zod%k!J`5RWgQgl-23)g-x}cq%1t_RhkM<`6DnStpoY9pyXmUvZD1-7^9E?H`&J4^) z?hU}HC;ti1JN@T5=|pl2#@Ue!-{3j!?6nR$3^r+?$w?lt(@D7tZN}f9amo`MG^NV} zO?ZQC&O2@s8YR+S!YM66o&b+6=#T*V+dK4!cc`HBiI^EcAA-?eh9Q~jKl=6BSft4Y zB0)T$@xEO$kP8j__XY5ww126-!0eOIAKmve%ant~SZ7O{T76qWsz35jf zO9^08P5|2DG~iSCApjjq06GDX4aft~uf)+$#8JH2z@?Ctla6SB$2Oz|lsjyqKrg`^ ztJ%i`j9M-a*z6V*Mo;`w$npWpig8y8kb4yy=4%1kRp1rCcL0dla};dv!0s$SBySWJ z4^iaz0h$M(W^(Ue0<>hnsOutmSR!nbVHaDA?Kar#zKNad@4~iuGHmlN51dH*{ESguTMVmr0;2Y_|n)yqMwtKflySm>ZvMfdV*t57X_aj>2 z1Y|#0wAp7Y+KRIlyri~hvK<(*T;QnJa5L__MJp(`XeZ8z^r?oUaNu8odb8um0U5;2 z4c5|rLJge9al|<^>-=C%27eX&Zt(fQqri^^rZS&J`ut1iCV>3RU~L653A=!_fPU~B zpA)Rj2F|_+8n_2=Ij{j3C)ozWRXCvA$i;y02|>asIlcoqeeG`m^g~mSjQ*K0uhSnA zjsnEF$Z34v@CeaP0LYF$f1yud^4o@J_J%>U@Zz-czH7fD!?5Ol$GIA(wTA0{hYmF8 zA1xD{`yEP4Kr+|;j## zNbwKUVu4EmD*&?r<&c$865m#{-+(zFw`HJaFhkuUP>Tay2FL@X0nS2pgm>729O$8& zw%npc0+s{>YH}b@v=xxkr%p+Lfi58zKu+I0-O%kHsw&H7 z3IvK2fUBco$mw&ZB0xN*DQDT~O9T4c=@#TikO9s9Mpl~Q#iTtJ0_mn)u#j`OT#uh8Q|RPl58Nh&XE90ho2i0|L#D(Sq;`U zDAikak}X5pY=CpCPO>DVjd!Fs8A5aiwDfi!3OI+|f3;y2!;aRt^c`7tTrm3BSKHit z&9M+=JQA!GjIBNlAekMJ908yy#DR%ysl z2EGh@7w9GeQ{B?0^2WkotrSr8*vbyp1_HA27^BCQe^#)T2Tae+9>B}MmqCx@j~P7R zpfnffQ-BSPa0M7p1R&@1&ky>uuj6?LnC*@G$bh*3U5ncc(EGoE;Fcg@AKVTHWJA9V zaES*LW6cr)6PcsdmZG0E#w}q$8O#j85&UtOSbD%@2~4H{1~$cobU$2L_YKlA{BdhJ z0JoySQ|ns>!qBn|CtWa%>Vj+1osmsskT$Rz{Po67<_C1c)KM_p48v@|nun|7O@O=~ zzNPdBBtKd$p8`33V_5`noybxkkADYi2LP3MF8H$_pdbL^bHUTcm}LN$iLsqw1r#Z( zF}eU`SODG&pJ&?F>HKE!^tomfAe?X9K@Uub#%>JOA^`vDf!U~SDUu`ZeK*!*0OCzMu$w#>tnEIa z^WNZ-z6;h&0MeVm=N=8#5&_QP^lveePcqOpwG4?1{yPT-+S+;@Lwo&QdfHAj3#OfK z98ALi_l;4QhUdXF@f2nez`s}kBo@Qo<41JMGZ>!##R7m1Zk9C)(fR@YX||+;oekc2 zWC8wRwoIjiA4_AbQhh>doh|7wsMHsaLqKh_C4D2h#t(YHkp+QRHe%KWL;#8aQ429M z17fp*U&BnB1%MrO4g8yGpsz}MGzrnX0g-!=xDar=zojtJ34wb$1bQQ#+b4AJ}nwavc? z(1%Cjok*vU>iJinSJR-{_F#yX1h~)COUGy4-9xmJZdlo1x~*mE&4Wo1OmYE#JM|XB zaA1!R%?$Y4ska=4M`5%9;5zlv*<2#N{f`2;PQAAvr{4rv1_+C`au|6+>4+1G_~O84!TW$DEtI2AD~kD z)HBU9_VrYr-t+(Q^(J6ZRsa9^05i^ISXER|b_Q@ky?5?9Gk0cCQBhHGOEWbbsa(j= zD9KRJ$gIq;%tJ+mrDdgtX=UburDdgthNgvzW^TD)p`xPxU+3OI?eqISf1YQ!bKYmU zXM1n2^S*b2jnr7P;-lbG%g1|%-ZX&RogoSP%&B;FJiYzkedeKfmiwK3xHSb*j_HMO4P!#d zjeX|!cnY`mezWWsOfF|Iok;F}bF`m8=IuA*7epG!=lc=MTS1N>>4&$V{c7%Sq99K) ziS5VWO*+4t+eYVX#`eMFEc8o9_u}!{os{Bj4Y$~6An*Qac3A4WrFiiYaD#CiIq|Ex zYe-gfinq8G(gim#L}!_{RMv?Me3D5qS;G_Ynx+tcCX(QnB!U3A ztf|F%r;+2e7-(g-)jO0NKWUC2Aq7mBUk2e0n0Zsy(^hX3Nhn}aN!bB2aXa$4nK#?p()#e*nSh3}c<0!e~ z511qIUP5ymsrt>#m{yd+StFMZnmdryX-qgtPhpIKRRM?-p8ekpbirskiHs_ea0vI@ z_zb;|gH#?uE9#3@@7sFQI}e!=LP3rkGIulOKVK1B)QsVT^ajV^;4YTQk}3UV zt9LY6GKh(56_3?uZbJq>gSlSy0H7sbYrmV@`|p04#QtIK5x5#<3Kr2kzr~C-xL1&Y z?(uq1&ybiuuo|Ug7%rx!aaQjIeMTz(Fh`ooaT|^dJBAHj^M^SccR&6I1~KwstM^mA zSo-5kXqdr3cQ=jJUNo8BWZn@h=azgXkW8pE$6~4H)L{o#J!$nms&{U0ow>cKY~tOC zdvG3hbl4Gdps6&+ii2}~p=L5+L1}0=93jPNldQy3#B?#GBXNk#If8C5nE89X3l1zp zRyOM2qcPB~C195W|@*9ITMy*pza-`1O0atuwxqsfVS`uH((2U7uN5^vn* z!IqKr=3xJZhse=G=ET6x7*7Pk)LAmD-rUV{ewx)=gWYP3Bn#@z{Y(wht={ouJ7tz5 z#Y|h%4iw!?{ElPESEHy$Ukmj()*_n>K5iarnmiS#iax7f9>)f%odOtxwva>`j$`bR zsP>xPvB5Jjwxkp0WK%PC)yq2ZkrU|s!clZ-w6U^jOfacFVYZqYK-@?YPMf<0)*;lr z0i3EOQv);TqF~i?$lyQC{R1|4NF>J&m^+gEz6?XY{?i<1%IgR_hHMXjn7;Za*18_) zxAYsjIE>2}4go=Woy5Hj$jT$!n<)DIA#*6HJc(ZCjAXU-{eQeZvm#LxK;&16MnerGcA6qO=H_h-eC`cn{1dC!yB)8-zgdXy_5 zF{i;zc&Q>Trt}e3@1J_>UGA8J$(qyVPNs3g{~uyovU(cRro%lEO1UW>pW5FNyngz= z?0W`Vpz>gX*QTeRKV$A-p*7ATpw~Ete0av(HMn9!iuVsX1^K&DNcERYV%vLdM)=yS zCauq!J9MNWBj_;Xy#7a}b~Zi@{mIm`=0p>X1W6-P&SI<6NQ$0hdl9yB)mbwWMWZPG zw`x6#Tgg5YPo#k;_h(ZMj>nwu7-aRnfbYgdq~kerir;4Z_Mtfy3JRCFKmj?GD0PS| zIcJtbN(EqJv~a~Ps2RVuOb2rQoSCsSN>=YhO5aUxpEEmxtRmnmnr_-fF12Ek!-~L6 z5hzqoiD^F)PdJktO7%fjmesqE633BG{>JUA$iBa!I7^ga0pG;li^64nrEeWAJ%#C!wXQ)E69Ua z%$)*RG~R%T&Lqb#n0brQo8sMpdl}_xK!Z)Ci65nYH!sY(-`1|Ul=Le2>E5@$LC zN-6!?Nt>czi0lYjUiPcisn!oD?*s zm+uB+c9U-|nZ>Xo=zuh*kGNVRa&71is7A)pLCM}1@g26srps7@rR4Z!?0^D#i3_1S zfC~2pXR>#MK8XYWF~^2fh=6Qpt?)f9TVc^Z*b2c)vc474$-DocqpAdmh?dLSqi=<1 zJOPs?13#j~%02p4$ObVU8~P8!Z$w7@;rU*6ZfPAc`M6MAP;A$g5+RcFS&z8mJAmRx`j z!|2W8iRC74z7VGu-_dm1e$tJ@DvZ8qPP)$;jz(TQKIdnWwKvTjTczWB^A!3$*1u4@ zb~KfMwt`%^X^yijnwH}I21#QEnb2%*AG(8nf80kKrO`-sGbSPXDIf7sO6+JUpYBV~ z(ks%Dj(oyLTd31Uf)@RxkM^eCSUqhlGtWo-gj}SJ9cn4`jb5=D6_*zH%Iwx?nzM4A z47-Jm5T2jn#m^`ij7P}aTjq`_)#&g+n!dC@#oOWsX-*dI4|+C4PVm!o4%!pr8FQQa z+z_gU;_<1jO7W)P3bWV$wz;!>Pmi@sXa-!FNLnKL*LycXn&zkDL*JCriS)W{?hu%R za1DnYUe?rH+A#_aoQ6TdU&cK3CL%I$c3C`NIN7S1InZo>znc*Pl-UWm$M z$!T+RaK9kUyIcrrXVUAAIn}ZoU`Gk&&A6J(yaRUIotWZ%kXG7FzPw`=?%N_Qw`qKi z+`ePB`K76KS~X z{n^@pu~RmrS-p#Co7v=s3C>(2!hz%U&XvISAvySGs=Y_dX~l$_8dI&_$8??XQY)r? z(3n`Cfs|8A?wm7=q`nnnv@DGFnMsSt#a2w$pu!lRg;ZUusYT6f%II$O;uZY{V?!+& zZDx{TBF!-~ef;vsc3dnQI$6E=1w5*~Lm5W0WX8derD=f-VVEA49bJ8Qo=g@nOjpZ> zZdUIdnqNUSF-(f3wxiX1l%{LRIfk)W8l$W_S1}|d5bZ6sT6HO+l1BrXM2n%l)w`ZD zP(FDrkm-syux<%tdRnXzR_|;|UPZ1_@@A4?0eM3Qt2c&{>&RFOYS%{k(!peb1+7Q) z#7Qo_yGp*dFexD!EC2zm_20lD30;64bqZnHh33F)D&cS_OY>F}M-bz%s86SOf1!2H zkhw?)O@2Q`pNXd5$ag_Zg6Yr)Dc-3XM=c9xtd>RLR&N-spGJBFqyD%MUwSf4OQCfz zv+_cHv=urn9`;dDn2%Pk(FhxYrHc;q5u=Ga1UIi}?Msh2OnL@0V%T}qT;0Y;T1AeZ(4_NYX>mUYf;64JJcE(ViOQOK1MBx7UoS7==E9QjN%whOZc7XgaK-n(n~$ z>0DHkj$up+V2xg3Osc7|C*oLqdo_#+2Q0TFjOiA%BGzZ4)%>pQ#xNF7{nkeN47KLp zHA9WC;po?n7@wua5_dS$H8`h7vUdr+QO+MJWYu~mnv{hzj43BI**k^IGc(Rs!NK74 zWO6i|=^bQ1o7(2g|AT}v3>R94%%yQSzNAg8AX8goht_sW_THrFL*)I|SeKf#WPOK* zlT)pkl%V)d$@&h>tRsIjO!v@2Ja(*fO!odoD;1I9ZLpDolW`70(^cfPHfVHA`(*EH zbg@s8pV}~8P2ou26Dh%MSd`6%X;l=F?0ub>zBS~rJmrRlPdQ*^U9pZK@KAaXuR@%E(hv6492K|Th5O6FcMOJVil zuvWs8^}TTZsJ1~!LpvI8?A;beLl=btn?8ZKwK2)Bi8A} zWgXC5a2p>nl7x0ZbJ1;m>5=t%bDJSCHwXKOWj>;zt-(-X@ez0HL=qm!7=u;^`KZis zz5YTJEnah{r^Wc#l}+6Jm_!oZk1;}~ACF{G{o+Yr6fSuAKfQ#L2kGSy znTLy|p>K-UpRQC1ITghuYD=DhbVY`bzL?Ux`W2Ga9ls9aOZX5UaVsTu^$RA~QQt3@oK&!_LTxr{xfPHw{-Ke$KOJ91|0mg#-=8dy?#nW!jR- zaX`4D<1hpoWv7)ikREa96pgrhlGY3-W05u~mlC`hn%S1b%Z!D*8^^SPBd{(G^OSLv z8kAfD6A|^Der!PPGHPNQaH|U13S5MEFz%`&zO;=Dr0HDL)bcaPOEewalK%ktiKZ)B z`VVyx$8^--gAy?33er6R^%s%Wvn?tI#_WI5T69K zz7S_G6Y1cy|Ga0G`wz5G0}ZgVf!3zjk~KWV`yD0=HucyfSO>NgnG8Qf+hb2{rLT4!d2iAIG!NM=j~dK?%8tk=_p>Egd*2U**Nahr0{-Bn~w z7ZfiimvL!D14w^1lGs1ZRx+V0)6r76-|9`JJxwFucV%oOCm3440K?AS=gV-?3gpuzu`?)b1BNx2(d%7{P*M_ZSf58 z>%nvgqOp0JG^qQFJOnvH(tAKt(O@}E*qQxGgZl;p41ma^l&GAU6=Gk z^l^hf8&kiShT}+SARmf|Y?gRf0kQ=CH$;eCgo}%rX zrT6X{l=gVC?hXW;CZ9Fp_-j=!fHMyVGp4YSkQ+OuBzxU-2pvz8OC5o;1o2F}*5$|v zM#F#7hJ@1?+>ApwI!0cU#W>AZV-V@VgN37KBzxbd@h_O7 zbv3L3n#PDFK1)l^I!#i$GqLR;xaeN7!W>M$V)gc>{dkK!Enpa>SFL)#Hjz&RYH9sr z^}a##kC2N<2kp4#%fEG+@FHUmTJf*d`z9?Ae}>#iXSjB><;jqv4L7ac-Sn>MXE2VO z4D8y&A`@gXT(-hI;6^jReMJTb2uMGyPckbp(E*z;Tgfjjrc0Z2R90a8Exc&;cB6L~ zLH0^ME+*9y_U^a~z8o*jahMtpS*fn4emV48gh~C4%8%C1Gb!X@nF%z}h;m6kZ)n;8 zdGflyXBiYTR8-Bs*3qpG>rayUTU%&IFUts7Q^w57Bwjxch56xSK{s{x1(L z1%ZZjYTSL1oT4p;lhzJ!DUF=fxEmW#uHhRB-9D+rU9h?+cO3d0cy($?xwN*aXNP|ccS`+ zi9YUrkbH~kK{XSSy-l>aC(e?e&zrUFn2z)zG_mVpAE&=ax~kZI)^R?*tt8Wt4%(dK zTc)$m#K3*z~r3iW6|E{ zNKYP8CO?ERg(D+=mXD{$oonIgP97?-3X*m1dy=?4=rcRp$J4Kn`5yGSdWP0#Q+XuX zAjdsm?9!P!V;iC%M2vvIX@B24r!jVWA7cy1Gx!0%qSNv1Ir3_gIliqS9mL7V$?*5} z@&wtGj+^ef<>O!zxlPlh0lxfX(z_SZxp#c|nPdUdAysC?q|&=i{=0>-&-MaiZ*IQJ z*de{a*pX=0$Jpt;G0BBwd~e2eA0F9a;GV%wpH3SrB474qB)B0Ldc(F4Coz4{%*IXh z6d|DxEZyurOz3^}sicX=C-3tVFMcS>U|dRO_kj#c`zpnIo3>X)*7l(;?K;Gg(fk^6 zst;_l_%Bnu7Mea!+GjAmP4pR^Hl%e8#72Gw(-{!Vn;Fb#m?(%sNkWW3yS@+%XYv8L z>G3K!7Pgw|XQX%o^-8b&1vRs&FB5+s-qzxKts=c%z|l2zy#f$JNId<3ujJE?lO;4G z2O0k9F3mwRSA&iiQmqiFqB%lGEyom&?naQ~sIja+$m|H6oC9(=;TA&IW%Y*xK*RFf zbmYNgLVt)Q8eOKPqt6r11SZB*j|y32O@DZK^f8A?v}_tV+Mh`YKnSmPV{;A+E4F{Sav2lj%Z#jr3IqkConTLUlErilL6M$7)rtMJc|0SNFZ}F;cC#s$669IfJyZq zsgul=AR#tbZ?|j!3YR8og zCSpj@Kn$A((DkE3QOV+gOrn2j2eM!wlM)&Z^NI#HYkA{nUMyi30TrfE&u(&jAof(& zB0$C?=Ml>wR9K1%GzeU)u!vUZNU9bw434f|83ZSVMzjK*q|rTl1~FkK8qs<$Z6?iw z&>Q;fh^8AVNN5&tPZ|%mfh_NaGvDkiCelKq%b&m;QzShL+m*&p?x*Q9JJKbQ#)DMC4ouG~*Il5ilPu++J1tZ)HC&v1JU!J0>tB}1^) za)w|EcYxeP$p}88r8CKqAxx)bW%w%4uSr4m6~4Y^=zR^#fw^_)Z67h)H-M5d41h&Z zt-s?yEyDmhqnJjROcoEt02ZQv*3p8y9jzIP0hFMeMlZQb$H0usvKhud(n_|ziWS$o zn+uaIhYlze^E)rQWfU7gZl>foQc3G%C6c2j-kWlnQTPkO)u*_ENO!g*X5sZs2 zkeT8gn2;V+H=YFS_7Q<+`O#YWX;!&MQ z;)i1z$`Q7$6}@(m^c)Tku$C+t&cp>$VL~Hk;1dkTE?k6I#Rqh!>A-LVpJXDPp_x6) zMlj()g$M{8N^cl`iEO(LfPx*t1P3j&`>4_Ps0=AvirXGS)(~2u^Cj}$Qq2At#YYgx zyCZ-jbViF>0US+_U}8h#Vcsb%m9i+UBMBdgm4~z&Nw*C0chj$_ehu^zr#U-2Ky7{x z)&`gi5gu=i#NLlsmh9b0Zw=UFB<3pX4PW{sP1{KRGPGJv29JUqQFo9bqnN~2HLwY5 z_3xy56vRlwcUp!iJ{-m(xj@Ut@6^lYgOsO#CpiyL`Q$5Gjf`OO$^$4n#zzW=xmG}L zm9%U$Hu#F*B(F<1CZk6K0xlxmM`J)6=>@x`9N=wZNRqd&?&n@Chdo(Sj(RGhgzpjC zm` zaB91K+```)F>2X^3=`CVlH(xXjcE-uc(hB{lDQOiTBDpqhK>RYRK5+@9xf{~Otr|U zAxXX z7CcWTjDuj=QH19`Xu7!pl5zPgsFWat0Jc*>YeapuB|qfy{rPRF?IOUk%YepB$9H4w zWqPh36P5#FEu!Z&VpokAMY6|ZBxTu&6r`lyN&a|@BpC7WT34jY`bcWt#VY2O_(sz2 zGU+sqda4w(u)+Y`TnyUmck^0jso#9C;6maS}CDvJMpg z=Edabd(g?$EUX}Y52Mg|nv-NI1*M1#qZBK>U=2apjNiHdC7524OxBJ-xyWTu{Ku8) z4Hba2n)J#6DNAcRR%dXK4I7fY3Pcrfue~`GTFt@g?E1(@JVS|HO*Gj0iMvsOK_ngs zkA+5I&!B2Blk}blHMoL2J`vbXDOooW&&zl73 znnw6f);Ip=ld$ovWG5}QszG~Tlp@@wT&6=ZeLz5_y};-0neCJMnQb;m1+lQ8NUvOG zgum5~4DsTqc^&G(0{$@<7UgPkAs2mEO%fh~G+&5Fkv#pL(`l^Y^hcN;2qk*w5e$Ae zIsOO^1B>P*;q7#|-%`@?QK*>6SxMeW&|JpGf5^~B;iu4O_ZrIjS!6y6m}mriCYkdn zOpaZTGLb+5k3R~4j6OwW_oqQ19Y`RE$&D|B1{E5r=jJo{BNE$ z3HT|Vn&lB}v!0$+pDe#4Y_mag^At|a*Bma{`uL}l<@lUbwMU!aJ#K3qgTQ%q# z$tzRQQppE+>X5e7hisaP8(rY|>YkxFFabjEgHz0Sys$LA3AjV7rKWNkhKd;AmBZbIBr2CWQV z7JUS-l@cQm9G#GT@(tfL7uSDM`LwbGiX`aK3S;Vy@PRCJ{oNL%vU&*gyy5c zW(ZB~1|#*#C7A4jH+{4mO6y2U@|pW%cv?m=vb)cM%A@y4`#+pL{DxOPJgae?5yLx1*H=?^Fd%vRT8Zw=xOA?d4FVnP7OKWwyq#x*J%=VDHi zo@CnoAN?#R1D=F{FC;T?F)jTo$vaXPf?qrdp-}fn5)D|SPR{jObC@Y@d(wX%X<$iA z0ffYEG7K00$=68eQ;fS+B_>=s}*Op@1{n4 z-$i1cMyXsf5f@YZ%_Q$$JwlsC6K=lbOQr^jAsxF)Qo$s)Q#~i&tUed0_Xz~ z+Ck-InqK-#(tY`DO%V{7Dsj!m4B|J{aS5pLw~}o|OpL{f@vT61(O$B(2&;E~Hmruo zeM#PZIvu5|9q< z!GN>#nJ_IDDFR+uCUF%pJ^h3I$=oC6L{e4+A3OrOl6Fh;K9-`8O12bX_9_n~d0){w zv}_I|n6eJysa$=$!{*?Y1-~WXctpF!@;O+eyu)-2Xkg^BxzI4_Bx)`+YC1~UbX#cT zT!j5pqtwTGEA!@}m3p+Aqo?=H#Vn@nrN_bA;|EMJ6Ktx)%J$M%x<@gV@FeL~%ybKG zJeuU4Mp&}oAVZsOFUEZ5kSoQw_eK=5>-T0$XvootB=6Vyy~dZI7$TKR zP^pY;DZ%~4UUGTf8#q2h^Cf8lB}vo@wTUuq?Wvkw13kr68b#lW0YM=LY@c5)sbPi z_!nNLISx|uJhrBxIm!En&aNkc2Uj$-Bu$aIkdpKASebBTY z?P)|4d37MhMIYhS2v&^{W2T50-hx1my^LpvC=_O)??upto+bZA58+n2A0!kJD@IIk!T9zcjAD2yb-7=BAH<|1T&OL|?Enjdrb|iG*b_ z$rkz^hE{aXm6EBiz*eJAlYXn4qE)ZJ9iZ=Mh^6`EWdAG7)SyFUKEJpI-DrWsYF_mb z>vW<9hgmwKsOB=CA@456km6BFOE)%A7dj!N1O+tI$Z#E+@*W&kh=LkD_HNY(H?tqM~C^FUE zr-5QCw)%+YDY2_%OqCDWDkO_3CRTzsBOIXHVF^u3p%fF#`P@hQM5F1D*ur%_;&(SR zNX(?-f!|^J##{3`AlNfc-k&y;s^O4KrFhEseuOL?>H83}c-d#k)!n!cA!8*U^~^o0 z4+Z8{4x@Uu(?1rcGCV; zX#^ZR0XOr{FQp(@3bf1eWsoqXq!)pNp^zEG(q&3gbW%8wF^DK+r}{^~pdn`(T1I0T zC~b2oS^NMR!V_#XY1P_Iq$nAzAg&y8sPSAP={XwFCoGwVv?=fJ#Jix^U1V&-e~4}1 zg!{b-MTJxx>Drr=XA*+KKk#uvJ?6Fr z7c(yR5zlKx9T%I7k{S%wbW_8{EaOm0BSaGSTX?99x;GRSJKrMcmFEA#V$o#JTTtfc z@7w4vexmnnI%Hmlz%)FpIqE(){|6IW(W1Tzo9|&_L3OYC@S=sy_mHG83W^CW zIh9(DJt!C`nI`l%qJeP`E90K^!D73bAtC=?SgaNYl?&-;4*w_rE-Y37#iNb(oNq7` z7E5a(UiA$|gT+b){udU@ZBfqtx9)?*vgY~*)8^KFgQ2k4iaEZVuD8g|@nD9c7LC^X z7FFg6*!UVShGU5qVC*FQn(DveK42_E2ga7(1IBifIh80>uuuoRC^D9-A!Ggtj5Uub0$=o?@6(N|G=R}+0r zfzQ0evk=xG`s#v5sWxoBMV@#cj}1>goa}W{r>z6Y*=r7k`0R|(CgNeX&wBXI{AHWhtkj4jq0IJC?TBwe2 zD_}8a?!(JA^g=UMz%HdP&hWux@2`OMy@Gr}i1nZ@PQj6LREZO@J(;NOl>s6RJ`u?Idx*eXg3ci&R zo8)cQ!yevPg_#^j)}R=L-c|wbH^xY>X=pCn!xin4R zhoYrt(R51a$wXiqi+r@_by{SS!B9HW2fe*cI(`C+y>zh-j^!h-d@2?mZlrN5nTb5e zt9L#Dq_uf`qWAGuARi?^foz(LSFUJ5{*k2hr%YS_jj!lUWWx>J0jOFldz+R`v|#jx zQqWmnnN|3nmJ8gHwiio2`4nAf_T?FpAz(%)dY`9xZsNZhT__;kS7TR!S5`CQWAC9^ zbkEYZ>1%8T;%dw>q%M01kwJJmE;yLJutuZi-=i`lK8`UNku#iJUX621?U}dqHQ>IC zwxr`4CMBF=M9pn{hHs@-H9DMvL=mXfkKSdqMvNrYYyR_?GSvg|_^cLEyvKF7>-HMp zob*L3y=lFTBz7%kgT9nS>(?%_cP-N~gpOhrJ_a0{ozhK{=hrfAE%fayTD?QGUM#6z z3yY4vu0^X1EPU;MP^6a0zzaD(W4ifQzd}MkL*!DsxFHh8(YBG=~K7+QPZ&K8n zVf@H1Yndob^3svhw=!xaBmGF+TDb3YY4v(Z>(4OV z-K&_k;Q3xvc*cRgK~ZZ!@inj-9712IIFQUhF};D!Xuv{W gL-tldrO{V4YJHll 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%0AAF&zsbt}mtB}hGR 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 SErx@(;YjzqW>$ON*z~__8F(WA diff --git a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java index 38d0433..f167600 100755 --- a/src/test/java/org/xerial/snappy/SnappyLoaderTest.java +++ b/src/test/java/org/xerial/snappy/SnappyLoaderTest.java @@ -42,6 +42,7 @@ 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; @@ -80,6 +81,7 @@ public class SnappyLoaderTest } } + @Ignore @Test public void loadFromSytemClassLoader() throws Exception { @@ -109,23 +111,22 @@ public class SnappyLoaderTest //_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"); + // 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"); //Class< ? > snappyClass = L1.loadClass("org.xerial.snappy.Snappy"); // not found //_logger.info(snappyClass.getName()); - } @Test public void load() throws Exception { SnappyLoader.load(); - _logger.debug(Snappy.getNativeLibraryVersion()); + _logger.info(Snappy.getNativeLibraryVersion()); } }