oox service mess

Kohei Yoshida kohei.yoshida at suse.de
Fri May 31 04:59:30 PDT 2013


On 05/31/2013 03:16 AM, Stephan Bergmann wrote:
> On 05/30/2013 07:20 PM, Kohei Yoshida wrote:
>> On 05/30/2013 12:21 PM, Noel Power wrote:
>>>> is erroneously listed in sc/util/scfilt.component but not included in
>>>> scfilt_component_getFactory (sc/source/filter/excel/xestream.cxx);
>>>> its implementation got initially moved to the scfilt library, but has
>>>> since been removed as it was unreferenced.
>>>
>>> intentional ( at least from me ) I doubt we want to do formula parsing
>>> over uno ( I think Kohei would agree )
>> Yup. We just need to leave one service for formula parser available for
>> extension developers, but for the internal code we should not be using
>> the uno formula parser moving forward.
>
> Just to be clear, with "one service" do you mean
>
> (a) "one service declaration in UNOIDL, for which extension developers 
> can provide implementations, which the ScParserFactoryMap ctor in turn 
> iterates over" (which would be 
> com.sun.star.sheet.FilterFormulaParser), or
>
> (b) "one service implementation" (which would be the lost 
> com.sun.star.comp.oox.xls.FormulaParser)?
No idea whatsoever. To be honest, I don't even know why we have so many 
service names just for the formula parser. Because internally there is 
only one parser implementation. So, whichever service will survive, we 
need to have at least one of them left standing.  That's what I meant.

We would probably need to ask Eike for anything more specific than that.

>
>> And I believe the one we want to keep is made available by
>> ScFormulaParserObj under the "com.sun.star.sheet.FormulaParser" service
>> name, and this one is not on the list of services that Stephan listed,
>> so we are safe here.
>
> Besides the com.sun.star.sheet.FilterFormulaParser UNOIDL (new-style 
> marker, i.e., no ctor) service declaration there is indeed also a 
> com.sun.star.sheet.FormulaParser UNOIDL old-style service declaration, 
> It appears to be a service that is not available at the global service 
> manager, but rather something that can be obtained from some 
> Calc-local manager (ScServiceProvider::MakeInstance handing out 
> ScFormulaParserObj instances under the 
> "com.sun.star.sheet.FormulaParser" key).
Yes. com.sun.star.sheet.FormulaParser is the one I'm familiar with. The 
rest were totally unknown to me.

Kohei

-- 
Kohei Yoshida, LibreOffice Calc hacker, SUSE.



More information about the LibreOffice mailing list