Virtual member manager is configured to use dynamic model. You
can create new entity types and their associated new property types at deployment
time.
You need to add new entity types and their associated new property
types. In this examples you are going to create a new entity type, ContactPerson,
and add a new property type, cellPhone, to this entity type. You are going
to define the schemas of the new entity types and property types in the wimxmlextension.xml
file.
- Stop the virtual member manager service.
- Open the wimxmlextension.xml file under the VMM_HOME\model directory. If this file does not exist,
create a new one with the same name.
Note: VMM_HOME is the directory where
the virtual member manager files are located. This location is set to either
the system property wim.home or user.install.root/config/cells/local.cell/wim.
- Edit the wimxmlextension.xml file and add the definitions of the
new entity types and property types. Make sure the XML is well-formed
and confirm to schema defined in wimschema.xsd.
For example, the following
sample defines a new entity type ContactPerson and a new property type called
cellPhone and adds this property type to the new entity type ContactPerson:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:schema>
<wim:entitySchema nsPrefix="yourext"
nsURI="http://www.yourco.com/wim/yourext"
entityName="ContactPerson" parentEntityName="PersonAccount"/>
<wim:propertySchema nsURI="http://www.yourco.com/yourext"
dataType="STRING"
multiValued="true"
propertyName="cellPhone"
valueLength="256">
<wim:applicableEntityTypeNames>ContactPerson</wim:applicableEntityTypeNames>
<wim:metaData name="repositoryPropertyName"
value="cellularTelephoneNumber"/>
</wim:propertySchema>
</wim:schema>
</sdo:datagraph>
Note: The propertySchema data object is used to create a new property
type and add it to an existing virtual member manager entity type
at runtime. The new property is added to the wimxmlextension.xml file.
However, if you also want to extend the database schema of the property
extension repository, you must use the extensionPropertySchema data
object. This will add the new property to the existing entity type
in wimxmlextension.xml file as well as store the property in the property
extension database. The property extension repository must be configured
before you can use extensionPropertySchema. For more information,
read about
Configuring a property extension repository in a
federated repository configuration in the WebSphere Application
Server information center.
- Manually add the new entity types to the virtual member manager
configuration file (wimconfig.xml).
<config:supportedEntityTypes defaultParent="cn=users,dc=yourco,dc=com"
name="yourext:ContactPerson">
<config:rdnProperties>uid</config:rdnProperties>
</config:supportedEntityTypes>
<config:repositories xsi:type="config:LdapRepositoryType" ...>
<config:EntityTypesNotAllowDelete>yourext:ContactPerson</config:EntityTypesNotAllowDelete>
<config:ldapEntityTypes name="yourext:ContactPerson">
<config:rdnAttributes name="uid"/>
<config:objectClasses>eContactPerson</config:objectClasses>
<config:objectClassesForCreate>eContactPerson</config:objectClassesForCreate>
<config:objectClassesForCreate>inetOrgPerson</config:objectClassesForCreate>
</config:ldapEntityTypes>
</config:repositories>
- Manually add the new property types to each repository adapter.
- LDAP adapter
- Add the mapping of the new
property types to LDAP attributes to the wimconfig.xml configuration file.
- DB adapter
- Add the definition of the new property types to the property XML file
of DB Adapter (wimDBProperties.xml) and run DB property loader.
- Restart the virtual member manager service.