使用 Helper 的方法编写注册信息
From Apache OpenOffice Wiki
< Zh | Documentation
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
UNO 组件必须使用服务管理器的注册表数据库注册。在办公软件安装中,这是用于所有预设服务的文件 types.rdb(在 1.1.0 之前为 applicat.rdb)。服务管理器可以使用此数据库查找服务的实现。例如,如果您的组件的实例使用以下调用创建。
Object imageShrink =
xRemoteServiceManager.createInstance("org.openoffice.test.ImageShrink");
服务管理器使用给定的服务名称或实现名称,在注册表中查找相应的 jar 文件,并实例化组件。
在注册的过程中,组件将向注册表中写入必要的信息。当客户端调用组件的 __writeRegistryServiceInfo() 方法时,将从外部触发写入信息的过程。
public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
调用程序将传送该方法用来写入注册表条目的 com.sun.star.registry.XRegistryKey 接口。同样,FactoryHelper 类提供了实现方法的方式:
...
// static __writeRegistryServiceInfo implementation
public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
return FactoryHelper.writeRegistryServiceInfo( ImageShrink.class.getName(),
__serviceName, regKey);
}
writeRegistryServiceInfo 方法接受三个参数:
- 实现名称
- 服务名称
- XRegistryKey
使用工具(如 regcomp)或使用 Java 应用程序 com.sun.star.tools.uno.RegComp 来注册组件。这些工具可以接受包含组件的 jar 文件的路径作为参数。由于 jar 可以包含多个类,实现 __writeRegistryServiceInfo() 方法的类必须通过标明的方式指出。同样,RegistrationClassName 条目将确定正确的类。例如:
RegistrationClassName: org.openoffice.comp.test.ImageShrink
上述条目对于确定提供 __getServiceFactory() 的类的位置也是非常必要的,因此函数 __writeRegistryServiceInfo() 和 __getServiceFactory() 必须在同一类中。
| Content on this page is licensed under the Public Documentation License (PDL). |