You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by wg...@apache.org on 2007/10/17 06:59:46 UTC

svn commit: r585372 - in /velocity/texen/trunk: build/build.xml src/java/org/apache/texen/Generator.java src/test/org/apache/texen/test/ExtendedTexenTask.java

Author: wglass
Date: Tue Oct 16 21:59:46 2007
New Revision: 585372

URL: http://svn.apache.org/viewvc?rev=585372&view=rev
Log:
change Generator so it can be subclassed

Added:
    velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java   (with props)
Modified:
    velocity/texen/trunk/build/build.xml
    velocity/texen/trunk/src/java/org/apache/texen/Generator.java

Modified: velocity/texen/trunk/build/build.xml
URL: http://svn.apache.org/viewvc/velocity/texen/trunk/build/build.xml?rev=585372&r1=585371&r2=585372&view=diff
==============================================================================
--- velocity/texen/trunk/build/build.xml (original)
+++ velocity/texen/trunk/build/build.xml Tue Oct 16 21:59:46 2007
@@ -510,7 +510,7 @@
 
 
   <target name="test"
-          depends="build-prepare,compile-test,test-texen,test-texen-classpath,test-manyfiles"/>
+          depends="build-prepare,compile-test,test-texen,test-texen-classpath,test-manyfiles,test-texen-extendedGenerator"/>
 
     <!-- ================================================================ -->
     <!-- T E X E N  T E S T                                               -->
@@ -537,6 +537,26 @@
       </java>
 
     </target>
+
+	<target name="test-texen-extendedGenerator">
+
+		<taskdef name="texen" classname="org.apache.texen.test.ExtendedTexenTask"
+						 classpathref="test.classpath"/>
+
+		<texen
+			contextProperties="${test.dir}/texen/service.props,${test.dir}/texen/additional.props"
+			controlTemplate="Control.vm"
+			outputDirectory="${build.test}/texen"
+			templatePath="${test.dir}/texen/templates"
+			outputFile="report"
+			/>
+
+		<java classname="${test.runner}" fork="yes" dir="${app.dir}" failonerror="${test.haltonerror}"
+					classpathref="test.classpath">
+			<arg value="org.apache.texen.TexenTestCase"/>
+		</java>
+
+	</target>
 
     <!-- ================================================================ -->
     <!-- T E S T   M A N Y F I L E S                                      -->

Modified: velocity/texen/trunk/src/java/org/apache/texen/Generator.java
URL: http://svn.apache.org/viewvc/velocity/texen/trunk/src/java/org/apache/texen/Generator.java?rev=585372&r1=585371&r2=585372&view=diff
==============================================================================
--- velocity/texen/trunk/src/java/org/apache/texen/Generator.java (original)
+++ velocity/texen/trunk/src/java/org/apache/texen/Generator.java Tue Oct 16 21:59:46 2007
@@ -19,24 +19,6 @@
  * under the License.    
  */
 
-import java.io.BufferedInputStream;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.Set;
-
 import org.apache.commons.collections.map.AbstractLinkedMap;
 import org.apache.commons.collections.map.LRUMap;
 import org.apache.velocity.Template;
@@ -45,6 +27,14 @@
 import org.apache.velocity.context.Context;
 import org.apache.velocity.util.ClassUtils;
 
+import java.io.*;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.Set;
+
 /**
  * A text/code generator class
  *
@@ -105,7 +95,7 @@
      * output withing the control template. This could
      * use some cleaning up.
      */
-    private static Generator instance = new Generator();
+    private static Generator instance;
 
     /**
      * This is the encoding for the output file(s).
@@ -126,8 +116,11 @@
     /**
      * Default constructor.
      */
-    private Generator()
+    protected Generator()
     {
+				if (instance!=null)
+				    throw new IllegalStateException("Generator.instance!=null");
+	      instance = this;
         setDefaultProps();
     }
 
@@ -138,6 +131,8 @@
      */
     public static Generator getInstance()
     {
+	      if (instance==null)
+	          new Generator();
         return instance;
     }
 
@@ -160,6 +155,12 @@
      */
     public Generator (String propFile)
     {
+        if (instance!=null)
+        {
+	        throw new IllegalStateException("Generator.instance!=null");
+        }
+        
+        instance = this;
         try
         {
             BufferedInputStream bi = null;
@@ -196,6 +197,11 @@
      */
     public Generator (Properties props)
     {
+        if (instance!=null)
+        {
+            throw new IllegalStateException("Generator.instance!=null");
+        }
+		instance = this;
         this.props = (Properties)props.clone();
     }
 

Added: velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java
URL: http://svn.apache.org/viewvc/velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java?rev=585372&view=auto
==============================================================================
--- velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java (added)
+++ velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java Tue Oct 16 21:59:46 2007
@@ -0,0 +1,26 @@
+package org.apache.texen.test;
+
+import org.apache.texen.ant.TexenTask;
+import org.apache.texen.Generator;
+
+/**
+ * @author SZarnekow
+ * @author 
+ * @version $Id$
+ */
+public class ExtendedTexenTask extends TexenTask 
+{
+
+	protected Generator createGenerator() 
+    {
+		return new ExtendedGenerator();
+	}
+
+	public static class ExtendedGenerator extends Generator 
+    {
+		public ExtendedGenerator() 
+        {
+			super();
+		}
+	}
+}

Propchange: velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: velocity/texen/trunk/src/test/org/apache/texen/test/ExtendedTexenTask.java
------------------------------------------------------------------------------
    svn:keywords = Id Author Date Revision