/* * Copyright (C) 2003-2017 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.management.ecmadmin; import org.exoplatform.management.common.AbstractManagementExtension; import org.exoplatform.management.ecmadmin.operations.ECMAdminContentImportResource; import org.exoplatform.management.ecmadmin.operations.ECMAdminContentReadResource; import org.exoplatform.management.ecmadmin.operations.drive.DriveExportResource; import org.exoplatform.management.ecmadmin.operations.drive.DriveImportResource; import org.exoplatform.management.ecmadmin.operations.drive.DriveReadResource; import org.exoplatform.management.ecmadmin.operations.nodetype.NodeTypeExportResource; import org.exoplatform.management.ecmadmin.operations.nodetype.NodeTypeImportResource; import org.exoplatform.management.ecmadmin.operations.nodetype.NodeTypeReadResource; import org.exoplatform.management.ecmadmin.operations.queries.QueriesExportResource; import org.exoplatform.management.ecmadmin.operations.queries.QueriesImportResource; import org.exoplatform.management.ecmadmin.operations.queries.QueriesReadResource; import org.exoplatform.management.ecmadmin.operations.script.ScriptExportResource; import org.exoplatform.management.ecmadmin.operations.script.ScriptImportResource; import org.exoplatform.management.ecmadmin.operations.script.ScriptReadResource; import org.exoplatform.management.ecmadmin.operations.taxonomy.TaxonomyExportResource; import org.exoplatform.management.ecmadmin.operations.taxonomy.TaxonomyImportResource; import org.exoplatform.management.ecmadmin.operations.taxonomy.TaxonomyReadResource; import org.exoplatform.management.ecmadmin.operations.templates.TemplatesReadResource; import org.exoplatform.management.ecmadmin.operations.templates.applications.ApplicationTemplatesExportResource; import org.exoplatform.management.ecmadmin.operations.templates.applications.ApplicationTemplatesReadResource; import org.exoplatform.management.ecmadmin.operations.templates.applications.ApplicationsTemplatesImportResource; import org.exoplatform.management.ecmadmin.operations.templates.applications.ApplicationsTemplatesReadResource; import org.exoplatform.management.ecmadmin.operations.templates.metadata.MetadataTemplatesExportResource; import org.exoplatform.management.ecmadmin.operations.templates.metadata.MetadataTemplatesImportResource; import org.exoplatform.management.ecmadmin.operations.templates.metadata.MetadataTemplatesReadResource; import org.exoplatform.management.ecmadmin.operations.templates.nodetypes.NodeTypesTemplatesExportResource; import org.exoplatform.management.ecmadmin.operations.templates.nodetypes.NodeTypesTemplatesImportResource; import org.exoplatform.management.ecmadmin.operations.templates.nodetypes.NodeTypesTemplatesReadResource; import org.exoplatform.management.ecmadmin.operations.view.ViewConfigurationExportResource; import org.exoplatform.management.ecmadmin.operations.view.ViewConfigurationReadResource; import org.exoplatform.management.ecmadmin.operations.view.ViewImportResource; import org.exoplatform.management.ecmadmin.operations.view.ViewReadResource; import org.exoplatform.management.ecmadmin.operations.view.ViewTemplatesExportResource; import org.exoplatform.management.ecmadmin.operations.view.ViewTemplatesReadResource; import org.gatein.management.api.ComponentRegistration; import org.gatein.management.api.ManagedResource; import org.gatein.management.api.operation.OperationNames; import org.gatein.management.spi.ExtensionContext; /** * The Class ECMAdminManagementExtension. * * @author <a href="mailto:bkhanfir@exoplatform.com">Boubaker Khanfir</a> * @version $Revision$ */ public class ECMAdminManagementExtension extends AbstractManagementExtension { /** * {@inheritDoc} */ @Override public void initialize(ExtensionContext context) { ComponentRegistration ecmadminRegistration = context.registerManagedComponent("ecmadmin"); ManagedResource.Registration ecmadmin = ecmadminRegistration.registerManagedResource(description("ECMS (Enterprise Content Management Suite) administration resources.")); ecmadmin.registerOperationHandler(OperationNames.READ_RESOURCE, new ECMAdminContentReadResource(), description("Lists available ECMS administration data")); ecmadmin.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ECMAdminContentImportResource(), description("Lists available ECMS administration data")); // /ecmadmin/templates ManagedResource.Registration templates = ecmadmin.registerSubResource("templates", description("ECMS Groovy templates for 'Content List' and 'Advanced Search' Portlets, metadata, nodetypes and JCR Action.")); templates.registerOperationHandler(OperationNames.READ_RESOURCE, new TemplatesReadResource(), description("Lists available template types")); // /ecmadmin/templates/applications ManagedResource.Registration applicationsTemplates = templates.registerSubResource("applications", description("ECMS Groovy templates for Content List Portlet and Advanced Search Portlet")); applicationsTemplates.registerOperationHandler(OperationNames.READ_RESOURCE, new ApplicationsTemplatesReadResource(), description("Lists available applications containing templates")); applicationsTemplates.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ApplicationsTemplatesImportResource(), description("Import applications templates")); // /ecmadmin/templates/applications/<application_name> ManagedResource.Registration applicationTemplates = applicationsTemplates.registerSubResource("{application-name: .*}", description("ECMS Groovy templates for {application-name} Portlet.")); applicationTemplates.registerOperationHandler(OperationNames.READ_RESOURCE, new ApplicationTemplatesReadResource(), description("Lists available templates of an application")); applicationTemplates.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ApplicationTemplatesExportResource(), description("Exports available templates of an application")); applicationTemplates.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ApplicationsTemplatesImportResource(), description("Import applications templates")); // /ecmadmin/templates/nodetypes ManagedResource.Registration nodetypesTemplates = templates.registerSubResource("nodetypes", description("ECMS Groovy templates for nodetypes.")); nodetypesTemplates.registerOperationHandler(OperationNames.READ_RESOURCE, new NodeTypesTemplatesReadResource(), description("Lists available node types templates")); nodetypesTemplates.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new NodeTypesTemplatesExportResource(), description("Exports available node types templates")); nodetypesTemplates.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new NodeTypesTemplatesImportResource(), description("Imports available node types templates")); // /ecmadmin/templates/metadata ManagedResource.Registration metadataTemplates = templates.registerSubResource("metadata", description("Nodetypes for metadata.")); metadataTemplates.registerOperationHandler(OperationNames.READ_RESOURCE, new MetadataTemplatesReadResource(), description("Lists available metadata templates")); metadataTemplates.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new MetadataTemplatesExportResource(), description("Exports available metadata templates")); metadataTemplates.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new MetadataTemplatesImportResource(), description("Imports available metadata templates")); // /ecmadmin/queries ManagedResource.Registration queries = ecmadmin.registerSubResource("queries", description("JCR saved 'public' and 'private' Queries.")); queries.registerOperationHandler(OperationNames.READ_RESOURCE, new QueriesReadResource(), description("Lists available queries")); queries.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new QueriesExportResource(), description("Exports available queries")); queries.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new QueriesImportResource(), description("Imports queries")); // /ecmadmin/taxonomy ManagedResource.Registration taxonomies = ecmadmin.registerSubResource("taxonomy", description("Taxonomies / Categories.")); taxonomies.registerOperationHandler(OperationNames.READ_RESOURCE, new TaxonomyReadResource(), description("Lists available taxonomies")); taxonomies.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new TaxonomyImportResource(), description("Imports available taxonomies")); // /ecmadmin/taxonomy/name ManagedResource.Registration taxonomy = taxonomies.registerSubResource("{taxonomy-name: .*}", description("Taxonomy '{taxonomy-name}'.")); taxonomy.registerOperationHandler(OperationNames.READ_RESOURCE, new EmptyReadResource(), description("nothing")); taxonomy.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new TaxonomyExportResource(), description("Exports selected taxonomy")); // /ecmadmin/script ManagedResource.Registration script = ecmadmin.registerSubResource("script", description("ECMS scripts of types : interceptor, widget and action.")); script.registerOperationHandler(OperationNames.READ_RESOURCE, new ScriptReadResource(), description("Lists available scripts")); script.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ScriptExportResource(), description("Exports available scripts")); script.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ScriptImportResource(), description("Imports scripts")); // /ecmadmin/nodetype ManagedResource.Registration nodetype = ecmadmin.registerSubResource("nodetype", description("All JCR Nodetypes and Namespaces.")); nodetype.registerOperationHandler(OperationNames.READ_RESOURCE, new NodeTypeReadResource(), description("Lists available node types")); nodetype.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new NodeTypeExportResource(), description("Exports available node types")); nodetype.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new NodeTypeImportResource("nodetype"), description("Imports node types")); // /ecmadmin/drive ManagedResource.Registration drive = ecmadmin.registerSubResource("drive", description("ECMS General and group Drives configuration.")); drive.registerOperationHandler(OperationNames.READ_RESOURCE, new DriveReadResource(), description("Lists available drives")); drive.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new DriveExportResource(), description("Exports available drives")); drive.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new DriveImportResource(), description("Imports drives")); // /ecmadmin/view ManagedResource.Registration views = ecmadmin.registerSubResource("view", description("Sites Explorer Views.")); views.registerOperationHandler(OperationNames.READ_RESOURCE, new ViewReadResource(), description("Sites Explorer Views.")); views.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ViewImportResource(), description("Import Sites Explorer Views.")); // /ecmadmin/view/configuration ManagedResource.Registration viewsConfiguration = views.registerSubResource("configuration", description("Sites Explorer Views configuration.")); viewsConfiguration.registerOperationHandler(OperationNames.READ_RESOURCE, new ViewConfigurationReadResource(), description("Lists available Views.")); viewsConfiguration.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ViewConfigurationExportResource(), description("Exports selected views.")); viewsConfiguration.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ViewImportResource(), description("Import Sites Explorer Views.")); // /ecmadmin/view/configuration/<configuration_name> ManagedResource.Registration viewConfiguration = viewsConfiguration.registerSubResource("{configuration-name: .*}", description("Sites Explorer {configuration-name} View configuration.")); viewConfiguration.registerOperationHandler(OperationNames.READ_RESOURCE, new EmptyReadResource(), description("Nothing to read.")); viewConfiguration.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ViewConfigurationExportResource(), description("Exports selected views.")); // /ecmadmin/view/templates ManagedResource.Registration viewsTemplate = views.registerSubResource("templates", description("Sites Explorer Views templates.")); viewsTemplate.registerOperationHandler(OperationNames.READ_RESOURCE, new ViewTemplatesReadResource(), description("Lists available templates of Sites Explorer Portlet")); viewsTemplate.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ViewTemplatesExportResource(), description("Exports available templates of Sites Explorer Portlet")); viewsTemplate.registerOperationHandler(OperationNames.IMPORT_RESOURCE, new ViewImportResource(), description("Import Sites Explorer Views.")); // /ecmadmin/view/templates/<template-name> ManagedResource.Registration viewTemplate = viewsTemplate.registerSubResource("{template-name: .*}", description("Sites Explorer {template-name} View template.")); viewTemplate.registerOperationHandler(OperationNames.READ_RESOURCE, new EmptyReadResource(), description("Nothing to read.")); viewTemplate.registerOperationHandler(OperationNames.EXPORT_RESOURCE, new ViewTemplatesExportResource(), description("Exports {template-name} template of Sites Explorer Portlet")); } }