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

From Apache OpenOffice Wiki
Jump to: navigation, search
m
(dropped Java RegComp)
Line 39: Line 39:
 
* XRegistryKey
 
* XRegistryKey
  
Use tools, such as ''regcomp'' or the Java application <code>com.sun.star.tools.uno.RegComp</code> 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 <code>__writeRegistryServiceInfo()</code> method must be pointed out by means of the manifest. Again, the <code>RegistrationClassName</code> entry determines the correct class. For example:
+
Use tools such as ''regcomp'' to register a component. This tool takes the path to the jar file containing the component as an argument. Since the jar can contain several classes, the class that implements the <code>__writeRegistryServiceInfo()</code> method must be pointed out by means of the manifest. Again, the <code>RegistrationClassName</code> entry determines the correct class. For example:
  
 
   RegistrationClassName: org.openoffice.comp.test.ImageShrink
 
   RegistrationClassName: org.openoffice.comp.test.ImageShrink

Revision as of 12:27, 18 August 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 = 
  xRemoteServiceManager.createInstance("org.openoffice.test.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.

Template:Documentation/Note

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 to register a component. This tool takes 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
In other languages