Hi, Please fill an issue here http://jira.codehaus.org/browse/MTOMCAT
2009/12/17 Martin Gainty <mgai...@hotmail.com>: > > //AbstractDeployMojo details > > package org.codehaus.mojo.tomcat; > /* > * Licensed to the Apache Software Foundation (ASF) under one > * or more contributor license agreements. See the NOTICE file > * distributed with this work for additional information > * regarding copyright ownership. The ASF licenses this file > * to you 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. > */ > > import java.io.File; > import java.io.IOException; > import java.net.URL; > import org.apache.maven.plugin.MojoExecutionException; > > /*** Deploy a WAR to Tomcat. > * @author Mark Hobson <markhob...@gmail.com> > * @version $Id: AbstractDeployMojo.java 8855 2009-01-21 11:23:04Z olamy $ > */ > public abstract class AbstractDeployMojo > extends AbstractWarCatalinaMojo > { > // ---------------------------------------------------------------------- > // Mojo Parameters > // ---------------------------------------------------------------------- > > /** > * The deployment mode to use. This must be either <code>war</code> to > deploy the war, <code>context</code> to > * deploy the context XML file, or <code>both</code> to deploy the war > with the context XML file. > * > * @parameter expression = "${maven.tomcat.mode}" default-value = "war" > * @required > */ > private String mode; > > /** > * The path of the Tomcat context XML file. This is not used for war > deployment mode. > * > * Question how does project.build.finalName get baked into this folder > name??? > * > * @parameter expression = > "${project.build.directory}/${project.build.finalName}/META-INF/context.xml" > */ > private File contextFile; > > /** > * Whether Tomcat should automatically undeploy webapps that already exist > when deploying. > * > * @parameter expression = "${maven.tomcat.update}" default-value = "false" > * @required > */ > private boolean update; > > /** > * The Tomcat webapp tag name to use. > * > * @parameter expression = "${maven.tomcat.tag}" > */ > private String tag; > > // ---------------------------------------------------------------------- > // Protected Methods > // ---------------------------------------------------------------------- > > /** > * {...@inheritdoc} > */ > �...@override > public void invokeManager() > throws MojoExecutionException, TomcatManagerException, IOException > { > if ( "war".equals( mode ) ) > { > deployWar(); > } > else if ( "context".equals( mode ) ) > { > deployContext(); > } > else if ( "both".equals( mode ) ) > { > deployWarAndContext(); > } > else > { > throw new MojoExecutionException( getMessage( > "AbstractDeployMojo.unknownMode", mode ) ); > } > } > > /** > * Gets the Tomcat WAR file. This may be a file or a directory depending > on the deployment mode. > * > * @return the Tomcat WAR file. > */ > protected abstract File getWarFile(); //concrete class will need to > override > > /** > * Ensures that the Tomcat WAR file exists and is the correct type for the > deployment mode. > * > * @throws MojoExecutionException if the WAR file does not exist or is not > the correct type for the deployment mode > */ > protected abstract void validateWarFile() //concrete class will need to > override > throws MojoExecutionException; > > /** > * Gets the Tomcat context XML file. > * > * @return the Tomcat context XML file. > */ > protected File getContextFile() > { > return contextFile; > } > > /** > * Ensures that the Tomcat context XML file exists and is indeed a file. > * > * @throws MojoExecutionException if the context file does not exist or is > not a file > */ > protected void validateContextFile() > throws MojoExecutionException > { > if ( !contextFile.exists() || !contextFile.isFile() ) > { > throw new MojoExecutionException( getMessage( > "AbstractDeployMojo.missingContext", contextFile.getPath() ) ); > } > } > > /** > * Gets whether Tomcat should automatically undeploy webapps that already > exist when deploying. > * > * @return whether Tomcat should automatically undeploy webapps that > already exist when deploying > */ > protected boolean isUpdate() > { > return update; > } > > /** > * Gets the Tomcat webapp tag name to use. > * @return the Tomcat webapp tag name to use > */ > protected String getTag() > { > return tag; > } > > /** > * Deploys the WAR to Tomcat. > * > * @throws MojoExecutionException if there was a problem locating the WAR > * @throws TomcatManagerException if the Tomcat manager request fails > * @throws IOException if an i/o error occurs > */ > protected void deployWar() > throws MojoExecutionException, TomcatManagerException, IOException > { > validateWarFile(); > > getLog().info( getMessage( "AbstractDeployMojo.deployingWar", > getDeployedURL() ) ); > > URL warURL = getWarFile().toURL(); > log( getManager().deploy( getPath(), warURL, isUpdate(), getTag() ) ); > } > > /** > * Deploys the context XML file to Tomcat. > * @throws MojoExecutionException if there was a problem locating the > context XML file > * @throws TomcatManagerException if the Tomcat manager request fails > * @throws IOException if an i/o error occurs > */ > protected void deployContext() > throws MojoExecutionException, TomcatManagerException, IOException > { > validateContextFile(); > > getLog().info( getMessage( "AbstractDeployMojo.deployingContext", > getDeployedURL() ) ); > > URL contextURL = getContextFile().toURL(); > log( getManager().deployContext( getPath(), contextURL, isUpdate(), > getTag() ) ); > } > > /** > * Deploys the WAR and context XML file to Tomcat. > * @throws MojoExecutionException if there was a problem locating either > the WAR or the context XML file > * @throws TomcatManagerException if the Tomcat manager request fails > * @throws IOException if an i/o error occurs > */ > protected void deployWarAndContext() > throws MojoExecutionException, TomcatManagerException, IOException > { > validateWarFile(); > validateContextFile(); > > getLog().info( getMessage( "AbstractDeployMojo.deployingWarContext", > getDeployedURL() ) ); > > URL warURL = getWarFile().toURL(); > URL contextURL = getContextFile().toURL(); > log( getManager().deployContext( getPath(), contextURL, warURL, > isUpdate(), getTag() ) ); > } > } > > //and now concrete class which overrides Base > package org.codehaus.mojo.tomcat; > > /* > * Licensed to the Apache Software Foundation (ASF) under one > * or more contributor license agreements. See the NOTICE file > * distributed with this work for additional information > * regarding copyright ownership. The ASF licenses this file > * to you 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. > */ > > import java.io.File; > > import org.apache.maven.plugin.MojoExecutionException; > > /** > * Deploy an exploded WAR to Tomcat. > * > * @goal exploded > * @author Mark Hobson <markhob...@gmail.com> > * @version $Id: ExplodedMojo.java 8855 2009-01-21 11:23:04Z olamy $ > * @todo depend on war:exploded when MNG-1649 resolved > */ > public class ExplodedMojo > extends AbstractDeployMojo > { > // ---------------------------------------------------------------------- > // Mojo Parameters > // ---------------------------------------------------------------------- > > /** > * The path of the exploded WAR directory to deploy. > * > * @parameter expression = > "${project.build.directory}/${project.build.finalName}" > * @required > */ > private File warDirectory; //where is private File warFile?????????? > > // ---------------------------------------------------------------------- > // Protected Methods > // ---------------------------------------------------------------------- > > /** > * {...@inheritdoc} > */ > �...@override > protected File getWarFile() > { > return warDirectory; //why not warFile??????? > } > > /** > * {...@inheritdoc} > */ > �...@override > protected void validateWarFile() > throws MojoExecutionException > { > //well and good for check on warDirectory > //where is the check on the warFile??????????? > if ( !warDirectory.exists() || !warDirectory.isDirectory() ) > { > throw new MojoExecutionException( getMessage( > "ExplodedMojo.missingWar", warDirectory.getPath() ) ); > } > } > } > > it appears you found a BUG! > good catch! > > Martin > ______________________________________________ > Please do not alter/modify this transmission. Thank You > > > > >> Date: Thu, 17 Dec 2009 10:23:49 -0500 >> Subject: Tomcat plugin doesn't seem to be using build final name for context >> (seems to always use artifactId) >> From: ric...@gmail.com >> To: users@maven.apache.org >> >> I'm confused here. The docs >> http://mojo.codehaus.org/tomcat-maven-plugin/usage.html state that the >> default context is >> Context path of /${project.build.finalName} if no explicit one is given. >> >> In my war pom I have: >> >> <artifactId>dataselector-web</artifactId> >> >> but I later have >> >> <build> >> <finalName>dataselector</finalName> >> >> The war builds fine to the name "dataselector.war" and I can manually >> deploy it just fine, yet when I try to use the tomcat plugin it tries >> to deploy to the context dataselector-web which is the artificatId and >> not the finalName. >> >> What did I do wrong? I don't mind declaring the name in the tomcat >> module config but all the examples I see show a hardcoded path for the >> context. I dont' want to to hardcode that context path (eg >> /Users/rick/tomcat/webapps/dataselector ) >> >> >> -- >> Rick R >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org >> For additional commands, e-mail: users-h...@maven.apache.org >> > > _________________________________________________________________ > Hotmail: Trusted email with Microsoft’s powerful SPAM protection. > http://clk.atdmt.com/GBL/go/177141664/direct/01/ -- Olivier --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org