This is done via XML files:
<?xml version="1.0" encoding="UTF-8"?>
<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0"
xmlns:cm="http://www.alfresco.org/model/content/1.0">
<view:reference view:pathref="${system.authorities_container.childname}/cm:GROUP_Knowledge_x0020_Base_x0020_Consumers">
<view:associations>
<cm:member>
<view:reference view:pathref="${system.people_container.childname}/cm:admin"
view:childName="cm:admin" />
</cm:member>
<cm:member>
<view:reference view:pathref="${system.people_container.childname}/cm:alftest1"
view:childName="cm:alftest1" />
</cm:member>
</view:associations>
</view:reference>
<view:reference view:pathref="${system.authorities_container.childname}/cm:GROUP_Knowledge_x0020_Base_x0020_Coordinators">
<view:associations>
<cm:member>
<view:reference view:pathref="${system.people_container.childname}/cm:admin"
view:childName="cm:admin" />
</cm:member>
<cm:member>
<view:reference view:pathref="${system.people_container.childname}/cm:alftest2"
view:childName="cm:alftest2" />
</cm:member>
</view:associations>
</view:reference>
</view:view>
We add the admin user, which we get out-of-the-box, and the two users we bootstrapped previously. We can store this XML file as part of the Repository JAR module extension project in a file name such as import-group-memberships.xml.
The group membership XML file can be loaded via a Spring bean configuration as follows:
<bean id="org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader"
class="org.alfresco.repo.admin.patch.impl.GenericBootstrapPatch"
parent="basePatch" >
<property name="id"><value>org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader</value></property>
<property name="description"><value>org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader.description</value></property>
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>${version.schema}</value></property>
<property name="targetSchema"><value>99999</value></property>
<property name="dependsOn" >
<list>
<ref bean="org.alfresco.tutorial.bootstrap.patch.groupsLoader" />
<ref bean="org.alfresco.tutorial.bootstrap.patch.userProfilesLoader" />
<ref bean="org.alfresco.tutorial.bootstrap.patch.usersLoader" />
</list>
</property>
<property name="importerBootstrap">
<ref bean="spacesBootstrap" />
</property>
<property name="bootstrapView">
<props>
<prop key="path">/${system.system_container.childname}</prop>
<prop key="location">alfresco/module/bootstrap-content-repo/bootstrap/import-group-memberships.xml</prop>
</props>
</property>
</bean>
Note how it depends on the beans that loads the users and groups.
The id and description properties for the group loading should be specified in a message resource file as follows:
org.alfresco.tutorial.bootstrap.patch.groupsLoader=Load Groups org.alfresco.tutorial.bootstrap.patch.groupsLoader.description=Bootstraps groups KB Consumer and KB Coordinator org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader=Load Group Memberships org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader.description=Loads the groups KB Consumer and KB Coordinator with 2 users