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

From Apache OpenOffice Wiki
Jump to: navigation, search
m (1 revision(s))
m
Line 7: Line 7:
 
{{DISPLAYTITLE:Write Registration Info Using Helper Method}}
 
{{DISPLAYTITLE:Write Registration Info Using Helper Method}}
 
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 {{OO1.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.
 
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 {{OO1.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.
 
+
<source lang="java">
 
   Object imageShrink =  
 
   Object imageShrink =  
 
   xRemoteServiceManager.createInstance("org.openoffice.test.ImageShrink");
 
   xRemoteServiceManager.createInstance("org.openoffice.test.ImageShrink");
 
+
</source>
 
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.
 
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.
  
Line 18: Line 18:
  
 
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 <code>__writeRegistryServiceInfo()</code> method at 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 <code>__writeRegistryServiceInfo()</code> method at the component.
 
+
<source lang="java">
 
   public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
 
   public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
 
+
</source>
 
The caller passes an <idl>com.sun.star.registry.XRegistryKey</idl> interface that is used by the method to write the registry entries. Again, the <code>FactoryHelper</code> class offers a way to implement the method: <!--[SOURCE:Components/Thumbs/org/openoffice/comp/test/ImageShrink.java]-->
 
The caller passes an <idl>com.sun.star.registry.XRegistryKey</idl> interface that is used by the method to write the registry entries. Again, the <code>FactoryHelper</code> class offers a way to implement the method: <!--[SOURCE:Components/Thumbs/org/openoffice/comp/test/ImageShrink.java]-->
 
+
<source lang="java">
 
   ...
 
   ...
 
    
 
    
Line 31: Line 31:
 
       __serviceName, regKey);  
 
       __serviceName, regKey);  
 
   }  
 
   }  
 
+
</source>
 
The writeRegistryServiceInfo method takes three arguments:
 
The writeRegistryServiceInfo method takes three arguments:
  

Revision as of 21:14, 21 March 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 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