velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "E.R. van Es" <e...@cdls.nl>
Subject stress application
Date Wed, 26 Oct 2005 15:08:56 GMT
Hello Velocity List,

  i have to create some big monthly reports on CD.  I use a simple java program to generate
all reports in HTML files using velocity templates.  All data is pre-loaded and then the reports
are created by iterating over the data.  However, there are too many files to create (over
9600) and after file 7850 I get a java memory exception.  I use a scheme like this:

*** JAVA CODE ***
private Context context;

private void processData() {
	ArrayList data = getDataKeys();	// this returns an array with all "data keys"
	Iterator i = data.iterator();
	while (i.hasNext()) {
		String key = (String) i.next();
		ArrayList data = getData(key);	// get all data objects for this key.
		context.put("key", key);
		context.put("data", data);
		processTemplate("template.vm", key + ".html");
	}
}

private void processTemplate(String template, String outputFile) {
	FileWriter outputFileWriter = new FileWriter(new File(outputFile));

	Template x = Velocity.getTemplate(template);
	x.merge(context, outputFileWriter);

	outputFileWriter.close();
}
*** JAVA CODE END ***

*** TEMPLATE CODE ***
<html>
	... bla bla ...
#foreach ( $el in $data )
	$data.getX()<br>
	$data.getY()<br>
	and so on and so forth...
#end
	... bla bla ...
</html>
*** TEMPLATE CODE END ***

As you can see I put every data class in the context with identifier "data", my thought was
to overwrite the previous one and NOT get a memory problem, however I do get the memory problem.
 I can adjust the java memory allocation to 1Gb but I was wondering if my approach just isn't
correct?  I'm not sure about the processTemplate method, though it workes perfectly for the
first 7800 files :)  By the way: I'm using velocity-1.4.

Thanks in advance,
Eric

---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-user-help@jakarta.apache.org


Mime
View raw message