Re: spending too much time in PropertyList.findProperty

2004-04-16 Thread John Austin
On Thu, 2004-04-15 at 15:53, Steven McNeel wrote:
 Thanks for the response.  The answers to your questions are:
 
 i)  Yes, I'm using the HEAD.
 ii)  I'm using JProbe on Solaris 8.5 for profiling.

I had inaccurate results with JMP and got no sympathy from the author
of JMP when I mentioned it. Check the archives for 'Measure accurately'.

http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]msgId=1167985

 iii) Here's the breakdown (percentages are cumulative time spent in method):
 
 (1) org.apache.batik.util.SoftReferenceCache$1.run - 49.4%
 
 - this one's interesting, and seems to explain why my app runs more 
 slowly on UNIX than on Windows!  Windows doesn't care if batik.jar is in the 
 classpath; UNIX does.  I'm not using any SVG in my stylesheet.  Any ideas 
 why it looks for it on UNIX, and how to get around it?

Are you using the same version of the JVM on Windows and Solaris ?
Are you using java -client or java -server on Solaris ? The default
is -client and there is no -server JVM on Windows.

 
 (2) org.apache.fop.fo.PropertyList.findProperty - 26.4%

That doesn't seem like that much. How much faster would Fop be if you
cut that in half ? (13.2% would be nice but won't speed things up by
an order of magnitude).

OTOH I always get suspicous when the high-runner is in a library
associated with implementation of some rare language 'feature'*.
SoftReferenceCache$1 could bear investigation.

* I was a PL/I programmer many years ago.
 
 - this is the other main culprit.  The time spent here is divided 
 fairly evenly among the following three methods of PropertyListBuilder:
 
   computeProperty - 8.8%
   isCorrespondingForced - 5.7%
   getShorthand - 5.8%

John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: spending too much time in PropertyList.findProperty

2004-04-15 Thread John Austin
Before we embark on another performance-of-properties thread,
a couple of questions:

i) Which version of Fop is involved ?

I'd guess you are using HEAD, but this needs to be clear.

ii) Which profiler are you using ?

I ask because I got burned with measurements using a profiler
that does not handle recursion properly. 

iii) What are the percentages ? Which methods are high-runners ?


On Wed, 2004-04-14 at 17:29, Steven McNeel wrote:
 Hello,
 
 I'm generating a complex PDF from a big FO document, with lots of 
 fo:block elements.  It takes about 10 seconds to render a 16 page PDF.  
 When I profiled my code, I see that most of that time is spent called 
 Block.layout which gets called about 4,000 times.  Most of its time is spent 
 calling PropertyList.get (for a total of nearly 400,000 times!).  The 
 PropertyList.get method calls an overloaded version of itself, which in turn 
 calls PropertyList.findProperty a whopping 1,500,000 times.
 
 My question is:  as an FO stylesheet writer, is there any way I can 
 arrange my use of fo:block elements, or the attributes therein, to 
 decrease the number of lookups on the PropertyList object?  Or, is there 
 anything tricky I can do, perhaps in the FOP code itself, to default some 
 integers into the different properties so that FOP doesn't even have to look 
 them up?
 
 (If anyone is interested in seeing what is probably an overly-complex FO 
 stylesheet, and is interested in pointing out my rookie mistakes, that would 
 be fantastic, but otherwise, some advice on my questions above would be 
 great.)
 
 Thanks!
 
 -Steve McNeel
 
 _
 Watch LIVE baseball games on your computer with MLB.TV, included with MSN 
 Premium! 
 http://join.msn.com/?page=features/mlbpgmarket=en-us/go/onm00200439ave/direct/01/
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Landscape?

2004-04-06 Thread John Austin
On Tue, 2004-04-06 at 17:19, Nicholson, Robb wrote:
 Use the page width and height attributes, for example...

And of course, you'll have to tell the Windows print dialog
that you wish to print LAndscape mode. (YMMV)
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: urgent help needed using FOP

2004-04-02 Thread John Austin
);
 
   
   }
 
}
   
 
   
   
   
 public void renderFO(InputSource foFile,
 HttpServletResponse response) throws ServletException
 {
 try {
 ByteArrayOutputStream out = new
 ByteArrayOutputStream();
 

 response.setContentType(application/pdf);
 
 Driver driver = new Driver(foFile, out);
 driver.setLogger(log);
 driver.setRenderer(Driver.RENDER_PDF);
  
 driver.run();
 
 byte[] content = out.toByteArray();
 
 
 response.setContentLength(content.length);
 response.getOutputStream().write(content);
 response.getOutputStream().flush();
 
 
 
 } catch (Exception ex) {
 throw new ServletException(ex);
 }
 }
 
 ...
 
 }
 
 
 
 This is the exact error I got:
 
 org.xml.sax.SAXParseException: Content is not allowed
 in prolog.
   at
 org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1172)
   at org.apache.fop.apps.Driver.render(Driver.java:498)
   at org.apache.fop.apps.Driver.run(Driver.java:565)
 
 
 __
 Do you Yahoo!?
 Yahoo! Small Business $15K Web Design Giveaway 
 http://promotions.yahoo.com/design_giveaway/
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FO templates

2004-03-30 Thread John Austin
On Tue, 2004-03-30 at 14:11, Richard Evans wrote:
 I want to implement an application which can use XSL-FO templates which are
 converted to PDFs with the help of some external code.
 
 The templates will contain application elements which the helper code will
 map to XSL-FO at conversion time.  Something like:
 
 fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format
  xmlns:svg=http://www.w3.org/2000/svg;
 ...
 fo:blockThis is text special:item name=value2/ and this is
 too/fo:block
 
 Here the tags in the 'special' namespace are processed by the helper code.
 
 The template will be used repeatedly so I'd like to parse it just once.

Have you looked at Cocoon ? http://xml.apache.org/cocoon/

 I can't see any clean way of doing this.

You'd produce your input file in an XML format, pass it through
any required XSLT transformations and feed the result to the FOP
serializer.

 Richard
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Print and queues.

2004-03-16 Thread John Austin
On Tue, 2004-03-16 at 11:11, [EMAIL PROTECTED] wrote:
 Gentle people,
 I am using Fop to generate my pdfs but my question is far from the direct
 concerns of this list(forgive me!).
 Does anyone know a good soft for managing printer queues?I mean a soft able
 to create and manage virtual queues(the printers could be HP likely).??
 
 Thanks a Loot for any help!

