vgritsenko 2003/03/11 09:09:05
Modified: src/java/org/apache/cocoon/components/language/programming/java
EclipseJavaCompiler.java
Log:
Detect target VM automatically
Revision Changes Path
1.2 +52 -20
cocoon-2.1/src/java/org/apache/cocoon/components/language/programming/java/EclipseJavaCompiler.java
Index: EclipseJavaCompiler.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/language/programming/java/EclipseJavaCompiler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EclipseJavaCompiler.java 9 Mar 2003 00:09:00 -0000 1.1
+++ EclipseJavaCompiler.java 11 Mar 2003 17:09:04 -0000 1.2
@@ -49,21 +49,20 @@
*/
package org.apache.cocoon.components.language.programming.java;
-import java.io.*;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.StringTokenizer;
import org.apache.avalon.excalibur.pool.Recyclable;
import org.apache.cocoon.components.language.programming.CompilerError;
import org.apache.cocoon.components.language.programming.LanguageCompiler;
import org.apache.cocoon.util.ClassUtils;
+
import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.internal.compiler.*;
+import org.eclipse.jdt.internal.compiler.ClassFile;
+import org.eclipse.jdt.internal.compiler.CompilationResult;
import org.eclipse.jdt.internal.compiler.Compiler;
+import org.eclipse.jdt.internal.compiler.DefaultErrorHandlingPolicies;
+import org.eclipse.jdt.internal.compiler.ICompilerRequestor;
+import org.eclipse.jdt.internal.compiler.IErrorHandlingPolicy;
+import org.eclipse.jdt.internal.compiler.IProblemFactory;
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader;
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
import org.eclipse.jdt.internal.compiler.env.INameEnvironment;
@@ -71,31 +70,65 @@
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
+import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+/**
+ * Eclipse Java Compiler
+ *
+ * @version CVS $Id$
+ */
public class EclipseJavaCompiler implements LanguageCompiler, Recyclable {
- List errors = new LinkedList();
+ static boolean target14;
+
+ static {
+ // Detect JDK version we are running under
+ String version = System.getProperty("java.specification.version");
+ try {
+ target14 = Float.parseFloat(version) >= 1.4;
+ } catch (NumberFormatException e) {
+ target14 = false;
+ }
+ }
+
+ boolean debug;
+ boolean source14;
String sourceDir;
String sourceFile;
String destDir;
String sourceEncoding;
- boolean debug = true;
- boolean source14 = true;
- boolean target14 = true;
+
+ List errors = new LinkedList();
+
+
+ public EclipseJavaCompiler() {
+ this.debug = true;
+ this.source14 = true;
+ }
public void recycle() {
sourceFile = null;
sourceDir = null;
destDir = null;
sourceEncoding = null;
- source14 = true;
- target14 = true;
errors.clear();
}
- public EclipseJavaCompiler() {
- }
-
public void setFile(String file) {
// This seems to be the absolute path to the file to be compiled
this.sourceFile = file;
@@ -103,9 +136,8 @@
public void setSource(String source) {
// This seems to simply be the directory the file to
- // be compiled resides in: not sure what this could be used for...
- //
- // Not used
+ // be compiled resides in
+ // FIXME: this.sourceDir = destDir; does not work here
}
public void setDestination(String destDir) {