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)

WDYT?

Thanks
-Vincent

PS: In the future please use the mailing list for everything related  
to xwiki.

>
> In jodconverter, there a two main interface:
>
> 1) void convertInternal(InputStream inputStream, DocumentFormat
> inputFormat, OutputStream outputStream, DocumentFormat outputFormat);
>       
> 2) void convertInternal(File inputFile, DocumentFormat inputFormat,
> File outputFile, DocumentFormat outputFormat);
>
> The 1) just create a temp file for the outputstream in the system temp
> directory. So if you want to control the output file directory, you
> just have to change system temp directory which is not a way. In our
> case, we want to get all the output when convert to html. So I don't
> think this interface is enough.
>
> The 2) interface just can output all the result file to the
> outputFile's directory which can get from xwiki.getTempFile().
> Maybe you think we can use two Files in clients and deliver the
> FileOutputStream and FileInputStream to the 1) interface, you just get
> one output file in the FileOutputStream and can get the other results.
> The client still can't get the temp directory where the other output
> files.
>
> WDYT?
>
> On Sun, Aug 24, 2008 at 4:02 AM, Vincent Massol <[EMAIL PROTECTED]>  
> wrote:
>> Hi Wang,
>>
>> On Aug 23, 2008, at 9:55 PM, Wang Ning wrote:
>>
>>> Hi Vincent,
>>>
>>> I add a interface in the OfficeConverter
>>> void convert(File inputFile, OfficeDocumentType inputDocumentType,
>>> File outputFile,
>>>      OfficeDocumentType outputDocumentType) throws
>>> OfficeConverterException;
>>> I think this useful.
>>
>> I don't think we need this since you can use a FileInputStream and a
>> FileOutputStream.
>>
>> Thanks
>> -Vincent
>>
>>> And I change the OfficeConverterPlugin that I can control the output
>>> directory of the conversion.
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to