It depends upon your platform.

Are you using Windows (which version) or Unix/Linux
(and which version) ?

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Print and queues.

2004-03-16 Thread John Austin
On Tue, 2004-03-16 at 11:33, [EMAIL PROTECTED] wrote:
 Windows 2000.

You could try a web search for a windows print queue manager.

I did and found www.printqueueplus.com and www.printqueuemanager.com.

I suggest you try the web search route as your question is
a bit off topic for this list.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: using multiple page sequences

2004-03-12 Thread John Austin
On Thu, 2004-03-11 at 22:02, Fleetwood, Brett (SSABSA) wrote:
 Hi all,
 
Quick question: Have you increased the memory available to your JVM ?
If you are using the JVM default, your easiest solution might be to
increase the memory available. This depends on your system having enough
real memory to support it and varies by JVM vendor. 

So what is your environment ?

OS, real memory available, Java Version ?


What is your command line used to invoke Fop ? 


 I am having out of memory issues when transforming my FO - PDF using
 fop-0.20.5rc2. I read that using multiple page sequences in the XSL and

There is a production release of 0.20.5

 therefore in the FO means that fop will release some memory. I don't see how
 I can do this. My XML file is generated dynamically from a database so I
 don't know how big it will be. Is there any solutions I can use that uses
 multiple page sequences or possible change the xml structure, if not is
 there another FOP transformer that isn't as memory intensive. Thanks in
 advanced for any help. If I havn't provided enough info please ask and I can
 get back to you.

See above
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: using multiple page sequences

2004-03-12 Thread John Austin
On Thu, 2004-03-11 at 23:32, Fleetwood, Brett (SSABSA) wrote:
 Thanks for you response John, hopefully I can answer your questions. From
 what I understand, we have a web-based application that uses Linux
 Apache-Tomcat as the web-server to do the rendering. This is a decent
 machine and we have allocated extra memory (approx 1Gb) but being a web-app
 possibly many users can request data to be rendered into PDF at the same
 time therefore I need to keep things as small as possible. I'm not sure
 throwing more resources at it will ultimately fix it, I think that the
 actual XSL needs to change or possibly use a different rendorer.
 
 Has anyone had experience in setting up a machine to solely perform
 transformations?

I asked about memory on the machine and about the command line arguments
used to invoke your environment as a sanity-check to make sure that your
Java VM (in this case Tomcat ?) is configured with a large enough heap
to support your program. It could explain why your application runs out
of heap. There are reasons WHY it requires this much memory, that we
don't want to go in to here.

Simply plugging in a few memory cards isn't enough. Java has to know the
size of the heap (free store) that it is allowed to create. For the Sun
Java, use the commands: java -j  and java -X to see the options.

In Tomcat 5, you could use the environment variable JAVA_OPTS to pass
in a value for -Xmx, say JAVA_OPTS=-Xmx800M to  allow an 800 Mb heap.

This isn't a perfect solution, but it could help you get to the next
level and keep you alive while you consider your commercial options.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Huge time in creating Driver object...

2004-03-09 Thread John Austin
On Tue, 2004-03-09 at 08:14, Avula, Srini wrote:
 Hi
 
 While creating org.apache.fop.apps.Driver object, to set logger and
 renderer, 
 is taking very long-time compare to transformation and other activities.

Could you be a bit more specific ?

We would expect some extra time spent in 'warm-up' for a number
of activities. Some of this is a related to the Java VM and some
is an unfortunate consequence of the 0.20.5 implementation and may
not be improved for a while.

It could be helpful if you show some measured times and outline
your expectations. Also, include the complete set of command-line
parameters (do you use -Xmx??? or others).
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Yet another pagination issue

2004-02-24 Thread John Austin
On Tue, 2004-02-24 at 09:46, Matthew Case wrote:
 Well, the issue is that these letters go all over the country...so one
 letter may need text specific for Utah while the next 5 may go to Maine.
 Obviously we could configure the software to print only letters going to
 specific states at a time, but management would rather the program spit out
 the appropriate text on a per-letter basis.


I don't know what your volume is, but here in Canada there are
discounts on postage for pre-sorted bulk mail. This stuff has to
be produced in what amounts to postal-code order.

In the US, I would assume the same sort of arrangement would
require sequencing by ZIP code.

There are three or four cents off each piece of lettermail.

If you are doing thousands of pieces on a regular basis, the
savings will be enough to get their approval.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Table break-after/ break-before page add extra blank pages

2004-02-20 Thread John Austin
On Thu, 2004-02-19 at 17:45, J.Pietschmann wrote:
 Chanaka Amarasekara wrote:
  I'm using the Apache FOP to create a PDF file. I'm having a problem in my
  XSL file, where when I add a  break-after = page for a table it adds an
  extra blank page to the end and if I have a break-before = page it will add
  an extra blank page to the beginning. 
 
 Yes, both are bugs. Getting rid of the blank page at the beginning
 would require fixing the is-first-in-area code. Getting rid of the
 trailing blank page is more difficult, 

And all this time I thought it was MY fault!

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: migrating from a standalone application to a web application

2004-02-19 Thread John Austin
On Thu, 2004-02-19 at 12:30, Teator, Michael wrote:

 
 When I run the application on my Windows 2000 computer, the JVM uses a lot 
 of CPU while rendering (almost 100 %). Il wonder if this would be improved 
 if I use the server option of Sun's JVM.

The last time I explored this issue, there was an improvement. Might
have been better than 10 percent.


 I use :
 - FOP 0.20.5
 - Tomcat 4.1.18
 - Sun's JVM 1.4.0_03 on windows 2000
 
 Thanks for your advices,
 
 Mathieu

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How Generate .fo file from PDF?

2004-02-05 Thread John Austin
On Wed, 2004-02-04 at 18:26, Robert Paris wrote:
 http://nagoya.apache.org/eyebrowse/BrowseList?listId=64by=threadfrom=486484
 
 The conclusion seems to be 'don't even think about it'.
 
 Of course - it didn't dawn on me that PDF's have everything absolutely 
 positioned - basically as though it were an image (of course with vector 
 graphics). Yikes.

There are a lot of PDF resources out there. Planet PDF comes to mind.

http://www.planetpdf.com/

