Difference between revisions of "Documentation/DevGuide/WritingUNO/Write Registration Info Using a Helper Method"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Robot: Changing Category:Documentation/Developers Guide/Writing UNO)
m (Robot: Changing Category:Documentation/Developers Guide/Writing UNO Components)
Line 46: Line 46:
[[Category:Documentation/Developers Guide/Writing UNO Components]]
[[Category:Documentation/Developer's Guide/Writing UNO Components]]

Revision as of 11:22, 5 June 2008

UNO components have to be registered with the registry database of a service manager. In an office installation, this is the file types.rdb (up through 1.1.0, applicat.rdb) for all predefined services. A service manager can use this database to find the implementations for a service. For instance, if an instance of your component is created using the following call.

  Object imageShrink = 

Using the given service or implementation name, the service manager looks up the location of the corresponding jar file in the registry and instantiates the component.


During the registration, a component writes the necessary information into the registry. The process to write the information is triggered externally when a client calls the __writeRegistryServiceInfo() method at the component.

  public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)

The caller passes an com.sun.star.registry.XRegistryKey interface that is used by the method to write the registry entries. Again, the FactoryHelper class offers a way to implement the method:

  // static __writeRegistryServiceInfo implementation
  public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
      return FactoryHelper.writeRegistryServiceInfo( ImageShrink.class.getName(), 
      __serviceName, regKey); 

The writeRegistryServiceInfo method takes three arguments:

  • implementation name
  • service name
  • XRegistryKey

Use tools, such as regcomp or the Java application com.sun.star.tools.uno.RegComp to register a component. These tools take the path to the jar file containing the component as an argument. Since the jar can contain several classes, the class that implements the __writeRegistryServiceInfo() method must be pointed out by means of the manifest. Again, the RegistrationClassName entry determines the correct class. For example:

 RegistrationClassName: org.openoffice.comp.test.ImageShrink

The above entry is also necessary to locate the class that provides __getServiceFactory(), therefore the functions __writeRegistryServiceInfo() and __getServiceFactory() have to be in the same class.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools