AnsweredAssumed Answered

bootstraping groups at tenant creation

Question asked by thomas_nlv on Mar 5, 2014
Latest reply on Oct 13, 2014 by savic.prvoslav
Hello,
Using Alfresco 4.2.e community edition on a win7 64 pc, using the installer (easy option):
i've successfully managed to bootstrap groups when alfresco is launching for the first time, using an amp against the alfresco.war with the alfresco-mmt.jar tool.
Now what i can't find a way to do is to import those same groups at tenant creation time.
What i tried so far is doing kind of the same thing i did with my amp, but in the mt-base-context.xml file.
I can't understand if i'm using the wrong store, or if it is my path that is wrong, and why everything is working for non tenant bootstraping using an amp with a ImporterModuleComponent bean having the exact same bootstrapViews property tag.
Thanks for any help you could provide.
Cheers,
thomas

mt-base-context.xml

<!–
        Bootstrap Data: Prototype beans for the per-tenant bootstrap.
        These are fetched by the MultiTAdminServiceImpl when new tenant is created.
   –>
   <bean id="userBootstrap-mt" parent="userBootstrap-base" singleton="false" />
   <bean id="systemBootstrap-mt" parent="systemBootstrap-base" singleton="false" />
   <bean id="versionBootstrap-mt" parent="versionBootstrap-base" singleton="false" />
   <bean id="version2Bootstrap-mt" parent="version2Bootstrap-base" singleton="false" />
   <bean id="spacesArchiveBootstrap-mt" parent="spacesArchiveBootstrap-base" singleton="false" />
   <bean id="spacesBootstrap-mt" parent="spacesBootstrap-base" singleton="false" class="org.alfresco.repo.importer.ImporterBootstrap">
   <property name="bootstrapViews">
            <list>
            <props>
               <prop key="path">/${alfresco_user_store.system_container.childname}
               </prop>
               <prop key="location">alfresco/module/GroupBootStrap/myGroupImport.xml</prop>
            </props>
         </list>
   </property>
   </bean>



Using the create tenant command in the tenant admin console i get the following trace (no error in alfresco.log or share.log)

org.alfresco.error.AlfrescoRuntimeException: 02050010 Bootstrap failed
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:362)
   …
        …
Caused by: org.alfresco.service.cmr.view.ImporterException: Path /sys:system within node workspace://SpacesStore/946dc7c0-2ff4-42f8-9598-cc5b2b9b2bf8 does not exist - the path must resolve to a valid location
   at org.alfresco.repo.importer.ImporterComponent.getNodeRef(ImporterComponent.java:305)
   at org.alfresco.repo.importer.ImporterComponent.importView(ImporterComponent.java:260)
   at org.alfresco.repo.importer.ImporterBootstrap.doImport(ImporterBootstrap.java:476)
   at org.alfresco.repo.importer.ImporterBootstrap.access$000(ImporterBootstrap.java:71)
   at org.alfresco.repo.importer.ImporterBootstrap$1$1.execute(ImporterBootstrap.java:351)
   at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:452)
   at org.alfresco.repo.importer.ImporterBootstrap$1.doWork(ImporterBootstrap.java:355)
   at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:548)
   at org.alfresco.repo.importer.ImporterBootstrap.bootstrap(ImporterBootstrap.java:358)
   … 85 more



and the myGroupImport.xml file:


<?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" xmlns:sys="http://www.alfresco.org/model/system/1.0"
   xmlns:usr="http://www.alfresco.org/model/user/1.0" xmlns:app="http://www.alfresco.org/model/application/1.0">

   <view:reference view:pathref="${system.authorities_container.childname}">
      <view:associations>
         <sys:children>
            <cm:authorityContainer view:childName="cm:GROUP_AdminDo">
               <view:aspects>
                  <sys:referenceable />
               </view:aspects>
               <view:properties>
                  <sys:node-uuid>GROUP_AdminDo</sys:node-uuid>
                  <cm:name>GROUP_AdminDo</cm:name>
                  <cm:authorityName>GROUP_AdminDo</cm:authorityName>
               </view:properties>
            </cm:authorityContainer>
         </sys:children>
      </view:associations>
   </view:reference>

   <view:reference view:pathref="${system.zones_container.childname}/cm:AUTH.ALF">
      <view:associations>
         <cm:inZone>
            <view:reference
               view:pathref="${system.authorities_container.childname}/cm:GROUP_AdminDo"
               view:childName="cm:GROUP_AdminDo" />
         </cm:inZone>
      </view:associations>
   </view:reference>

   <view:reference view:pathref="${system.zones_container.childname}/cm:APP.DEFAULT">
      <view:associations>
         <cm:inZone>
            <view:reference
               view:pathref="${system.authorities_container.childname}/cm:GROUP_AdminDo"
               view:childName="cm:GROUP_AdminDo" />
         </cm:inZone>
      </view:associations>
   </view:reference>


   <view:reference
      view:pathref="${system.authorities_container.childname}/cm:GROUP_ALFRESCO_ADMINISTRATORS">
      <view:associations>
         <cm:member>
            <view:reference
               view:pathref="${system.authorities_container.childname}/cm:GROUP_AdminDo"
               view:childName="cm:GROUP_AdminDo">
            </view:reference>
         </cm:member>
      </view:associations>
   </view:reference>
</view:view>

Outcomes