It sounds like you are going to live in the Adobe Acrobat world for a
while.

If your users are stuck in the Microsoft world, you won't be able to 
save them from themselves. There are alternatives to going from PDF
to XSL-FO (which is what you asked).

I find this a bit amusing in a Dilbertian sense. 

Our astronauts know how to drive to the office in a minivan. So we will
be sending them to land on Mars in a spaceship shaped like a minivan.
They can pull in to MacDonalds or Chili's to eat. So we'd better start
developing an interplanetary fast-food drive-through restaurant.

Will a Motel 6 fit in the Shuttle's cargo bay ?
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How Generate .fo file from PDF?

2004-02-05 Thread John Austin
On Thu, 2004-02-05 at 12:33, Robert Paris wrote:
 Do you know the name of that tool?
 


http://s.teoma.com/search?q=pdf2svgqcat=1qsrc=0Search.x=0Search.y=0Search=submit

John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How Generate .fo file from PDF?

2004-02-04 Thread John Austin
On Tue, 2004-02-03 at 20:52, Robert Paris wrote:
 Can I generate a .fo file from a pdf file? Essentially going backwards?
 

Probably not in any realistically useful way. People on this list
can point you to software that can read the text in a PDF. From that
point you could start to construct XML files, but this is probably
not something you want to undertake lightly.

[Would it be unkind for me to say: Yes, but you have to type it in
first. ?]


John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How Generate .fo file from PDF?

2004-02-04 Thread John Austin
On Wed, 2004-02-04 at 13:21, Robert Paris wrote:
 Probably not in any realistically useful way. People on this list
 can point you to software that can read the text in a PDF. From that
 point you could start to construct XML files, but this is probably
 not something you want to undertake lightly.


 
 Thanks, I would like to hear about those other options from people.
 

I thought somebody would. There are libraries that help you read from
PDF. As an example, Google search results for PDF files usually have
an option to view the file as a PDF. That conversion is half the battle.
You can convert the HTML to XHTML (if necessary) and that is easily
transformed to XSL-FO according to another thread of this week.

Of course, your document won't be in a helpfully structured XML form.

 Can you also tell me why you think it's unlikely to be useful? Why is it so 
 hard to go back to fo or XML from PDF if the PDF structure fits so well 
 with fo/xml?

There was a thread about this last year:

http://nagoya.apache.org/eyebrowse/BrowseList?listId=64by=threadfrom=486484

The conclusion seems to be 'don't even think about it'.

Of course, you may have no choice.
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: request for java code snippet to XML- XSL-FO - PDF

2004-02-04 Thread John Austin
http://xml.apache.org/fop/embedding.html#render-with-xslt

On Wed, 2004-02-04 at 15:57, [EMAIL PROTECTED] wrote:
 hi all, on the command line I am doing a
 
 
 java org.apache.fop.apps.Fop -xsl billing_reports.xsl 
 -xml billing_reports.xml  -pdf billing_reports.pdf
 
 to transform xml to pdf.
 
 can someone send a java code snippet on how to do this 
 from within a java app

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: fo to pdf conversion error

2004-02-03 Thread John Austin
How are you doing the FOP step ?

Are you aware that the Command line for Fop can format the XSL-FO
file ? It can also execute the XSLT transformation producing a SAX
event stream that will be processed by Fop.

It depends on  whether you run:

java org.apache.fop.apps.Fop -fo file.fo 

or 

java org.apache.fop.apps.Fop -xsl x.xsl -xml x.xml


All is described on: http://xml.apache.org/fop/running.html
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOPException: FOP processor fails during load test

2004-01-27 Thread John Austin
);
   transformer.transform(xml, res);
   out.flush(); out.close();
 
 Logger.trace(Logger.SERVLET_LOGGING,ControllerServlet().outputXML2PdfFile()
 -- Forwarding to pdf file :+File.separator + pdfDir.getContextName() +
 File.separator + pdfName);
   RequestDispatcher dispatcher =
 getServletContext().getRequestDispatcher(File.separator +
 pdfDir.getContextName() + File.separator + pdfName);
   dispatcher.forward(request, response);
 
 
   //response.sendRedirect (File.separator + pdfDir.getContextName() +
 File.separator + pdfName);
  }
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Change-bar with FOP

2004-01-14 Thread John Austin
On Wed, 2004-01-14 at 16:53, Forest, Sebastien wrote:
 Thank you all for your help, I really appreciate. 
 For now, I think that the only way to do this is with
 border-left or border-right for block or table-cell but this
 solution is not flexible enough to do what I need.

And then I thought 'what would Jimmy BuffetNorman Walsh
do' ?

So I  entered the search terms: 'docbook change bars' in to Teoma
and found several statements by Norman Walsh:

1) +

/ Norman Walsh [EMAIL PROTECTED] was heard to say:
| | I want to generate change bars on printed output.  Can I use 
| | XSL style sheets to render into PostScript?
| 
| Ah, changebars.xsl is an HTML stylesheet. I haven't written a print one
| yet. Off the top of my head, I can't think of a way to make Jade or
| XSL FO produce traditional print change bars.

Simple brain cramp on my part. Doing it in FO is pretty easy, at least
for blocks, one can just use, for example:

  fo:block border-end-color=black
border-end-style=solid
border-end-width=0.5pt
padding-end=3pt

That's not going to do the right thing for inlines, but maybe
something could be worked out. Color could be used, of course, but it
would be nice to have a bw solution too.

Be seeing you,
  norm

2) +

7. Is there any way to generate change bars from a DocBook document?

Norm Walsh.




Yes, it can be done either by hand or semi-automatically.

You can use the revisionflag attribute to track changes. If you have two
versions of the document, you can use diffmk to automatically add the
revisionflags.

Then process the document with changebars.xsl and you'll get something
like change bars, see
http://www.w3.org/TR/2000/REC-xml-20001006-review.html.

P.S. I have a java version of diffmk that is in some ways better than
the perl version. I'm working on getting it released.
 

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Need help: Error while loading a GIF from a URL.

