diff --git a/pom.xml b/pom.xml
index 0c62798f..eddd3d09 100644
--- a/pom.xml
+++ b/pom.xml
@@ -421,7 +421,7 @@
-cp
${project.build.outputDirectory}${path.separator}${maven.compile.classpath}
com.zaxxer.hikari.util.JavassistProxyFactory
- ${project.basedir}${file.separator}
+ ${project.basedir}
diff --git a/src/main/java/com/zaxxer/hikari/util/JavassistProxyFactory.java b/src/main/java/com/zaxxer/hikari/util/JavassistProxyFactory.java
index 534ce7cb..1060d04d 100644
--- a/src/main/java/com/zaxxer/hikari/util/JavassistProxyFactory.java
+++ b/src/main/java/com/zaxxer/hikari/util/JavassistProxyFactory.java
@@ -20,6 +20,7 @@ import com.zaxxer.hikari.pool.*;
import javassist.*;
import javassist.bytecode.ClassFile;
+import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
import java.sql.*;
@@ -35,11 +36,12 @@ import java.util.Set;
* instances of the generated proxies.
*
* @author Brett Wooldridge
+ * @author Yanming Zhou
*/
public final class JavassistProxyFactory
{
private static ClassPool classPool;
- private static String genDirectory = "";
+ private static String genDirectory = "target" + File.separator + "classes";
public static void main(String... args) throws Exception {
classPool = new ClassPool();
@@ -47,9 +49,15 @@ public final class JavassistProxyFactory
classPool.appendClassPath(new LoaderClassPath(JavassistProxyFactory.class.getClassLoader()));
if (args.length > 0) {
- genDirectory = args[0];
+ String parentDir = args[0];
+ if (!parentDir.endsWith(File.separator)) {
+ parentDir += File.separator;
+ }
+ genDirectory = parentDir + genDirectory;
}
+ System.out.println("Generating following classes to " + genDirectory);
+
// Cast is not needed for these
String methodBody = "{ try { return delegate.method($$); } catch (SQLException e) { throw checkException(e); } }";
generateProxyClass(Connection.class, ProxyConnection.class.getName(), methodBody);
@@ -96,7 +104,7 @@ public final class JavassistProxyFactory
}
}
- proxyCt.writeFile(genDirectory + "target/classes");
+ proxyCt.writeFile(genDirectory);
}
/**
@@ -173,7 +181,7 @@ public final class JavassistProxyFactory
}
targetCt.getClassFile().setMajorVersion(ClassFile.JAVA_8);
- targetCt.writeFile(genDirectory + "target/classes");
+ targetCt.writeFile(genDirectory);
}
private static boolean isThrowsSqlException(CtMethod method)
diff --git a/src/test/java/com/zaxxer/hikari/pool/TestJavassistCodegen.java b/src/test/java/com/zaxxer/hikari/pool/TestJavassistCodegen.java
index 14ac1ecb..9a305252 100644
--- a/src/test/java/com/zaxxer/hikari/pool/TestJavassistCodegen.java
+++ b/src/test/java/com/zaxxer/hikari/pool/TestJavassistCodegen.java
@@ -19,7 +19,7 @@ public class TestJavassistCodegen {
@Test
public void testCodegen() throws Exception {
String tmp = System.getProperty("java.io.tmpdir");
- JavassistProxyFactory.main(tmp + (tmp.endsWith("/") ? "" : "/"));
+ JavassistProxyFactory.main(tmp);
Path base = Paths.get(tmp, "target/classes/com/zaxxer/hikari/pool".split("/"));
Assert.assertTrue("", Files.isRegularFile(base.resolve("HikariProxyConnection.class")));