You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2008/07/25 23:19:48 UTC
svn commit: r679901 - in /hadoop/zookeeper/trunk/src/java/main/org/apache:
jute/compiler/ jute/compiler/generated/ zookeeper/version/util/
Author: phunt
Date: Fri Jul 25 14:19:47 2008
New Revision: 679901
URL: http://svn.apache.org/viewvc?rev=679901&view=rev
Log:
Addresses ZOOKEEPER-97 supports optional output directory in code generator
Modified:
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CGenerator.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CppGenerator.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JFile.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JRecord.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JavaGenerator.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/Rcc.java
hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/rcc.jj
hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/version/util/VerGen.java
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CGenerator.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CGenerator.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CGenerator.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CGenerator.java Fri Jul 25 14:19:47 2008
@@ -34,15 +34,18 @@
private String mName;
private ArrayList mInclFiles;
private ArrayList mRecList;
+ private final File outputDirectory;
/** Creates a new instance of CppGenerator
*
* @param name possibly full pathname to the file
* @param ilist included files (as JFile)
* @param rlist List of records defined within this file
+ * @param outputDirectory
*/
- CGenerator(String name, ArrayList ilist, ArrayList rlist) {
+ CGenerator(String name, ArrayList ilist, ArrayList rlist, File outputDirectory) {
mFullName = name;
+ this.outputDirectory = outputDirectory;
mName = (new File(name)).getName();
mInclFiles = ilist;
mRecList = rlist;
@@ -54,8 +57,9 @@
* record-level code is generated by JRecord.
*/
void genCode() throws IOException {
- FileWriter c = new FileWriter(mName+".c");
- FileWriter h = new FileWriter(mName+".h");
+ outputDirectory.mkdirs();
+ FileWriter c = new FileWriter(new File(outputDirectory, mName+".c"));
+ FileWriter h = new FileWriter(new File(outputDirectory, mName+".h"));
h.write("#ifndef __"+mName.toUpperCase().replace('.','_')+"__\n");
h.write("#define __"+mName.toUpperCase().replace('.','_')+"__\n");
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CppGenerator.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CppGenerator.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CppGenerator.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/CppGenerator.java Fri Jul 25 14:19:47 2008
@@ -34,15 +34,18 @@
private String mName;
private ArrayList mInclFiles;
private ArrayList mRecList;
+ private final File outputDirectory;
/** Creates a new instance of CppGenerator
*
* @param name possibly full pathname to the file
* @param ilist included files (as JFile)
* @param rlist List of records defined within this file
+ * @param outputDirectory
*/
- CppGenerator(String name, ArrayList ilist, ArrayList rlist) {
+ CppGenerator(String name, ArrayList ilist, ArrayList rlist, File outputDirectory) {
mFullName = name;
+ this.outputDirectory = outputDirectory;
mName = (new File(name)).getName();
mInclFiles = ilist;
mRecList = rlist;
@@ -54,8 +57,9 @@
* record-level code is generated by JRecord.
*/
void genCode() throws IOException {
- FileWriter cc = new FileWriter(mName+".cc");
- FileWriter hh = new FileWriter(mName+".hh");
+ outputDirectory.mkdirs();
+ FileWriter cc = new FileWriter(new File(outputDirectory, mName+".cc"));
+ FileWriter hh = new FileWriter(new File(outputDirectory, mName+".hh"));
hh.write("#ifndef __"+mName.toUpperCase().replace('.','_')+"__\n");
hh.write("#define __"+mName.toUpperCase().replace('.','_')+"__\n");
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JFile.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JFile.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JFile.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JFile.java Fri Jul 25 14:19:47 2008
@@ -18,6 +18,7 @@
package org.apache.jute.compiler;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -54,16 +55,17 @@
/** Generate record code in given language. Language should be all
* lowercase.
+ * @param outputDirectory
*/
- public void genCode(String language) throws IOException {
+ public void genCode(String language, File outputDirectory) throws IOException {
if ("c++".equals(language)) {
- CppGenerator gen = new CppGenerator(mName, mInclFiles, mRecords);
+ CppGenerator gen = new CppGenerator(mName, mInclFiles, mRecords, outputDirectory);
gen.genCode();
} else if ("java".equals(language)) {
- JavaGenerator gen = new JavaGenerator(mName, mInclFiles, mRecords);
+ JavaGenerator gen = new JavaGenerator(mName, mInclFiles, mRecords, outputDirectory);
gen.genCode();
} else if ("c".equals(language)) {
- CGenerator gen = new CGenerator(mName, mInclFiles, mRecords);
+ CGenerator gen = new CGenerator(mName, mInclFiles, mRecords, outputDirectory);
gen.genCode();
} else {
System.out.println("Cannnot recognize language:"+language);
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JRecord.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JRecord.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JRecord.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JRecord.java Fri Jul 25 14:19:47 2008
@@ -357,10 +357,10 @@
}
- public void genJavaCode() throws IOException {
+ public void genJavaCode(File outputDirectory) throws IOException {
String pkg = getJavaPackage();
String pkgpath = pkg.replaceAll("\\.", "/");
- File pkgdir = new File(pkgpath);
+ File pkgdir = new File(outputDirectory, pkgpath);
if (!pkgdir.exists()) {
// create the pkg directory
boolean ret = pkgdir.mkdirs();
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JavaGenerator.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JavaGenerator.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JavaGenerator.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/JavaGenerator.java Fri Jul 25 14:19:47 2008
@@ -33,17 +33,20 @@
private String mName;
private ArrayList mInclFiles;
private ArrayList mRecList;
+ private final File outputDirectory;
/** Creates a new instance of JavaGenerator
*
* @param name possibly full pathname to the file
* @param incl included files (as JFile)
* @param records List of records defined within this file
+ * @param outputDirectory
*/
- JavaGenerator(String name, ArrayList incl, ArrayList records) {
+ JavaGenerator(String name, ArrayList incl, ArrayList records, File outputDirectory) {
mName = name;
mInclFiles = incl;
mRecList = records;
+ this.outputDirectory = outputDirectory;
}
/**
@@ -53,7 +56,7 @@
void genCode() throws IOException {
for (Iterator i = mRecList.iterator(); i.hasNext(); ) {
JRecord rec = (JRecord) i.next();
- rec.genJavaCode();
+ rec.genJavaCode(outputDirectory);
}
}
}
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/Rcc.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/Rcc.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/Rcc.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/Rcc.java Fri Jul 25 14:19:47 2008
@@ -29,15 +29,16 @@
import java.io.IOException;
public class Rcc implements RccConstants {
- private static String language = "java";
- private static ArrayList recFiles = new ArrayList();
- private static JFile curFile;
- private static Hashtable recTab;
+ private static Hashtable recTab = new Hashtable();
private static String curDir = System.getProperty("user.dir");
private static String curFileName;
private static String curModuleName;
public static void main(String args[]) {
+ String language = "java";
+ ArrayList recFiles = new ArrayList();
+ JFile curFile=null;
+
for (int i=0; i<args.length; i++) {
if ("-l".equalsIgnoreCase(args[i]) ||
"--language".equalsIgnoreCase(args[i])) {
@@ -57,30 +58,19 @@
}
for (int i=0; i<recFiles.size(); i++) {
curFileName = (String) recFiles.get(i);
- File file = new File(curDir, curFileName);
+ File file = new File(curFileName);
try {
- FileReader reader = new FileReader(file);
- Rcc parser = new Rcc(reader);
- try {
- recTab = new Hashtable();
- curFile = parser.Input();
- System.out.println((String) recFiles.get(i) +
- " Parsed Successfully");
- } catch (ParseException e) {
- System.out.println(e.toString());
- System.exit(1);
- }
- try {
- reader.close();
- } catch (IOException e) {
- }
+ curFile = parseFile(file);
} catch (FileNotFoundException e) {
- System.out.println("File " + (String) recFiles.get(i) +
- " Not found.");
+ System.out.println("File " + (String) recFiles.get(i) + " Not found.");
+ System.exit(1);
+ } catch (ParseException e) {
+ System.out.println(e.toString());
System.exit(1);
}
+ System.out.println((String) recFiles.get(i) + " Parsed Successfully");
try {
- curFile.genCode(language);
+ curFile.genCode(language, new File("."));
} catch (IOException e) {
System.out.println(e.toString());
System.exit(1);
@@ -88,6 +78,22 @@
}
}
+ public static JFile parseFile(File file) throws FileNotFoundException, ParseException {
+ curDir = file.getParent();
+ curFileName = file.getName();
+ FileReader reader = new FileReader(file);
+ try {
+ Rcc parser = new Rcc(reader);
+ recTab = new Hashtable();
+ return parser.Input();
+ } finally {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
final public JFile Input() throws ParseException {
ArrayList ilist = new ArrayList();
ArrayList rlist = new ArrayList();
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/rcc.jj
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/rcc.jj?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/rcc.jj (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/jute/compiler/generated/rcc.jj Fri Jul 25 14:19:47 2008
@@ -33,15 +33,16 @@
import java.io.IOException;
public class Rcc {
- private static String language = "java";
- private static ArrayList recFiles = new ArrayList();
- private static JFile curFile;
- private static Hashtable recTab;
+ private static Hashtable recTab = new Hashtable();
private static String curDir = System.getProperty("user.dir");
private static String curFileName;
private static String curModuleName;
public static void main(String args[]) {
+ String language = "java";
+ ArrayList recFiles = new ArrayList();
+ JFile curFile=null;
+
for (int i=0; i<args.length; i++) {
if ("-l".equalsIgnoreCase(args[i]) ||
"--language".equalsIgnoreCase(args[i])) {
@@ -61,36 +62,41 @@
}
for (int i=0; i<recFiles.size(); i++) {
curFileName = (String) recFiles.get(i);
- File file = new File(curDir, curFileName);
+ File file = new File(curFileName);
try {
- FileReader reader = new FileReader(file);
- Rcc parser = new Rcc(reader);
- try {
- recTab = new Hashtable();
- curFile = parser.Input();
- System.out.println((String) recFiles.get(i) +
- " Parsed Successfully");
- } catch (ParseException e) {
- System.out.println(e.toString());
- System.exit(1);
- }
- try {
- reader.close();
- } catch (IOException e) {
- }
+ curFile = parseFile(file);
} catch (FileNotFoundException e) {
- System.out.println("File " + (String) recFiles.get(i) +
- " Not found.");
+ System.out.println("File " + (String) recFiles.get(i) + " Not found.");
+ System.exit(1);
+ } catch (ParseException e) {
+ System.out.println(e.toString());
System.exit(1);
}
+ System.out.println((String) recFiles.get(i) + " Parsed Successfully");
try {
- curFile.genCode(language);
+ curFile.genCode(language, new File("."));
} catch (IOException e) {
System.out.println(e.toString());
System.exit(1);
}
}
}
+
+ public static JFile parseFile(File file) throws FileNotFoundException, ParseException {
+ curDir = file.getParent();
+ curFileName = file.getName();
+ FileReader reader = new FileReader(file);
+ try {
+ Rcc parser = new Rcc(reader);
+ recTab = new Hashtable();
+ return parser.Input();
+ } finally {
+ try {
+ reader.close();
+ } catch (IOException e) {
+ }
+ }
+ }
}
PARSER_END(Rcc)
Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/version/util/VerGen.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/version/util/VerGen.java?rev=679901&r1=679900&r2=679901&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/version/util/VerGen.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/version/util/VerGen.java Fri Jul 25 14:19:47 2008
@@ -32,10 +32,10 @@
System.exit(1);
}
- static void generateFile(int maj, int min, int micro, int rev,
+ static void generateFile(File outputDir, int maj, int min, int micro, int rev,
String buildDate) {
String path = PACKAGE_NAME.replaceAll("\\.", "/");
- File pkgdir = new File(path);
+ File pkgdir = new File(outputDir, path);
if (!pkgdir.exists()) {
// create the pkg directory
boolean ret = pkgdir.mkdirs();
@@ -100,7 +100,7 @@
int min = Integer.parseInt(v[1]);
int micro = Integer.parseInt(v[2]);
int rev = Integer.parseInt(args[1]);
- generateFile(maj, min, micro, rev, args[2]);
+ generateFile(new File("."), maj, min, micro, rev, args[2]);
} catch (NumberFormatException e) {
System.err
.println("All version-related parameters must be valid integers!");