2004-01-14 Thread John Austin
On Wed, 2004-01-14 at 18:45, J.Pietschmann wrote:
 Manjush G. Menon wrote:
  Iam running the FOP for PDF generateion on an AIX server,
  which threw the following error while attempting to load an
  image (GIF) from a URL.
  
  java.lang.ClassCastException - sun.net.www.http.KeepAliveStream
  
  It will work with the http://localhost:port/Web/wam/etc/Ue.gif  I 
  suppose..(will
  it?)
  
  Is it anything related to FOP build?
 
 I don't think so. It rather looks like you have problems with the JRE
 or a mixup of various JRE versions.

Looks network-related. Is it repeatable ?


-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: FOP being very slow.

2004-01-13 Thread John Austin
On Mon, 2004-01-12 at 19:56, Roland Neilands wrote:
Well we are running this application on UNIX machines. From where did you 
  get
  hint that its running on windows.. Then we can use the  java -server
  optimizing JVM. But where exactly to use it.
 
 fop.sh, last line, just add  -server after java

I forgot that he is running in websphere. Anyone know which servlet
container is used by websphere ? Does it use the SUN or IBM SDK ?

[Sent him a program offline ... and explained that I saw a DOS
(I mean WINDOWS) file name in his Code.]

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: FOP being very slow.

2004-01-13 Thread John Austin
On Mon, 2004-01-12 at 20:36, John Austin wrote:

In summary, I sent him my sample program and then reworked 
some of that program to eliminate communication through files.

The sample program reads an external XML file generated from an
Access DataBase.

Transformation 1 generates a DOMResult which contains up to
about 400 records from the DB. They only add about 1k each to 
the memory requirements.

Transformation 2 reads a new DOMSource( theDOMResult.getNode() );
and generates a SAXResult() that uses the FOP Driver to write
a PDF file.

This demonstrates enough performance improvements to cut down
his execution time significantly.

I also pointed out that LOGGING is a performance hog. This is
mentioned on the Cocoon list from time to time. In one case
I got a 20% improvement for an 80 page PDF.

When he absorbs this, (and if he comes back) I might point him
towards some material on servlets and re-using his compiled
XSLT stylesheets.


-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOP being very slow.

2004-01-13 Thread John Austin
On Tue, 2004-01-13 at 17:49, Jeremias Maerki wrote:
 Talking about performance: It might be a good idea to buffer to
 OutputStream.
 
 driver.setOutputStream(new BufferedOutputStream(new java.io.FileOutputStream( 
 pdfFile )));
 
 On 12.01.2004 21:51:09 John Austin wrote:
  driver.setOutputStream( new java.io.FileOutputStream( pdfFile ) );

Well spotted!

It also needs:

  java.io.PrintWriter pw = new java.io.PrintWriter( 
new java.io.BufferedWriter(
new java.io.FileWriter( inputFile ) 
) );


and similar treatment for the StreamSources used to read in the 
XML and XSLT files.

There might be some improvement there, but it is down near the
noise.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: configuration problem: hyphenation

2004-01-13 Thread John Austin
On Tue, 2004-01-13 at 19:14, J.Pietschmann wrote:
 Kyle Kotwica wrote:
  Using either form of the URL suggested.
 
 The comment meant:
 1. file:///\fop\fop-0.20.5\conf
 While it is a syntatcically valid URL, it probably wont work as expected,
 i.e. it does not address the file system object \fop\fop-0.20.5\conf
 2. file:///\fop\fop-0.20.5\conf
 This will address the file system object \fop\fop-0.20.5\conf, but it's
 still no use because
 3. The config setting is not an URL, but realy a directory name (path
 name).

I thought that Java correctly translates forward slash to the
System property file-separator setting, in the appropriate 
places.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOP being very slow.

2004-01-12 Thread John Austin
On Mon, 2004-01-12 at 10:31, Jignesh-NX01880 Kapadia wrote:
 Hi ,
   We are having here. We are using FOP here for our application it 
 generates
 a 81 page PDF in the output. It takes a very long time to generate it almost
 more than  1  minute. The user acceptance criteria is 15-20 seconds for such 
 big
 PDF. if say more than 20 user try to generate the PDF file then we reach peak
 with our JVM and after that no user can do anything. We are using following 
 FOP
 driver class.
 
 org.w3c.dom.svg.SVGDocument.
 
 
 The websphere instance on which the application is running has 512MB  of JVM
 size. We need that application can sustain a load of 60 user at a time to
 generate PDF document. The server has RAM of 3GB. The application is built 
 with
 struts. Is there any way that FOP is can be made less memory intensive? so 
 that
 it will not use much JVM but use CPU rather?

This is a long-running issue with FOP and there is no immediate
relief. I believe that performance will improve when the 1.0
version is released but there is no predictable release date
at this time.

Here are a couple of ideas but your mileage may vary:

1) Use the best version of FOP that works for your app.
   0.20.5 is the highest stable release of FOP

2) Use the best version of the JVM that works for your app.
   1.4.2_? from Sun appears to be pretty good. Some older
   postings indicate that Sun's 1.3 is faster than 1.2 and
   you should measure and compare 1.3 to 1.4 
   IBM also have their own versions (you are running websphere).

3) If using Sun and not using Windows, compare the java -client and
   java -server version of the JVM. In some cases, 'java -server'
   may perform slightly better than 'java -client' (10-20 percent?).

4) If you have time to nit-pick, you can profile the memory use of 
   your app and select values for -Xmx and -Xms that reduce heap
   expansion and garbage collection. As you say your JVM is limited
   to 512Mb, I would adjust this upwards.

5) Can you distribute processing across a pool of servers ? Hardware
   is cheap and you can buy a lot of power for the price of a commercial
   XSL-FO processing solution.

6) Search the list archives for more info on performance.
   I like the Apache version of the archive even though search
   results are displayed in random order.
  
http://nagoya.apache.org/eyebrowse/[EMAIL PROTECTED]

7) Do your times include XSLT transformations ? Perhaps these can be
   improved. Compare times required to do separate command-line
   XSLT transformations and FOP formatting with time taken to do
   integrated processing. If the XSLT times are large w.r.t. FOP
   you may be able to find improvements for the XSLT portion.


-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Re[2]: FOP being very slow.

2004-01-12 Thread John Austin
On Mon, 2004-01-12 at 12:09, Jignesh-NX01880 Kapadia wrote:
 Hi Chris  John  ,
 
Thanks a lot for your responses. I' m answering your questions and the info
 you have asked as below.
 
 For Chris 
 
