Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. added jndi datasource to uPortal55.xml
    Code Block
    <Resource name="jdbc/ournewAudResolutionDbourNewAudResolutionDb" auth="Container" type="javax.sql.DataSource"
        username="<at:var at:name="ourNewAud001jdbcUser" />" password="<at:var at:name="ourNewAud001jdbcPassword" />"
        driverClassName="<at:var at:name="ourNewAud001jdbcDriver" />" url="<at:var at:name="ourNewAud001jdbcUrl" />"
        maxActive="100" maxIdle="30" maxWait="10000"
        poolPreparedStatements="<at:var at:name="poolPreparedStatements" />"
    
        removeAbandoned="true"
        removeAbandonedTimeout="300"
        logAbandoned="true"
      />
    
  2. added jndi attribute mappings to rdbm.properties
    Code Block
    ourNewAud001jdbcDriver=oracle.jdbc.driver.OracleDriver
    ourNewAud001jdbcUrl=jdbc:oracle:thin:@ourNewHostDb:1521:ourNewHostSid
    ourNewAud001jdbcUser=ourNewDbUid
    ourNewAud001jdbcPassword=ourNewDbPsw
    
  3. changed personDirectory.xml to support merged attributes
    Code Block
    <bean id="personAttributeDao" class="org.jasig.portal.services.persondir.support.CachingPersonAttributeDaoImpl">
      <property name="cachedPersonAttributesDao">
       <ref bean="mergedAttributes"/>
      </property>
     </bean>
    
     <bean id="mergedAttributes" class="org.jasig.portal.services.persondir.support.MergingPersonAttributeDaoImpl">
      <property name="personAttributeDaos">
       <list>
        <ref bean="uPortalLdapAttributeSource"/>
        <ref bean="ourNewAudJdbcAttributeSource"/>
       </list>
      </property>
     </bean>
    
  4. added our new audience datasource bean details to personDirectory.xml
    Code Block
    <bean id="ourNewAudJdbcAttributeSource" class="org.jasig.portal.services.persondir.support.JdbcPersonAttributeDaoImpl">
      <constructor-arg>
       <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
        <property name="staticMethod">
         <value>org.jasig.portal.RDBMServices.getDataSource</value>
        </property>
        <property name="arguments">
         <list><value>ourNewAudResolutionDb</value></list>
        </property>
       </bean>
      </constructor-arg>
      <constructor-arg>
       <list>
        <value>username</value>
       </list>
      </constructor-arg>
      <constructor-arg>
       <value>select count(uid) as is_new_aud_user from ourNewAudTable where uid=?</value>
      </constructor-arg>
      <property name="columnsToAttributes">
       <map>
        <entry key="is_new_aud_user">
         <value>isNewAudUser</value>
        </entry>
       </map>
      </property>
     </bean>
    
  5. added audience resolution condition to dlm.xml (referencing the person attribute created above)
    Code Block
    <dlm:fragment name='frg-our-new-fragment' ownerID='our-new-fragment-lo' precedence='10'>
        <dlm:audience evaluatorFactory='org.jasig.portal.layout.dlm.providers.PersonEvaluatorFactory'>
          <paren mode="AND">
            <paren mode="NOT">
              <attribute name="username" mode='equals' value='guest-usr'/>
            </paren>
            <paren mode="NOT">
              <attribute name="isNewAudUser" mode='equals' value='0'/>
            </paren>
          </paren>
        </dlm:audience>
      </dlm:fragment>