Re: [xep-support] Embedding XEP3 in a Java application

From: David Tolpin (
Date: Mon Oct 28 2002 - 02:55:22 PST

> 1) Is XEP re-entrant, i.e. can multiple threads run XEP simultaneously without
> interference?

Yes, it is. XEP is reentrant, with a few carefully selected shared resources
accessible through synchronized calls. We use concurrent processing with XEP

> 2) Is there another way in the API to set the options than through system
> properties? This is important because an application normally doesn't
> have access to the system properties of the JVM running the application
> server. It would also make the options global for the JVM. They would act
> as global variables. This would make it impossible, for example, to choose
> between PDF and PostScript depending on the request. Ideally the options are
> passed through the stack.

All properties have corresponding variables and a way to set them; setting
properties is however a good way to change things. They do not interfere with
other system properties since all of them belong to com.renderx.xep domain.

Choosing a backend is not governed by a system property; it is handled in this
way by com.renderx.xep.Driver for the sake of tradition. Switching betwen backends
is accomplished by passing an instance of corresponding backend (which is actually
a org.xml.sax.ContentHandler) to the renderer. One does not need to change a property
to set an output format.

> 3) The user guide says in the description of the TMPDIR option that each JVM
> must have its own tmp directory. Can I conclude from this that the
> generated filenames are not unique? In an application server environment
> this would be difficult to manage. Potentially two versions of XEP are
> present in the system, because different applications use it but can't all
> upgrade at the same time. One application must not impose a test cycle on
> the others only because it needs an upgrade.
> In J2EE this is solved very naturally by including the components in the ear
> file, instead of installing them globally. Applications are insulated from
> each other. A unique TMPDIR per JVM would make this impossible.

I don't understand this point. If you run two different copies of XEP, then you have
two different installations of XEP, each with a separate ROOT and configuration file.
In the same way you can specify a different temporary directory for each installation.
Please describe your problem. I cannot imagine a case when a separate temporary directory
for each running Java Virtual Machine may be a problem.

> 4) For the same reason it should be possible for XEP to load the licence file
> from the class path as a resource.

It is possible.


David Tolpin
By using the Service, you expressly agree to these Terms of Service

This archive was generated by hypermail 2.1.5 : Wed Dec 18 2002 - 08:41:28 PST