This application was developed by third party for us and delivered to us. 
 Now
 since it is very slow we need to modify it to make it less memory intensive. 
 The
 approach they have used is as follows.
 
 1) The data retrieved from database is converted in to XML.
 
 2) That XML file with the help of -it is converted in PDF. 
 
 3) The FOP version used is 0.20.4rc

Of more interest, which JVM and what version are you using ?

Does it employ 'java -server' version of the JVM ?

 
 
 For John,
 
   we do have load balancing of application servers. Both the servers have 
 single
 CPU and JVM size on each can be extended to 1GB at max. We have XSLT
 transformations also as I mentioned above in Chris's response. 
 
 Do you guys think 0.20.5 will have a better performance time then 0.20.4rc.

It's worth measuring in your environment.

 I am attaching a sample code from one of the main method which generates PDF
 file from our PDF Servlet. and please do suggest any alternative if you think 
 it
 can be done in better way to improve processing speed.
 
 
 
  
 
 and then it is written to output as follows:
 
 
 
Following 'generate' is part of the package written for you ?

I don't recognize it off the top of my head.


  byte[] content = generate(contextRoot, contextRootURL, generateParams,
 templateType, templateName,
 targetLanguage, xmlPriceBook, cover, pdfCharts, false);
 
 //session.setAttribute(LAST_PDF, content);
 File outFile = new File(baseDirectory + cache/ +
 userProfile.getUserId() + .pdf);
 FileOutputStream fos = new FileOutputStream(outFile);
 fos.write(content);
 fos.close();
 
 response.sendRedirect(baseHTTP_URL + cache/ +
 userProfile.getUserId() + .pdf);

So you build the file, write to disk and then redirect the user to
that file. Useful only if the user access the result more than once
AND there isn't any caching on your server or the browser.

 Thanks and your help will be really appreciated,
 
 Jignesh

I would look again at the FOP Servlet examples and also look at the XSLT
transformations to make sure they are not poor performers.


 
 Reply Separator
 Subject:Re: FOP being very slow.
 Author: [EMAIL PROTECTED]
 Date:   1/12/2004 9:18 AM
 
 Jignesh-NX01880 Kapadia wrote:
 
  Hi ,
We are having here. We are using FOP here for our application it
  generates
  a 81 page PDF in the output. It takes a very long time to generate it almost
  more than  1  minute.
 
 What sort of system are you running? how many CPUs, what o/s, (you
 mentioned memory below), and what version of FOP?
 
 The figures you quote sound reasonsable for a basic single CPU system. I
 dont think you can do a lot to speed up processing time for a single
 document. Actually I found FOP to be one of the faster XSL-FO formatters
 around (mainly due to the fact that keeps and other difficult features
 are missing)
 
  The user acceptance criteria is 15-20 seconds for such big
  PDF. if say more than 20 user try to generate the PDF file then we reach 
  peak
  with our JVM and after that no user can do anything. We are using following
  FOP
  driver class.
 
  org.w3c.dom.svg.SVGDocument.
 
 I dont quite follow this bit. Are you saying you are creating SVG and
 XSL-FO in a DOM before presenting it to FOP for processing. This seems
 somewhat inefficient.
 
  The websphere instance on which the application is running has 512MB  of JVM
  size. We need that application can sustain a load of 60 user at a time to
  generate PDF document. The server has RAM of 3GB. The application is built
  with
  struts. Is there any way that FOP is can be made less memory intensive? so
  that
  it will not use much JVM but use CPU rather?
 
 There have been some changes made to improve the memory consumption of
 tables, but these changes have not been included in any release of FOP.
 You will have to download the source from CVS maintenance branch and
 compile it yourself.
 
 Chris
 
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 __
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOP being very slow.

2004-01-12 Thread John Austin
.
 
 
 
  Reply Separator
  Subject:Re: FOP being very slow.
  Author: [EMAIL PROTECTED]
  Date:   1/12/2004 9:18 AM
 
  Jignesh-NX01880 Kapadia wrote:
 
   Hi ,
 We are having here. We are using FOP here for our application it
   generates
   a 81 page PDF in the output. It takes a very long time to generate it 
   almost
   more than  1  minute.
 
  What sort of system are you running? how many CPUs, what o/s, (you
  mentioned memory below), and what version of FOP?
 
  The figures you quote sound reasonsable for a basic single CPU system. I
  dont think you can do a lot to speed up processing time for a single
  document. Actually I found FOP to be one of the faster XSL-FO formatters
  around (mainly due to the fact that keeps and other difficult features
  are missing)
 
   The user acceptance criteria is 15-20 seconds for such big
   PDF. if say more than 20 user try to generate the PDF file then we reach
  peak
   with our JVM and after that no user can do anything. We are using 
   following
   FOP
   driver class.
  
   org.w3c.dom.svg.SVGDocument.
 
  I dont quite follow this bit. Are you saying you are creating SVG and
  XSL-FO in a DOM before presenting it to FOP for processing. This seems
  somewhat inefficient.
 
   The websphere instance on which the application is running has 512MB  of 
   JVM
   size. We need that application can sustain a load of 60 user at a time to
   generate PDF document. The server has RAM of 3GB. The application is built
   with
   struts. Is there any way that FOP is can be made less memory intensive? so
   that
   it will not use much JVM but use CPU rather?
 
  There have been some changes made to improve the memory consumption of
  tables, but these changes have not been included in any release of FOP.
  You will have to download the source from CVS maintenance branch and
  compile it yourself.
 
  Chris
 
 __

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: pdf and ie problem

2004-01-07 Thread John Austin
I have some problems with your question. I believe that
you are not a native english speaker and that this 
might make it difficult for us to help you. If you
possibly can, have a co-worker who speaks english
well review your question befor eyou post it.

It appears that your question is at least partly about
writing servlets and there may be better forums for 
questions about setting HTTP headers from a servlet.

Can we break your problem down a bit ? Can you
generate your PDF with the command-line Fop ?

What is different when you generate the same output
with a servlet ?

