XMLDeploymentPlugin.java
/*
* Copyright (C) 2003-2008 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.platform.common.space.plugin;
import java.util.Iterator;
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.ObjectParameter;
import org.exoplatform.platform.common.space.SpaceCustomizationService;
import org.exoplatform.services.deployment.DeploymentDescriptor;
import org.exoplatform.services.jcr.ext.common.SessionProvider;
import org.exoplatform.services.jcr.ext.hierarchy.NodeHierarchyCreator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.social.core.space.SpaceListenerPlugin;
import org.exoplatform.social.core.space.spi.SpaceLifeCycleEvent;
public class XMLDeploymentPlugin extends SpaceListenerPlugin {
/** The init params. */
private InitParams initParams;
private SpaceCustomizationService spaceCustomizationService = null;
/** The log. */
private static final Log LOG = ExoLogger.getLogger(XMLDeploymentPlugin.class);
/**
* Instantiates a new XML deployment plugin.
*
* @param initParams
* the init params
* @param spaceCustomizationService
* the space customization service
* @param nodeHierarchyCreator
* the nodeHierarchyCreator service
*/
public XMLDeploymentPlugin(InitParams initParams, SpaceCustomizationService spaceCustomizationService,
NodeHierarchyCreator nodeHierarchyCreator) {
this.spaceCustomizationService = spaceCustomizationService;
this.initParams = initParams;
}
@Override
public void spaceCreated(SpaceLifeCycleEvent lifeCycleEvent) {
SessionProvider sessionProvider = SessionProvider.createSystemProvider();
try {
Iterator<?> iterator = initParams.getObjectParamIterator();
while (iterator.hasNext()) {
ObjectParameter objectParameter = (ObjectParameter) iterator.next();
DeploymentDescriptor deploymentDescriptor = (DeploymentDescriptor) objectParameter.getObject();
spaceCustomizationService.deployContentToSpaceDrive(sessionProvider, lifeCycleEvent.getSpace().getGroupId(),
deploymentDescriptor);
}
} catch (Exception e) {
LOG.error("An unexpected problem occurs while deploying contents", e);
} finally {
sessionProvider.close();
}
}
@Override
public void applicationActivated(SpaceLifeCycleEvent arg0) {}
@Override
public void applicationAdded(SpaceLifeCycleEvent arg0) {}
@Override
public void applicationDeactivated(SpaceLifeCycleEvent arg0) {}
@Override
public void applicationRemoved(SpaceLifeCycleEvent arg0) {}
@Override
public void grantedLead(SpaceLifeCycleEvent arg0) {}
@Override
public void joined(SpaceLifeCycleEvent arg0) {}
@Override
public void left(SpaceLifeCycleEvent arg0) {}
@Override
public void revokedLead(SpaceLifeCycleEvent arg0) {}
@Override
public void spaceRemoved(SpaceLifeCycleEvent arg0) {}
@Override
public void spaceRenamed(SpaceLifeCycleEvent event) {}
@Override
public void spaceDescriptionEdited(SpaceLifeCycleEvent event) {}
@Override
public void spaceAvatarEdited(SpaceLifeCycleEvent event) {}
@Override
public void spaceAccessEdited(SpaceLifeCycleEvent event) {
}
@Override
public void addInvitedUser(SpaceLifeCycleEvent event) {
}
@Override
public void addPendingUser(SpaceLifeCycleEvent event) {
}
@Override
public void spaceBannerEdited(SpaceLifeCycleEvent event) {
}
}