Hi Vincent,
 Sorry for not send the mail to the dev list. I just reply the mail.
 On Sun, Aug 24, 2008 at 4:15 PM, Vincent Massol <vincent(a)massol.net>
 wrote:
 On Aug 24, 2008, at 6:40 AM, Wang Ning wrote:
  Hi,
 Yes, I think it's necessary, if the client want to control the
 output
 directory. 
 Ok I've thought a bit about this and here's what I propose:
 1) Introduce a new ConverterOutput interface with the following
 methods:
 - saveImage(String imageName, InputStream imageData);
 - saveDocument(InputStream documentData);
 2) Modify Converter interface to be:
 void convert(InputStream sourceData, OfficeDocumentType sourceType,
 ConverterOutput outputData, OfficeDocumentType outputType);
 3) Provide 1 implementation of ConverterOutput for the moment (+ a
 mock one
 for the unit tests of the Converter): XWikiDocumentConverterOutput.
 This
 implementation stores the result of the conversion in a XWiki
 Document (it's
 name/location is passed in the constructor). In the future if we
 need other
 implementations we could add them (like a FileConverterOutput, etc)
 but
 they're not needed for now.
 Note 1: 3) is much cleaner and allows to move some of the code in
 the plugin
 to the XWikiDocumentConverterOutput class.
 Note 2: We can fully read the sourceData internally to save the
 input data
 to a file in a XWiki temporary directory (and thus control the
 output of the
 image files by jodconverter) 
 If want to get the xwiki temp directory to handle the output dir of
 conversion in OfficeConverter, I need use
 context.getWiki().getTempDirectory(context) to get the xwiki temp dir.
 But I don't think I can get the xwiki temp without a xwik context.
 Maybe the interface should change to
 void convert(InputStream sourceData, OfficeDocumentType sourceType,
 ConverterOutput outputData, OfficeDocumentType outputType,
 XWikiContext context) throws OfficeConverterException; 
I'd like that we keep the office converter  (I'm not talking about the
plugin) separate from xwiki core. The XWiki.getTemporaryDiredctory()
method should be moved elsewhere but since this is not done for now
I'd suggest you compute your own temporary directory for now and we'll
replace the code with the right one later on.
Thanks
-Vincent