diff --git src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java index 4fa1a14..cb5eb3c 100644 --- src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java +++ src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java @@ -20,6 +20,26 @@ package org.apache.hadoop.hbase.coprocessor; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.StringTokenizer; +import java.util.TreeSet; +import java.util.UUID; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -39,13 +59,6 @@ import org.apache.hadoop.hbase.util.VersionInfo; import org.apache.hadoop.hbase.Server; import org.apache.hadoop.io.IOUtils; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.net.URL; -import java.util.*; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; /** * Provides the common setup framework and runtime services for coprocessor @@ -112,7 +125,7 @@ public abstract class CoprocessorHost { protected void loadSystemCoprocessors(Configuration conf, String confKey) { Class implClass = null; - // load default coprocessors from configure file + // load default coprocessors from configure file String[] defaultCPClasses = conf.getStrings(confKey); if (defaultCPClasses == null || defaultCPClasses.length == 0) return; @@ -179,11 +192,11 @@ public abstract class CoprocessorHost { throw new IOException(path.toString() + ": not a jar file?"); } FileSystem fs = path.getFileSystem(HBaseConfiguration.create()); - Path dst = new Path(System.getProperty("java.io.tmpdir") + + File dst = new File(System.getProperty("java.io.tmpdir") + java.io.File.separator +"." + pathPrefix + "." + className + "." + System.currentTimeMillis() + ".jar"); - fs.copyToLocalFile(path, dst); - fs.deleteOnExit(dst); + fs.copyToLocalFile(path, new Path(dst.toString())); + dst.deleteOnExit(); // TODO: code weaving goes here diff --git src/test/java/org/apache/hadoop/hbase/coprocessor/TestClassLoading.java src/test/java/org/apache/hadoop/hbase/coprocessor/TestClassLoading.java index bea1fe1..0d823fd 100644 --- src/test/java/org/apache/hadoop/hbase/coprocessor/TestClassLoading.java +++ src/test/java/org/apache/hadoop/hbase/coprocessor/TestClassLoading.java @@ -173,7 +173,7 @@ public class TestClassLoading { // the classpath is {hbaseSrc}/target/classes. String currentDir = new File(".").getAbsolutePath(); String classpath = - currentDir + Path.SEPARATOR + "target"+ Path.SEPARATOR + "classes" + + currentDir + File.separator + "target"+ File.separator + "classes" + System.getProperty("path.separator") + System.getProperty("surefire.test.class.path"); options.add(classpath); @@ -433,7 +433,7 @@ public class TestClassLoading { JarEntry jarAdd = new JarEntry("/lib/" + jarFile.getName()); jarAdd.setTime(jarFile.lastModified()); out.putNextEntry(jarAdd); - + // Write file to archive FileInputStream in = new FileInputStream(jarFile); while (true) {