/***************************************************************************
* Copyright (C) 2003-2009 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.services.ecm.dms.cms;
import java.util.Map;
import javax.jcr.Node;
import javax.jcr.Session;
import org.exoplatform.container.ExoContainer;
import org.exoplatform.container.ExoContainerContext;
import org.exoplatform.services.cms.impl.CmsServiceImpl;
import org.exoplatform.services.idgenerator.IDGeneratorService;
import org.exoplatform.services.jcr.RepositoryService;
import org.exoplatform.services.jcr.ext.app.SessionProviderService;
import org.exoplatform.services.listener.ListenerService;
/**
* Created by The eXo Platform SARL
* Author : Dang Van Minh
* minh.dang@exoplatform.com
* Mar 16, 2011
* 5:45:40 PM
*/
public class MockCmsServiceImpl extends CmsServiceImpl {
private RepositoryService jcrService;
public MockCmsServiceImpl(RepositoryService jcrService, IDGeneratorService idGeneratorService,
ListenerService listenerService) {
super(jcrService, idGeneratorService, listenerService);
this.jcrService = jcrService;
}
public String storeNode(String workspace, String nodeTypeName, String storePath,
Map mappings) throws Exception {
ExoContainer container = ExoContainerContext.getCurrentContainer();
SessionProviderService service =
(SessionProviderService)container.getComponentInstanceOfType(SessionProviderService.class);
Session session =
service.getSystemSessionProvider(null).getSession(workspace, jcrService.getCurrentRepository());
Node storeHomeNode = (Node) session.getItem(storePath);
String path = storeNode(nodeTypeName, storeHomeNode, mappings, true);
storeHomeNode.save();
session.save();
return path;
}
}