/* * ### * Phresco Service Implemenation * * Copyright (C) 1999 - 2012 Photon Infotech Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ### */ /******************************************************************************* * Copyright (c) 2011 Photon. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Photon Public License v1.0 * which accompanies this distribution, and is available at * http://www.photon.in/legal/ppl-v10.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Contributors: * Photon - initial API and implementation ******************************************************************************/ package com.photon.phresco.service.projects; import java.io.File; import java.util.UUID; import org.apache.log4j.Logger; import com.photon.phresco.exception.PhrescoException; import com.photon.phresco.model.ProjectInfo; import com.photon.phresco.service.api.DependencyProcessor; import com.photon.phresco.service.api.PhrescoServerFactory; import com.photon.phresco.service.api.ProjectService; import com.photon.phresco.service.config.impl.ConfiguratorFactory; import com.photon.phresco.service.dependency.impl.DependencyProcessorFactory; import com.photon.phresco.util.Constants; import com.photon.phresco.util.Utility; public class DefaultProjectService implements ProjectService, Constants { private static final Logger S_LOGGER = Logger.getLogger(DefaultProjectService.class); private static Boolean isDebugEnabled = S_LOGGER.isDebugEnabled(); public synchronized File createProject(ProjectInfo projectInfo) throws PhrescoException { // TODO:This code should be moved into server initialization if (isDebugEnabled) { S_LOGGER.debug("Entering Method DefaultProjectService.createProject(ProjectInfo projectInfo)"); } PhrescoServerFactory.initialize(); // find the archetype from the appType if (isDebugEnabled) { S_LOGGER.debug("createProject() ProjectInfo =" + projectInfo.getCode()); } File filePath = PhrescoServerFactory.getNewArchetypeExecutor().execute(projectInfo); File[] listFiles = filePath.listFiles(); File projectPath = null; if (listFiles.length > 0) { projectPath = listFiles[0]; } DependencyProcessor dependencyProcessor = DependencyProcessorFactory.getDependencyProcessor(projectInfo); if (dependencyProcessor != null) { dependencyProcessor.process(projectInfo, projectPath); } // PhrescoServerFactory.getNewDocumentGenerator().generate(projectInfo, projectPath); // // // Configure created application // if (isDebugEnabled) { // S_LOGGER.info("Configure created application :" + projectInfo.getName()); // } ConfiguratorFactory.getConfigurator(projectInfo).configure(projectInfo, projectPath); return projectPath; } public File updateProject(ProjectInfo projectInfo) throws PhrescoException { File projectPath = new File(Utility.getPhrescoTemp(), UUID.randomUUID().toString()) ; projectPath.mkdirs(); DependencyProcessor dependencyProcessor = DependencyProcessorFactory.getDependencyProcessor(projectInfo); if (dependencyProcessor != null) { dependencyProcessor.process(projectInfo, projectPath); } if (isDebugEnabled) { S_LOGGER.info("successfully updated application :" + projectInfo.getName()); } ConfiguratorFactory.getConfigurator(projectInfo).configure(projectInfo, projectPath); return projectPath; } public File updateDocumentProject(ProjectInfo projectInfo) throws PhrescoException { File tempPath = new File(Utility.getPhrescoTemp(), UUID.randomUUID().toString()+File.separator + projectInfo.getCode()); try { PhrescoServerFactory.getNewDocumentGenerator().generate(projectInfo, tempPath); } catch (Exception e) { throw new PhrescoException(e); } return tempPath; } public void deleteProject(ProjectInfo projectInfo, File projectPath) throws PhrescoException { } }