联合存储库示例的样本定制适配器
联合存储库的开箱即用适配器提供文件适配器、LDAP 适配器和数据库适配器供您使用。这些适配器实现 com.ibm.wsspi.wim.Repository 软件编程接口 (SPI)。不论适配器正在与之交互的存储库类型为何,虚拟成员管理器定制适配器需要实现同一 SPI。定制适配器可以与其交互的存储库类型没有任何限制。
为联合存储库开发定制适配器
联合存储库的开箱即用适配器提供文件适配器、LDAP 适配器和数据库适配器供您使用。所有这些适配器将实现 com.ibm.wsspi.wim.Repository SPI。有关更多信息,请参阅 com.ibm.wsspi.wim.Repository SPI。当您开发虚拟成员管理器定制适配器时,需要实现同一个 SPI。
联合存储库的定制适配器不能依赖于任何 WebSphere® Application Server 组件,例如数据源和企业 Bean。这些 WebSphere Application Server 组件要求在启动前初始化并启用安全性。如果联合存储库的定制适配器的实现需要使用数据源来连接到数据库,那么在服务器启动期间您需要使用 Java™ 数据库连接 (JDBC) 来建立连接。稍后,在数据源可用的情况下,改为使用数据源来连接到数据库。
提供了联合存储库的定制适配器的建议行为和要求的一些示例,可以在样本代码中找到。
联合存储库的样本定制适配器
提供了一个样本定制适配器实现作为示例。该定制适配器基于文件存储库。vmmsampleadapter.jar 文件中同时包含样本源代码和类文件。
vmmsampleadapter.jar 文件的内容为如下所示:
- 样本适配器的类文件:
- com/ibm/ws/wim/adapter/sample/AbstractAdapterImpl.class
- com/ibm/ws/wim/adapter/sample/SampleFileAdapter.class
- com/ibm/ws/wim/adapter/sample/XPathHelper.class
- 样本适配器的源代码:
- src/com/ibm/ws/wim/adapter/sample/AbstractAdapterImpl.java
- src/com/ibm/ws/wim/adapter/sample/SampleFileAdapter.java
- src/com/ibm/ws/wim/adapter/sample/XPathHelper.java
注: 不应该在生产环境中使用样本文件。您应该先备份这些文件,将它们重命名,然后根据特定适配器实现来更新这些文件。有关更多信息,请参阅源代码中的 Javadoc。
- com/ibm/ws/wim/sample/adapter/AbstractAdapterImpl.java
- 提供一个抽象实现类,它为适配器处理大多数与存储库无关的内部操作;还要定义一些简单的抽象方法,应该由定制适配器来实现这些抽象方法。大多数情况下可能不需要更改此文件。
- com/ibm/ws/wim/sample/adapter/SampleFileAdapter.java
- 从 AbstractAdapterImpl 类进行扩展并实现抽象方法。此类通过将文件用作存储库来实现抽象方法。适配器提供者可以参考此类来实现这些特定于他们的适配器的方法。
- com/ibm/ws/wim/sample/adapter/XPathHelper.java
- 定义一个 helper 类来解析 XPath 搜索表达式和构建搜索树。此 helper 类还包含用来对搜索表达式求值的方法。如果存储库支持搜索表达式,那么需要将 XPath 表达式转换为存储库可以处理的表达式,并让存储库对该表达式求值。此 helper 类根据数据对象的使用情况来对搜索表达式求值。可以改写 evaluate() 方法,以使用其他对象(例如,java.util.Map)来执行求值。
已经提供了一些实用程序类来帮助适配器提供者。这些实用程序方法中大多数都用于样本适配器中。有关更多信息,请参阅 Javadoc 信息。