Do you have a program (like http://www.ethereal.com/)
or one of the Java programs like in the  Core Servlets
or More Servlets books ? That will let you trace the
http protocol ?

Is your program short enough to post the source ?



On Tue, 2004-01-06 at 21:56, wrote:
 hi,
 after reading FAQ
 (http://xml.apache.org/fop/servlets.html#ie), i use
 servlet to print pdf, with function to set Header as
 follow: response.setHeader(Expires, new
 Long(System.currentTimeMillis()).toString()). however,
 it seems no use. is that wrong? because i do not use
 url to reference to the pdf generated (like the first
 tip in faq; via reference to the url with dummy end
 parameter like http://XXX...?aaa=...a=.pdf), so the
 first tips seemly can't be applied to it (i know it
 gets to work for i tested it before, but now, for some
 private reason, we gotta to change the way to write
 the data to pdf). or any methods can be used if i
 print the stream 
 ByteArrayOutputStream ba = new
 ByteArrayOutputStream();
 ...//write to ba
 ServletOutputStream out = response.getOutputStream();
 ba.writeTo(out);
 ...//do flush, close function
 i appreciate any suggestions, thank you very much.
 the env includes j2sdk1.4.1_01,
 jboss2.4.4-tomcat4.1.12, ie version 5 and 6 (both
 can't get to work), acrobat 5.x.
 
 -
  Yahoo!
 
 http://tw.promo.yahoo.com/mail_premium/stationery.html
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Minimising FOP Runtimes

2003-12-10 Thread John Austin
On Wed, 2003-12-10 at 18:42, J.Pietschmann wrote:
 Manuel Reyes wrote:
  I have been working on creating a three tier system that per client
  requests gets data from a database, pumps this into a PDF via FOP
  XSL/XML processing, then sends the resulting PDF back to the client for
  display.
  
  This project is reaching its end and creating a 3 or 4 page document
  usually takes 4 or 5 seconds (this is just the FOP processing aspect).
  Now this is acceptable but there is no harm in hunting down speed
  improvements.
  
  Having read through (and implemented any relevant suggestions) the FOP
  documentation regarding speed, I thought it would also be a good idea to
  speak to the people that use this application on a daily basis, as
  experience is invaluable when it comes to this type of thing.
 
 A time of 4 to 5 seconds for a 3..4 page document is very slow
 for modern machines.
 - Check for warm-up times. It may pay off to reuse the driver object.
 - Check JVM memory settings.
 - If the time includes XSLT, check without it. There are people out
   there capable of writing *horribly* inefficient XSLT.
 - Invest in a profiler.

I definitely agree with that. Generate the '.fo' separately, say with
command-line Xalan and then generate your PDF with command-line Fop.

This may take more resources than a 'pipeline' approach like Cocoon but
will tell you which step is more expensive. You will need to do this 
anyway if you wish to run a profiler.

Has anyone tried CatchXSL at www.xslprofiler.org ? It seems to work and
has a nice UI but I didn't grok it in the few minutes I played with it.
(I suppose one could intentionally write some bad XSL to demonstrate the
use of this tool.)

Check your 'java' command. There are two versions of the JVM
available(on professional OS's anyway) which are selectable
as 'java -server' and 'java -client' respectively. I found
a benefit of about 10% from the -server version.


 
 J.Pietschmann
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Square bullets in pdf

2003-12-09 Thread John Austin
Who was that masked man ?

I don't know but he left me this square bullet.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOP.NET

2003-12-02 Thread John Austin
On Tue, 2003-12-02 at 06:40, Gunnar Liljas wrote:

 Would a .NET port be worthwhile? Very much so.

Is there a reason the .NET app can't communicate with FOP
over a network connection ? Why is a port needed ?

 They just might do that, and while they're at it, they'll probably launch an
 alternative to PDF...

Not enough money in it relative to the anti-trust headache 

 PS. Currently I'm using FOP from .NET using a Web Service wrapper, which
 works just fine, although there is some overhead in this solution. DS

But it works and resource use will go down soon.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: FOP.NET

2003-12-01 Thread John Austin
On Mon, 2003-12-01 at 12:47, Gunnar Liljas wrote:
  We have all been wondering why .NET isn't implemented in Open
  Source components written in Java.
 
 You're ironic, I know, but .NET-usage of FOP would still be quite usable. To
 get it in C# one would have to rewrite the entire thing (although help is
 available in the form om Java Language Conversion Assistant in Visual
 Studio). A C# FOP would preferrably use the pull architecture of the
 XMLReader in .NET, instead of the SAX Parser.
 
 NFOP is in J#, and while it may be worth using in a .NET environment, J# is
 still a strange animal.

There is no reason due to FOP (or Java) that you can't execute FOP
from .NET. Any restrictions are due to implementation details of
.NET.

That makes it a question for the developers of .NET not the 
developers of FOP.
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Login problems in the bug database

2003-12-01 Thread John Austin
On Mon, 2003-12-01 at 16:00, Simon Pepping wrote:
 On Thu, Nov 27, 2003 at 10:18:25PM -0330, John Austin wrote:
  On Thu, 2003-11-27 at 17:35, Simon Pepping wrote:
   Hi,

   
  It's a pain of a problem to solve, ... Ethereal ...
  Good graphical interface.
 
 A good tool indeed, which provides an interesting insight in network
 traffic.
 
 For debugging of login and cookie problems its information is a bit
 overwhelming. 

I should have also mentioned that there are some easier tools in
Marty Hall's book: Core Servlets and JavaServer Pages. 
The EchoServer example should be useful for this type of problem.

Hmmm... I wonder if the Prime Minister of Canada: Jean
(Don't-the-door-hit-ya-on-the-ass) Chretien still sets
a Cookie on the page that states that he doesn't use Cookies on 
his web site.

1) Load http://www.pm.gc.ca/ 
2) start Ethereal and turn on 'capture'
3) click on 'Important Notices'
4) stop capture and look at the HTTP page headers

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Login problems in the bug database

2003-11-28 Thread John Austin
On Thu, 2003-11-27 at 17:35, Simon Pepping wrote:
 Hi,
 
 When I am logged in in the bug database, I must continually renew my
 login. I use Mozilla Firebird 0.6 and Mozilla 1.4 on Linux. Cookies
 are enabled. I have a cookie from nagoya, called BUGLIST.
 
 When I use IE on Windows98 all goes well.
 
 What do I do wrong? Is there a more specific email address for
 questions about bugzilla?
 
It's a pain of a problem to solve, but 'Ethereal' from
'ethereal.com' should be able to track the session down
for you. It will show you all of the HTTP PDU's and timings.

Good graphical interface.

 Regards, Simon
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Memory measurement -- importance of Driver.reset()

