?? cmsimportexportmanager.java
字號:
handler = (I_CmsImportExportHandler)m_importExportHandlers.get(i);
if (handler.matches(manifest)) {
return handler;
}
handler = null;
}
if (handler == null) {
CmsMessageContainer message = Messages.get().container(
Messages.ERR_IMPORTEXPORT_ERROR_NO_HANDLER_FOUND_1,
importFile);
if (LOG.isDebugEnabled()) {
LOG.debug(message.key());
}
throw new CmsImportExportException(message);
}
return null;
}
/**
* Returns the list of configured import/export handlers.<p>
*
* @return the list of configured import/export handlers
*/
public List getImportExportHandlers() {
return m_importExportHandlers;
}
/**
* Returns the configured principal group translations.<p>
*
* @return the configured principal group translations
*/
public Map getImportGroupTranslations() {
return m_importGroupTranslations;
}
/**
* Returns the configured principal user translations.<p>
*
* @return the configured principal user translations
*/
public Map getImportUserTranslations() {
return m_importUserTranslations;
}
/**
* Returns the configured import version class names.<p>
*
* @return the configured import version class names
*/
public List getImportVersionClasses() {
return m_importVersionClasses;
}
/**
* Returns the URL of a 4.x OpenCms app. (e.g. http://localhost:8080/opencms/opencms/)
* from which content was exported.<p>
*
* This setting is required to import content of 4.x OpenCms apps. correct into 5.x OpenCms apps.<p>
*
* @return the webAppUrl.
*/
public String getOldWebAppUrl() {
return m_webAppUrl;
}
/**
* Checks if the current user has permissions to import data into the Cms,
* and if so, creates a new import handler instance that imports the data.<p>
*
* @param cms the current OpenCms context object
* @param importFile the name (absolute path) of the resource (zipfile or folder) to be imported
* @param importPath the name (absolute path) of the destination folder in the Cms if required, or null
* @param report a Cms report to print log messages
*
* @throws CmsRoleViolationException if the current user is not allowed to import the OpenCms database
* @throws CmsImportExportException if operation was not successful
* @throws CmsXmlException if the manifest of the import could not be unmarshalled
* @throws CmsException in case of errors accessing the VFS
*
* @see I_CmsImportExportHandler
*/
public void importData(CmsObject cms, String importFile, String importPath, I_CmsReport report)
throws CmsImportExportException, CmsXmlException, CmsRoleViolationException, CmsException {
// check the required role permissions
cms.checkRole(CmsRole.IMPORT_DATABASE);
try {
OpenCms.fireCmsEvent(new CmsEvent(I_CmsEventListener.EVENT_CLEAR_CACHES, Collections.EMPTY_MAP));
I_CmsImportExportHandler handler = getImportExportHandler(importFile);
handler.importData(cms, importFile, importPath, report);
} finally {
OpenCms.fireCmsEvent(new CmsEvent(I_CmsEventListener.EVENT_CLEAR_CACHES, Collections.EMPTY_MAP));
}
}
/**
* Checks if colliding resources should be overwritten during the import.<p>
*
* @return true, if colliding resources should be overwritten during the import
* @see #setOverwriteCollidingResources(boolean)
*/
public boolean overwriteCollidingResources() {
return m_overwriteCollidingResources;
}
/**
* Sets if imported pages should be converted into XML pages.<p>
*
* @param convertToXmlPage true, if imported pages should be converted into XML pages.
*/
public void setConvertToXmlPage(boolean convertToXmlPage) {
if (LOG.isDebugEnabled()) {
LOG.debug(Messages.get().getBundle().key(
Messages.LOG_IMPORTEXPORT_SET_CONVERT_PARAMETER_1,
Boolean.toString(convertToXmlPage)));
}
m_convertToXmlPage = convertToXmlPage;
}
/**
* Sets if imported pages should be converted into XML pages.<p>
*
* @param convertToXmlPage <code>"true"</code>, if imported pages should be converted into XML pages.
*/
public void setConvertToXmlPage(String convertToXmlPage) {
setConvertToXmlPage(Boolean.valueOf(convertToXmlPage).booleanValue());
}
/**
* Sets the URL of a 4.x OpenCms app. (e.g. http://localhost:8080/opencms/opencms/)
* from which content was exported.<p>
*
* This setting is required to import content of 4.x OpenCms apps. correct into 5.x OpenCms apps.<p>
*
* @param webAppUrl a URL of the a OpenCms app. (e.g. http://localhost:8080/opencms/opencms/)
*/
public void setOldWebAppUrl(String webAppUrl) {
if (LOG.isDebugEnabled()) {
LOG.debug(Messages.get().getBundle().key(Messages.LOG_IMPORTEXPORT_SET_OLD_WEBAPP_URL_1, webAppUrl));
}
m_webAppUrl = webAppUrl;
}
/**
* Sets whether colliding resources should be overwritten during the import for a
* specified import implementation.<p>
*
* v1 and v2 imports (without resource UUIDs in the manifest) *MUST* overwrite colliding
* resources. Don't forget to set this flag back to it's original value in v1 and v2
* import implementations!<p>
*
* This flag must be set to false to force imports > v2 to move colliding resources to
* /system/lost-found/.<p>
*
* The import implementation has to take care to set this flag correct!<p>
*
* @param overwriteCollidingResources true if colliding resources should be overwritten during the import
*/
public void setOverwriteCollidingResources(boolean overwriteCollidingResources) {
if (LOG.isDebugEnabled()) {
LOG.debug(Messages.get().getBundle().key(
Messages.LOG_IMPORTEXPORT_SET_OVERWRITE_PARAMETER_1,
Boolean.toString(overwriteCollidingResources)));
}
m_overwriteCollidingResources = overwriteCollidingResources;
}
/**
* @see CmsImportExportManager#setOverwriteCollidingResources(boolean)
*
* @param overwriteCollidingResources <code>"true"</code> if colliding resources should be overwritten during the import
*/
public void setOverwriteCollidingResources(String overwriteCollidingResources) {
setOverwriteCollidingResources(Boolean.valueOf(overwriteCollidingResources).booleanValue());
}
/**
* Returns the translated name for the given group name.<p>
*
* If no matching name is found, the given group name is returned.<p>
*
* @param name the group name to translate
* @return the translated name for the given group name
*/
public String translateGroup(String name) {
if (m_importGroupTranslations == null) {
return name;
}
String match = (String)m_importGroupTranslations.get(name);
if (match != null) {
return match;
} else {
return name;
}
}
/**
* Returns the translated name for the given user name.<p>
*
* If no matching name is found, the given user name is returned.<p>
*
* @param name the user name to translate
* @return the translated name for the given user name
*/
public String translateUser(String name) {
if (m_importUserTranslations == null) {
return name;
}
String match = (String)m_importUserTranslations.get(name);
if (match != null) {
return match;
} else {
return name;
}
}
/**
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
try {
if (m_immutableResources != null) {
m_immutableResources.clear();
}
m_immutableResources = null;
if (m_ignoredProperties != null) {
m_ignoredProperties.clear();
}
m_ignoredProperties = null;
} catch (Throwable t) {
// noop
} finally {
super.finalize();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -