Pluggable keys
The following is a description of the changes to how InfoSphere® MDM uses and handles pluggable keys.
Before OSGi
If you created a custom primary
key or other key generator, you would have configured it in the TCRM_Extension.properties as
follows:
id_factory_questionnaire = com.mycompany.MyQuestionnaireIDFactory
id_factory_question = com.mycompany.MyQuestionIDFactory
id_factory = com.mycompany.MyIDFactory
For every
entity in which you chose to implement a pluggable key, you would
have prefixed the entityname (for example, questionnaire)
with the string id_factory
. InfoSphere MDM would
recognize this setting and know to use the com.mycompany.MyQuestionnaireIDFactory
as
the pluggable ID generator for the questionnaire entity.
With OSGi
If you’ve chosen to use your own
default id factory in InfoSphere MDM,
you must define a corresponding blueprint for your generic key generator
as follows:
<service id="IDFactory"
interface="com.ibm.mdm.common.servicefactory.api.CommonServiceFactory">
<service-properties>
<entry key="common.service" value="IDFactory"/>
</service-properties>
<bean class="com.ibm.mdm.common.servicefactory.CommonServiceFactoryImpl">
<argument type="java.lang.Class" value="com.dwl.base.IDWLIDFactory"/>
<argument type="java.lang.Class" value="x.y.z.MyIDFactory"/>
<argument ref="blueprintBundle"/>
</bean>
</service>
If you’ve created an entity-specific
ID generator, you’ll need to supply the following for each entity
or table having its unique id factory:
<service id="IDFactory"
interface="com.ibm.mdm.common.servicefactory.api.CommonServiceFactory">
<service-properties>
<entry key="common.service" value="IDFactory.tablename"/>
</service-properties>
<bean class="com.ibm.mdm.common.servicefactory.CommonServiceFactoryImpl">
<argument type="java.lang.Class" value="com.dwl.base.IDWLIDFactory"/>
<argument type="java.lang.Class" value="x.y.z.MyIDFactoryForTableName"/>
<argument ref="blueprintBundle"/>
</bean>
</service>