Business proxies

Business proxies are constructed based on the name of the transaction or its type (for example, persistent, inquiry, or search).

Before OSGi

In InfoSphere® MDM version 10.1 and earlier, the transaction name or transaction types were mapped to the corresponding business proxy in the TCRM.properties or the DWLCommon.properties files like this:
#################################
#  Data Stewardship             #
#################################
BusinessProxy.tcrm.comparativePreviewCollapseParties=
	com.dwl.tcrm.coreParty.bp.TCRMComparativePreviewCollapseBP
BusinessProxy.tcrm.getComparativeParties=
	com.dwl.tcrm.coreParty.bp.TCRMGetComparativePartiesBP

Then, reflection was used to instantiate the business proxy and to invoke its execute method.

With OSGi

Business Proxies are created using OSGi services that are business proxy factories, and you must provide a blueprint definition for the factories that construct your business proxies. For each business proxy, use the following template:
<service id="BusinessProxy.getComparativeMultipleParties" 
	interface="com.ibm.mdm.common.servicefactory.api.BusinessProxyFactory">
	<service-properties>
		<entry key="transaction.name" value="Your_Transaction_Name" />
	</service-properties>
	<bean class="com.ibm.mdm.common.servicefactory.BusinessProxyFactoryImpl" >
		<argument type="java.lang.Class" value="Business Proxy Class Name" />	
		<argument ref="blueprintBundle"/>	
	</bean>
</service>
To map Business Proxies to a given transaction type, use the following service definition template:
<service id="BusinessProxy" interface="com.ibm.mdm.common.servicefactory.api.BusinessProxyFactory" ranking="10">
		<service-properties>
			<entry key="transaction.type">
				<list>
			 		<value>com.dwl.base.requestHandler.DWLTransactionPersistent</value>			 		
			 	</list>
			 </entry>			
		</service-properties>
		<bean class="com.ibm.mdm.common.servicefactory.BusinessProxyFactoryImpl" >
			<argument type="java.lang.Class" value="my.new.customBP" />				
			<argument ref="blueprintBundle"/>	
		</bean>
	</service>
Note the ranking must be greater than "0". Possible transaction.type values are:
  • com.dwl.base.requestHandler.DWLTransactionInquiry
  • com.dwl.base.requestHandler.DWLTransactionSearch
  • com.dwl.base.requestHandler.DWLTransactionPersistent