...
Unlike CascadingPersonAttributeDao, MergingPersonAttributeDao invokes each child with the same seed, the seed with which the MergingPersonAttributeDao itself was invoked.
Advanced configuration
Here's an example of configuring a MergingPersonAttributeDaoImpl to apply an alternative merge strategy and to propogate any exceptions thrown by the DAOs it is merging.
Code Block | ||||
---|---|---|---|---|
| ||||
<beans>
<bean id="personAttributeDao"
class="org.jasig.portal.services.persondir.support.MergingPersonAttributeDaoImpl">
<property name="personAttributeDaos">
<list>
<bean
class="org.jasig.portal.services.persondir.support.JdbcPersonAttributeDaoImpl">
<constructor-arg>
<bean
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>${jdbc.driverClassName}</value></property>
<property name="url"><value>${jdbc.url}</value></property>
<property name="username"><value>${jdbc.username}</value></property>
<property name="password"><value>${jdbc.password}</value></property>
</bean>
</constructor-arg>
<constructor-arg>
<value>SELECT name, shirt_color FROM
someschema.sometable WHERE uid = ?</value>
</constructor-arg>
<property name="columnsToAttributes">
<map>
<entry key="name">
<value>name</value>
</entry>
<entry key="shirt_color">
<value>shirtColor</value>
</entry>
</map>
</property>
</bean>
<bean
class="org.jasig.portal.services.persondir.support.LdapPersonAttributeDaoImpl">
<property name="ldapAttributesToPortalAttributes">
<map>
<entry key="name">
<value>name</value>
</entry>
<entry key="shirt_color">
<value>shirtColor</value>
</entry>
</map>
</property>
<property name="ldapServer">
<bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod">
<value>
org.jasig.portal.ldap.LdapServices.getLdapServer</value>
</property>
<property name="arguments">
<list>
<value>personLdap</value>
</list>
</property>
</bean>
</property>
<property name="uidQuery">
<value>(cn={0})</value>
</property>
</bean>
</list>
</property>
<property name="recoverExceptions">
<value>false</value>
</property>
<property name="merger">
<bean class="org.jasig.portal.services.persondir.support.merger.NoncollidingAttributeAdder"/>
</property>
</bean>
</beans>
|