2003-11-21 Thread John Austin
After reading the Sept 2003 thread about Memory Performance, leaks (and
how wonderful ADA is), I modified my test program that generates
3 PDF files. The program now sleeps 30 seconds, calls Driver.reset(),
nulls the reference and sleeps again. In JMP this plots a square wave
between that you can read on the attached graphs.

It is clear that there is a fair bit of memory freed by Driver.reset(). 

After thinking it over, I modified the same test to skip reset() and
just null the reference and issue System.gc().

This should be the same as letting it go out of scope (which happens
afterwards but this way I get the square wave on the graph).

Guess what ?

Attachment 2: footprint2.png has about 1Mb more heap in use!
And this is a very short test file with just one member name  address.
The test prints a letter, envelope and a renewal form for a non-profit
Gardening group.

The difference ... no call to Driver.reset() !!!

Why ? Does this suggest that there are finalizers (destructors) that are
not being called ? References set to null inside reset() should all
be unreachable when the reference to Driver goes out of scope.

This might explain problems people are reporting when 
generating multiple PDF files using FOP. Especially if their
programs don't lose references to instances of Driver.

Personally, I suspect there are a lot of logical memory leaks
inside FOP. A reset() at the end of using a Driver instance is a
catch-all way of releasing all of the logically leaked memory
allocated from inside Driver() (and therefore inside FOP).

This approach is of little help to the developer who builds an
application that dies of memory exhaustion in production. We will have
to fix the logical leaks inside FOP to improve the user experience.


-- 
John Austin [EMAIL PROTECTED]
attachment: footprint2.pngattachment: footprint.pngimport java.io.File;
import java.io.IOException;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory ;

import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;

import org.apache.fop.apps.Driver;
import org.apache.fop.apps.FOPException;

/**
* Use JAXP 1.1 to apply two transformations and FOP to generate PDF output
* for the Friends of the Gardens (FOG) project for the MUN Botanical Garden
*
* Requires: 
* (i)  Java = 1.4 to obtain the XML parser and XSLT processor - JAXP 1.1
* (ii) FOP = 0.20.5, fop.jar and the associated batik.jar and avalon-cvs-20020806000.jar
* (iii) Input file: members.xml
* (iv) Transforms: letter.xsl,  letter2fo.xsl, 
*  env.xsl, env2fo.xsl, 
*  renewal.xsl, renewal2fo.xsl
* Compile:
* javac -classpath .;fop.jar;avalon-framework-cvs-20020806.jar SimpleJaxp.java
* 
* Execute:
* java -Xmx4 -classpath .;fop.jar;batik.jar;avalov-framework-cvs-20020806.jar SimpleJaxp
* 
* Alternative:
* cocoon: pipelines like this:
	map:match pattern=renewal
	  map:enerate src=members.xml/
	  map:transform src=renewal.xsl /
	  map:transform srcrenewal2fo.xsl /
	  map:serialize type=fo2pdf/
	/map:match
*/

public class SimpleJaxp extends java.lang.Thread {
	
	public static void main(String[] args)
		throws javax.xml.transform.TransformerException {

		java.util.Calendar cal = java.util.Calendar.getInstance();
		long start = cal.getTimeInMillis();
		
		transformToPDF( letter,  members.xml, letter.xsl,  letter2fo.xsl  );
		transformToPDF( env, members.xml, env.xsl, env2fo.xsl );
		transformToPDF( renewal, members.xml, renewal.xsl, renewal2fo.xsl );	
		
		System.out.println( Elapsed  
		+ ((java.util.Calendar.getInstance().getTimeInMillis() - start + 500)/1000)
		+  seconds. );
		
		try {
		sleep(24*360);
		}
		catch (InterruptedException e ) {
		System.err.println( sleep() Interrupted. );
		}
	}
	
