Hi Devs,
=INTRO=
A new version of jodconverter has been released (
http://code.google.com/p/jodconverter/) which, among several other
enhancements includes support for automating openoffice server process
management. Even though the jodconverter API has changed slightly, upgrading
officeimporter to use this new version of jodconverter does not require that
much of an effort and it will allow us to control the oo server instance
pretty easily.
With this new version jodconverter, all we have to do is configure the path
to the OO server installation (and few more options) within our web.xml (or
similar) file. Apart from that, starting / stopping the oo server process
can be done in java. Optionally, we can configure following two parameters
as well:
1. Maximum number of simulataneous conversion tasks to be handled by a
single oo server instance.
2. Task execution timeout.
=UI=
To integrate oo server management functions in XE UI we can create an admin
page for officeimporter like XWiki.OfficeImporterAdmin and link to it from
XWiki.AdminSheet. As a start, I have created the this mockup ui:
http://i39.tinypic.com/6tlli9.png.
Please help me improve this UI :)
=IMPLEMENTATION=
I can see two different designs that would work:
1. Add the required method signatures (see below) to OfficeImporter
component interface.
2. Introduce a separate component for managing the OpenOffice server
instance.
In any case, following methods (API) will have to be added:
1. startOoServer(); // start
2. stopOoServer(); // stop
3. getOoServerStatus(); // get current state (running / stopped / error)
4. getOoServerPath(); // Returns the location of oo server installation to
be displayed on admin UI
5. getOoServerProfilePath(); // Each oo server installation is associated
with a profile, this parameter also need to be configured in web.xml
Since OpenOffice server is used only by officeimporter, adding those methods
to OfficeImporter interface seems ok to me.
WDYT?
Thanks.
- Asiri