Snippet: Exportar contenido desde código

Wed Feb 25 10:41:57 CET 2015       Sergio Raposo Vargas       OpenCms, Programación

La exportación de contenido desde OpenCms es una de las herramientas más útiles tanto para la creación de copias de seguridad, como para la migración de una web a otro OpenCms. Actualmente desde la vista de administración disponemos de una herramienta para hacerlo sin problema: Gestión de Base de Datos / Exportar Base de Datos.

El principal problema de esta aplicación es que si tenemos que exportar rutas sueltas tenemos que indicarlas una a una cada vez que tenemos que hacerla. Por este motivo he planteado una jsp que me permite hacer el mismo proceso pero por código, pudiendo reutilizar la misma configuración tantas veces como quiera.

El código que realiza la exportación es el siguiente:

//Inicializamos las variables
CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);
CmsObject cmsObject = cms.getCmsObject();
//Configuramos los parametros de la exportacion
CmsExportParameters params = new CmsExportParameters();    
params.setExportAccountData(false);
params.setExportAsFiles(false);
params.setPath(OpenCms.getSystemInfo().getPackagesRfsPath()+"NOMBRE_FICHERO.zip");
//Lista de recursos a exportar
List<String> resources = Arrays.asList(
        "/path1/",
        "/path2/",
        ...
        "/pathn/");
params.setResources(resources);
//Obtenemos el handler de la exportacion
CmsVfsImportExportHandler handler = new CmsVfsImportExportHandler();
//Cargamos los parametros
handler.setExportParams(params);
//Report donde se guardara el resultado
I_CmsReport report = new CmsHtmlReport(cms.getRequestContext().getLocale(), cms.getRequestContext().getSiteRoot());
//Ejecutamos la exportacion
OpenCms.getImportExportManager().exportData(cmsObject, handler, report);

 

Si os fijáis, tan solo tenéis que modificar la lista de recursos a exportar que no es más que añadir una a una las rutas del vfs.

 Snippet, Código, Exportar contenido, OpenCms, jsp