Hi Daan, for I am very new to singletons, please allow me some more questions. May be some are silly, but I have a lack of knowledge...
> 1. You first need to create an UNO interface for your extension (say > XConnectionManager) I have already created a UNO interface for my extension: - XJudasComponent.idl and - JudasComponent.idl Now I add a new idl file named XSpringLoader.idl: -----%<----- #ifndef __de_twc_oocom_comp_xspringloader_idl__ #define __de_twc_oocom_comp_xspringloader_idl__ #include <com/sun/star/uno/XInterface.idl> module de { module twc { module oocom { module comp { interface XSpringLoader : com::sun::star::uno::XInterface { published singleton twcSpringLoader : XSpringLoader; }; }; }; }; }; #endif -----%<----- But my idlc compiler won't compile: -----%<----- ...XSpringLoader.idl(8) : error in lookup of symbol: 'published' ...XSpringLoader.idl(8) : Illegal syntax or missing identifier after operation type: syntax error, unexpected IDL_SINGLETON, expecting IDL_IDENTIFIER or IDL_GET or IDL_SET or IDL_PUBLISHED -----%<----- > 2. The UNO singleton is then defined as follows: > published singleton theConnectionManager : XConnectionManager; What is incorrect in the above idl file? > 3. Implement the singleton by creating an implementation of the > XConnectionManager interface, say ConnectionManagerImpl. OK. This will look like this: -----%<----- package de.twc.oocom.comp; public class SpringLoaderImpl implements XSpringLoader { //myCode } -----%<----- > 4. Store the singleton by adding the following code to > __writeRegistryServiceInfo in you component registration class: > try { > XRegistryKey newKey = > xRegistryKey.createKey(ConnectionManagerImpl.class.getName() + > "/UNO/SINGLETONS/" + theConnectionManager.class.getName()); > > newKey.setStringValue("de.krais.tobias.sample.theConnectionManager"); > } catch (InvalidRegistryException e) { > return false; > } Should I add this code in the new class SpringLoaderImpl or in the class JudasComponent, which im my "main" class for the extension? > 5. __getComponentFactory can be updated as you would do for an ordinary > service (no special handling for singletons required) > 6. Now the singleton can be retrieved by calling > theConnectionManager.get(componentContext) I have to read about this... Thanks a lot for your help! It boosts my task! Greetings, Tobias --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]