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 Re: stress application
Date Wed, 26 Oct 2005 15:13:47 GMT
Sorry but I made a mistake in my mail: obviously, the template code must be:

#foreach ( $el in $data )
	$el.getX()<br>
	$el.getY()<br>
	... and so on and so forth ...
#end

Greetings and thanks in advance for any help,
Eric

On Wed, 26 Oct 2005 17:08:56 +0200
"E.R. van Es" <eric@cdls.nl> wrote:

> 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
> 

---------------------------------------------------------------------
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