Custom object handlers for changed data detection

The following is a description of the changes to how InfoSphere® MDM uses and handles custom object handlers for changed data detection.

Before OSGi

If you had created custom object handlers for data change detection, you would have followed this pattern:
CDCHandler.default.2= com.ibm.mdm.datachange.DCObjectHandler
CDCHandler.com.dwl.tcrm.coreParty.component.TCRMPartyAddressBObj.2= 
  com.ibm.mdm.party.datachange.PartyDCHandler
CDCHandler.com.dwl.tcrm.coreParty.component.TCRMPartyIdentificationBObj.2= 
  com.ibm.mdm.party.datachange.PartyDCHandler
CDCHandler.com.dwl.tcrm.coreParty.component.TCRMPartyContactMethodBObj.2= 
  com.ibm.mdm.party.datachange.PartyDCHandler
CDCHandler.com.dwl.tcrm.coreParty.component.TCRMPersonNameBObj.2= 
  com.ibm.mdm.party.datachange.PartyDCHandler
CDCHandler.com.dwl.tcrm.coreParty.component.TCRMOrganizationNameBObj.2= 
  com.ibm.mdm.party.datachange.PartyDCHandler

CDCHandler.<the BObj that you want to handle>.2= <your handler class name>
Where the number 2 represented the purpose type as defined in the CRITICALDATAELEMENT table.

With OSGi

This has been redefined using OSGi blueprints:
<service interface="com.ibm.mdm.datachange.IDCObjectHandler" id="cdchandler.purposetype.2">
	<service-properties>
		<entry key="business.object.purposetype" value="2"/>
		<entry key="business.object">
			<list value-type="java.lang.String">
		<value>com.dwl.tcrm.coreParty.component.TCRMPartyAddressBObj</value>
		<value>com.dwl.tcrm.coreParty.component.TCRMPartyIdentificationBObj</value>
		<value>com.dwl.tcrm.coreParty.component.TCRMPartyContactMethodBObj</value>
		<value>com.dwl.tcrm.coreParty.component.TCRMPersonNameBObj</value>
		<value>com.dwl.tcrm.coreParty.component.TCRMOrganizationNameBObj</value>
		<value>com.dwl.tcrm.coreParty.component.TCRMAddressBObj</value>
	</list>
	</entry>
	</service-properties>
	<bean class="com.ibm.mdm.party.datachange.PartyDCHandler" />
</service>

In the preceding example, each property entry that maps a business object to a handler is replaced by a blueprint service. Each separate handler is its own service. The service properties define the purpose type as laid out in the CRITICALDATAELEMENT table and also the list of business objects that the critical data change handler handles.