mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
- Example demonstrating how to extend bootstrap data set (Users).
- Modified bootstrap Spring bean definitions allowing easier extension - Modified importer bootstrap to allow import from .acp files (currently only supports .acp file in filesystem, not .jar) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2344 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -679,7 +679,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="systemBootstrap" class="org.alfresco.repo.importer.ImporterBootstrap" init-method="bootstrap" depends-on="nodeIndexer, auditableAspect">
|
<bean id="systemStoreImporter" class="org.alfresco.repo.importer.ImporterBootstrap" abstract="true" init-method="bootstrap">
|
||||||
<property name="transactionService">
|
<property name="transactionService">
|
||||||
<ref bean="transactionComponent"/>
|
<ref bean="transactionComponent"/>
|
||||||
</property>
|
</property>
|
||||||
@@ -716,6 +716,14 @@
|
|||||||
<prop key="system.descriptor.childname">${system.descriptor.childname}</prop>
|
<prop key="system.descriptor.childname">${system.descriptor.childname}</prop>
|
||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="systemBootstrap" parent="systemStoreImporter" depends-on="nodeIndexer, auditableAspect">
|
||||||
|
<!-- To specify a locale other than the system default, uncomment the following
|
||||||
|
<property name="locale">
|
||||||
|
<value>en_GB</value>
|
||||||
|
</property>
|
||||||
|
-->
|
||||||
<property name="bootstrapViews">
|
<property name="bootstrapViews">
|
||||||
<list>
|
<list>
|
||||||
<props>
|
<props>
|
||||||
@@ -726,8 +734,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="userStoreImporter" class="org.alfresco.repo.importer.ImporterBootstrap" abstract="true" init-method="bootstrap">
|
||||||
<bean id="alfrescoUserStoreBootstrap" class="org.alfresco.repo.importer.ImporterBootstrap" init-method="bootstrap" depends-on="systemBootstrap">
|
|
||||||
<property name="transactionService">
|
<property name="transactionService">
|
||||||
<ref bean="transactionComponent"/>
|
<ref bean="transactionComponent"/>
|
||||||
</property>
|
</property>
|
||||||
@@ -756,6 +763,9 @@
|
|||||||
<prop key="alfresco_user_store.authorities_container.childname">${alfresco_user_store.authorities_container.childname}</prop>
|
<prop key="alfresco_user_store.authorities_container.childname">${alfresco_user_store.authorities_container.childname}</prop>
|
||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="userBootstrap" parent="userStoreImporter" depends-on="systemBootstrap">
|
||||||
<!-- To specify a locale other than the system default, uncomment the following
|
<!-- To specify a locale other than the system default, uncomment the following
|
||||||
<property name="locale">
|
<property name="locale">
|
||||||
<value>en_GB</value>
|
<value>en_GB</value>
|
||||||
@@ -771,8 +781,7 @@
|
|||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="spacesStoreImporter" class="org.alfresco.repo.importer.ImporterBootstrap" abstract="true" init-method="bootstrap">
|
||||||
<bean id="importerBootstrap" class="org.alfresco.repo.importer.ImporterBootstrap" init-method="bootstrap" depends-on="alfrescoUserStoreBootstrap, versionBootstrap">
|
|
||||||
<property name="transactionService">
|
<property name="transactionService">
|
||||||
<ref bean="transactionComponent"/>
|
<ref bean="transactionComponent"/>
|
||||||
</property>
|
</property>
|
||||||
@@ -806,6 +815,9 @@
|
|||||||
<prop key="spaces.savedsearches.childname">${spaces.savedsearches.childname}</prop>
|
<prop key="spaces.savedsearches.childname">${spaces.savedsearches.childname}</prop>
|
||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<bean id="importerBootstrap" parent="spacesStoreImporter" depends-on="userBootstrap, versionBootstrap">
|
||||||
<!-- To specify a locale other than the system default, uncomment the following
|
<!-- To specify a locale other than the system default, uncomment the following
|
||||||
<property name="locale">
|
<property name="locale">
|
||||||
<value>en_GB</value>
|
<value>en_GB</value>
|
||||||
|
@@ -20,7 +20,6 @@ import java.io.BufferedReader;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.io.Serializable;
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@@ -33,10 +32,8 @@ import javax.transaction.UserTransaction;
|
|||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.i18n.I18NUtil;
|
import org.alfresco.i18n.I18NUtil;
|
||||||
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
import org.alfresco.repo.security.authentication.AuthenticationComponent;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.cmr.security.AccessPermission;
|
|
||||||
import org.alfresco.service.cmr.view.ImporterBinding;
|
import org.alfresco.service.cmr.view.ImporterBinding;
|
||||||
import org.alfresco.service.cmr.view.ImporterException;
|
import org.alfresco.service.cmr.view.ImporterException;
|
||||||
import org.alfresco.service.cmr.view.ImporterProgress;
|
import org.alfresco.service.cmr.view.ImporterProgress;
|
||||||
@@ -47,6 +44,7 @@ import org.alfresco.service.namespace.QName;
|
|||||||
import org.alfresco.service.transaction.TransactionService;
|
import org.alfresco.service.transaction.TransactionService;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bootstrap Repository store.
|
* Bootstrap Repository store.
|
||||||
@@ -293,14 +291,25 @@ public class ImporterBootstrap
|
|||||||
{
|
{
|
||||||
for (Properties bootstrapView : bootstrapViews)
|
for (Properties bootstrapView : bootstrapViews)
|
||||||
{
|
{
|
||||||
// Create input stream reader onto view file
|
|
||||||
String view = bootstrapView.getProperty(VIEW_LOCATION_VIEW);
|
String view = bootstrapView.getProperty(VIEW_LOCATION_VIEW);
|
||||||
if (view == null || view.length() == 0)
|
if (view == null || view.length() == 0)
|
||||||
{
|
{
|
||||||
throw new ImporterException("View file location must be provided");
|
throw new ImporterException("View file location must be provided");
|
||||||
}
|
}
|
||||||
String encoding = bootstrapView.getProperty(VIEW_ENCODING);
|
String encoding = bootstrapView.getProperty(VIEW_ENCODING);
|
||||||
Reader viewReader = getReader(view, encoding);
|
|
||||||
|
// Create appropriate view reader
|
||||||
|
Reader viewReader = null;
|
||||||
|
ACPImportPackageHandler acpHandler = null;
|
||||||
|
if (view.endsWith(".acp"))
|
||||||
|
{
|
||||||
|
ClassPathResource acpResource = new ClassPathResource(view);
|
||||||
|
acpHandler = new ACPImportPackageHandler(acpResource.getFile(), encoding);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
viewReader = getReader(view, encoding);
|
||||||
|
}
|
||||||
|
|
||||||
// Create import location
|
// Create import location
|
||||||
Location importLocation = new Location(storeRef);
|
Location importLocation = new Location(storeRef);
|
||||||
@@ -327,7 +336,21 @@ public class ImporterBootstrap
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Now import...
|
// Now import...
|
||||||
importerService.importView(viewReader, importLocation, binding, new BootstrapProgress());
|
ImporterProgress importProgress = null;
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
importProgress = new ImportTimerProgress();
|
||||||
|
logger.debug("Importing " + view);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (viewReader != null)
|
||||||
|
{
|
||||||
|
importerService.importView(viewReader, importLocation, binding, importProgress);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
importerService.importView(acpHandler, importLocation, binding, importProgress);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -450,99 +473,6 @@ public class ImporterBootstrap
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Bootstrap Progress (debug logging)
|
|
||||||
*/
|
|
||||||
private class BootstrapProgress implements ImporterProgress
|
|
||||||
{
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.alfresco.repo.importer.Progress#nodeCreated(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName, org.alfresco.service.namespace.QName)
|
|
||||||
*/
|
|
||||||
public void nodeCreated(NodeRef nodeRef, NodeRef parentRef, QName assocName, QName childName)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Created node " + nodeRef + " (child name: " + childName + ") within parent " + parentRef + " (association type: " + assocName + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see org.alfresco.service.cmr.view.ImporterProgress#nodeLinked(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName, org.alfresco.service.namespace.QName)
|
|
||||||
*/
|
|
||||||
public void nodeLinked(NodeRef nodeRef, NodeRef parentRef, QName assocName, QName childName)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Linked node " + nodeRef + " (child name: " + childName + ") within parent " + parentRef + " (association type: " + assocName + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.alfresco.repo.importer.Progress#contentCreated(org.alfresco.service.cmr.repository.NodeRef, java.lang.String)
|
|
||||||
*/
|
|
||||||
public void contentCreated(NodeRef nodeRef, String sourceUrl)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Imported content from " + sourceUrl + " into node " + nodeRef);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.alfresco.repo.importer.Progress#propertySet(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName, java.io.Serializable)
|
|
||||||
*/
|
|
||||||
public void propertySet(NodeRef nodeRef, QName property, Serializable value)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Property " + property + " set to value " + value + " on node " + nodeRef);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see org.alfresco.service.cmr.view.ImporterProgress#permissionSet(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.cmr.security.AccessPermission)
|
|
||||||
*/
|
|
||||||
public void permissionSet(NodeRef nodeRef, AccessPermission permission)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Permission " + permission.getPermission() + " set on node " + nodeRef + " (authority=" + permission.getAuthority() +
|
|
||||||
", accessStatus=" + permission.getAccessStatus() + ")");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see org.alfresco.repo.importer.Progress#aspectAdded(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
|
|
||||||
*/
|
|
||||||
public void aspectAdded(NodeRef nodeRef, QName aspect)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Added aspect " + aspect + " to node " + nodeRef);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see org.alfresco.service.cmr.view.ImporterProgress#started()
|
|
||||||
*/
|
|
||||||
public void started()
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Started");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see org.alfresco.service.cmr.view.ImporterProgress#completed()
|
|
||||||
*/
|
|
||||||
public void completed()
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Completed");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
* @see org.alfresco.service.cmr.view.ImporterProgress#error(java.lang.Exception)
|
|
||||||
*/
|
|
||||||
public void error(Throwable e)
|
|
||||||
{
|
|
||||||
if (logger.isDebugEnabled())
|
|
||||||
logger.debug("Error: " + e.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if bootstrap should take place
|
* Determine if bootstrap should take place
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user