/* | |
* Copyright 2004 The Apache Software Foundation | |
* | |
* 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. | |
*/ | |
package org.apache.pluto.maven; | |
import org.apache.maven.plugin.MojoExecutionException; | |
import org.apache.pluto.util.deploy.Deployer; | |
import org.apache.pluto.util.deploy.DeploymentConfig; | |
import org.apache.pluto.util.deploy.file.Tomcat5FileSystemDeployer; | |
import java.util.Properties; | |
import java.io.File; | |
/** | |
* @author <a href="mailto:ddewolf@apache.org">David H. DeWolf</a> | |
* @todo Document | |
* @since Jul 30, 2005 | |
* | |
* @goal deploy | |
* @requiresDependencyResolution runtime | |
*/ | |
public class DeployMojo extends AbstractPortletMojo { | |
// Private Member Variables ------------------------------------------------ | |
/** | |
* @parameter expression="${project.build.outputDirectory}/${maven.final.name} | |
*/ | |
private File deployment = null; | |
/** | |
* @parameter expression="${pluto.deploy.file}" | |
*/ | |
private String deployerClass = Tomcat5FileSystemDeployer.class.getName(); | |
/** | |
* @parameter expression="${pluto.deploy.tomcat5.service}" | |
*/ | |
private String tomcatService = "Catalina"; | |
/** | |
* @parameter expression="${pluto.deploy.tomcat5.host}" | |
*/ | |
private String tomcatHost = "localhost"; | |
// AbstractPlutoMojo Impl -------------------------------------------------- | |
protected void doValidate() throws MojoExecutionException { | |
System.err.println("installationDirectory: " + installationDirectory); | |
if (deployment != null) { | |
System.err.println("deployment: " + deployment.getAbsolutePath()); | |
} else { | |
System.err.println("deployment: null"); | |
} | |
System.err.println("DeployerClass: " + deployerClass); | |
if (deployment == null || !deployment.exists()) { | |
throw new MojoExecutionException("Deployment must be specified."); | |
} | |
} | |
protected void doExecute() throws Exception { | |
if (!deployment.getName().endsWith(".war")) { | |
throw new MojoExecutionException(deployment.getName() | |
+ " is not a valid deployment. Please specify a war."); | |
} | |
Deployer deployer = createDeployer(); | |
//deployer.deploy(createConfig(), createInputStream()); | |
} | |
private DeploymentConfig createConfig() { | |
return new DeploymentConfigImpl(); | |
} | |
private Deployer createDeployer() throws Exception { | |
Class clazz = Class.forName(deployerClass); | |
return (Deployer) clazz.newInstance(); | |
} | |
private class DeploymentConfigImpl extends DeploymentConfig { | |
private Properties props; | |
public DeploymentConfigImpl() { | |
super(deployment.getName().substring(0, deployment.getName().lastIndexOf("."))); | |
props = new Properties(project.getProperties()); | |
props.putAll(System.getProperties()); | |
props.setProperty("tomcat5.home", installationDirectory.getAbsolutePath()); | |
props.setProperty("tomcat.service", tomcatService); | |
props.setProperty("tomcat.host", tomcatHost); | |
} | |
public String getDeploymentProperty(String key) { | |
String property = props.getProperty(key); | |
return property; | |
} | |
} | |
} |