Difference between revisions of "Documentation/DevGuide/WritingUNO/Write Registration Info Using a Helper Method"
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
- Class Definition with Helper Class
- Implementing Your Own Interfaces
- Providing a Single Factory Using a Helper Method
- Write Registration Info Using a Helper Method
- Implementing without Helpers
- Storing the Service Manager for Further Use
- Create Instance with Arguments
- Possible Structures for Java Components
- Running and Debugging Java Components
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.
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). |