	public static void transformToPDF(
		String namePart,
		String xmlFileName,
		String xsltFileName1,
		String xsltFileName2
	) 
		throws javax.xml.transform.TransformerException {
		
		File xmlFile = new File( xmlFileName );
		File xsltFile = new File( xsltFileName1);
		
		File out1 = null;
		
		try {
			out1 = File.createTempFile( namePart, .xml );
			out1.deleteOnExit();
		}
		catch( IOException ioe ) {
			System.err.println( Could not create temp file );
			System.exit(0);
		}

		//*** First transformation ***
		
		Source xmlSource = new StreamSource(xmlFile);
		Source xsltSource = new StreamSource(xsltFile);

		Result result = new StreamResult(out1);

		TransformerFactory transFact = TransformerFactory.newInstance();

		Transformer trans = transFact.newTransformer(xsltSource);

		trans.transform(xmlSource, result );
		
		trans = null;
		
		//*** Second transformation ***
		
		File xsltFile2 = new File( xsltFileName2);
		
		Source

RE: Merging XML and FO files

2003-11-19 Thread John Austin
On Wed, 2003-11-19 at 14:59, [EMAIL PROTECTED] wrote:
 The instructions at this link 
 (http://xml.apache.org/fop/running.html#standalone-start) seem pretty clear 
 to me. I think the piece you are missing is an XSLT stylesheet to convert 
 your XML to XSL-FO.

There are some useful articles at ibm's Developerworks web site.

Ten seconds on teoma or google ought to get you there.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



FOP Performance

2003-11-18 Thread John Austin
I was curious about FOP Performance and decided to run a program
of mine under Java Memory profiler.

It appears that a high runner in FOP is PropertyList.findProperty().

If anyone would like to see JPEG's of a couple of related screen dumps,
I could post them to the list or send under separate cover.

I have started using Cocoon and FOP again after absence of a year 
or so. The improvements in both are noticeable and welcome.

Well done.

[Anyone else watching John Madden and crew tonight ?]
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



FOP Performance

2003-11-18 Thread John Austin
Ok. Here are screen dumps of my JMP test of FOP.

Scenario:

Three PDF's are produced, a letter, application form and an
envelope. For a mail-out for a non-profit organization. (My other
choice was Access 2000).

There are 400, 800 and 400 page images produced from something
that used to run in Cocoon, now wrapped in a variation of
SimpleJaxp.java from the O'Reilly Java and XSLT book (Eric Burke ?)
to run on the client's computer.

Each PDF has the same structure: two XSLT's (i) simple set-up
merging content with database data (400 members) (ii) XSL-FO run
which feeds FOP through javax.xml.transform.SAXResult().

I won't share the data right now but the program normally runs for
about five minutes on an Athlon 800, RH 9 and Java 1.4.1. I thought
this was too slow even if my XSLT code is less than divinely
inspired.

I built and installed Java Memory Profiler from:
http://www.khelekore.org/jmp/performance.html and started a test.

This runs slowly but it appears to identify some code that bears
investigation. Here are some screen shots of my results:

The last file list_jmp3.jpg was taken just before the program
terminated.

Obviously, PropertyList-HashMap lookups are taking a LOT of time.

The PropertyList.java class is a lot more complex than a simple hash
lookup and I suspect it might be profitable to take a look. Right
out of the starting blocks, the constructor makes no reference
to Initial Capacity or Load Factor. I am confused by the code
and the seeming hurry to look everything up in the parent property
lists.

-- 
John Austin [EMAIL PROTECTED]
attachment: list_jmp1.jpgattachment: list_jmp2.jpgattachment: list_jmp3.jpg-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

FOP ~ PropertyList search gives linear performance

2003-11-18 Thread John Austin
Further to my notes on FOP performance characteristics 
of the PropertyList methods, it appears (afaik) that the 
design of this part of FOP exhibits linear tendencies.

Properties are stored in a tree where each 'level' 
corresponds to a formatting object (fo:block, fo:table)
which has local attributes (properties) and inherits 
further properties from enclosing objects. Each level's
properties are stored in a HashMap. Inheritence is 
modelled by pointers to the 'parent' and this appears
to be the cause of pathological performance in the 
findProperty() method. The step that looks at the 
parent pointer is equivalent to a linear search because 
there will be small numbers of attributes at each level 
and many levels to search.

It would seem to follow that performance would benefit
by specifying all properties at the innermost level. 
I suspect that this benefit would be limited by the 
additional costs of parsing additional attributes.
One could mitigate the effects by specifying most
properties at intermediate levels with long lifetimes
and possibly by limiting the number of extraneous 
levels. This approach might be pragmatic in some cases
but it is problematic and would not provide a long-term
solution.

I don't think the redesign of this component will be 
trivial as there are trade-off's in performance due to 
the fact that the tree could be quite deep and the 
highest levels won't have long lifetimes that could
benefit from more complex structures (which cost more 
to construct). I do think the component should be
redesigned but I don't offer a replacement as I don't
know what the future of the 0.20.5 code branch is.

-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Properties redesigned in CVS Head

2003-11-18 Thread John Austin
So what is the schedule for the next release ?
-- 
John Austin [EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Learning needeed

2002-06-04 Thread John Austin
On Tuesday 28 May 2002 02:09 am, you wrote:
 Ramon Maria Gallart wrote:
  Hi all! I want to learn how to use FOP well and all the


 I found the XSL FO Tutorial on www.renderx.com quite useful. Also, if

And I think there is something on the Antenna House web site:

http://www.antenna.co.jp/XML/downfree/howtoRC/Howtodevelop-en.pdf




Re: Why is FO(P) a superior model than what most proprietary tools propose

2002-04-30 Thread John Austin
On Monday 29 April 2002 13:51, you wrote:
 Thank you for all these good ideas. Would anyone happen to know of an
 industry analyst study on the advantages of XSL FO ?
 This is to lend some credibility to my recommendation.

Well, Gates and his minions are squealing like stuck pigs. Where 
there's smoke there's fire.

Actually, that is the crux of the matter. IMHO, Open Source is yet 
another manifestation of Mecalfe's Law: The utility of a network 
increases as the square of the number of nodes on the network.

All of those Open Source developers out there have become a more 
efficient team than Microsoft or anyone else can ever assemble. IBM, 
Sun and a few others seem to have realized this. Microsoft's 
proprietary approach can't win in this new world, any more than steam 
locomotives could win against diesel-electric (the laws of 
thermodynamics are a bit better-known than Metcalfe's law).

My other example of Metcalfe's Law in action is Sept 11th. Compare the 
information flows of those events with the day of the JFK Assassination 
and the day of the Challenger explosion. Todd Beamer and the other 
passengers on Flight 97 had cell phone nodes to talk to family members 
who had televisions which revealed the hijacker's plans. The network 
gave them the information to make the decision to give their lives to 
save people in Washington DC. Think about that. They were able to make 
that decision in this age of hoaxes, spam, worms and viruses. 




Re: Several questions about FOP

2002-04-16 Thread John Austin

 1) Can one use FOP on a host-environment, ie. IBM mainframe
 computers, or does EBCDIC somehow cause problems

FOP is written in Java and Java uses UNICODE for characters. I know 
better than to suggest that EBCDIC won't be problematic but in theory 
it's not supposed to be a problem. 

Although it's been a while since I served on a battleship ;-) 
I understand that Big Blue now provide Linux on the Operating Systems 
formerly known as MVS and/or VM. 



Re: force-page-count, blank page and text in this blank page

2002-04-11 Thread John Austin
On Wednesday 10 April 2002 05:00, you wrote:
 Hy

 I'm on a document composed with diferent page sequences.
 Those sequences are put together to realise a final document.
 So I have to generate sequences with a force-count-page to have an
 even number of pages in each sequence.
 The problem is that when a page is forced it appears without text in,
 and I would like this page to contain a text like :
 normal blank page .

 How can I do such a thing ?

This is discussed in The XSL Companion by Neil Bradley; 
http://www.awl.com/cseng pup 2000. Chapter 17: XSL.

You can also get the gist of this from Elliot rusty Harold's XML book
or from the tutorials on the www.renderx.com, antennahouse.com or from 
IBM.com's developerworks or alphaworks sites.

Specifically see pp 150-155. 

root ...
  layout-master-set
simple-page-master master-name=first-page
  !-- TEMPLATE 1 --
/simple-page-master
  ... more s-p-m's for right-page, left-page and blank-page 
  ...

page-sequence-master master-name=ChapterSequence
  repeatable-page-master-alternatives
conditional-page-master-reference
page-position=first 
master-reference='first-page
   ... blank, odd and even pages omitted

  /repeatable- ...
/page-seq...
  /layout-master-set


  page-sequence master-reference=ChapterSequence

... repeat static content blocks and a single flow/ object


  /page-sequence
root