You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2008/04/19 20:01:34 UTC
svn commit: r649835 - in
/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site:
SiteDeployMojo.java SiteStageDeployMojo.java
Author: dennisl
Date: Sat Apr 19 11:01:30 2008
New Revision: 649835
URL: http://svn.apache.org/viewvc?rev=649835&view=rev
Log:
[MSITE-25] mvn site:deploy and site:stage-deploy ignores server configuration in settings.xml
Submitted by: Rahul Akolkar
Reviewed by: Dennis Lundberg
o This patch fixes the site:stage-deploy goal
Modified:
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java?rev=649835&r1=649834&r2=649835&view=diff
==============================================================================
--- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java (original)
+++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteDeployMojo.java Sat Apr 19 11:01:30 2008
@@ -26,6 +26,7 @@
import org.apache.maven.model.Site;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Server;
import org.apache.maven.settings.Settings;
@@ -104,9 +105,6 @@
private PlexusContainer container;
- /** Map( String, XmlPlexusConfiguration ) with the repository id and the wagon configuration */
- private Map serverConfigurationMap = new HashMap();
-
public void execute()
throws MojoExecutionException
{
@@ -149,7 +147,7 @@
{
// @todo Use WagonManager#getWagon(Repository) when available. It's available in Maven 2.0.5.
wagon = wagonManager.getWagon( repository.getProtocol() );
- configureWagon( wagon, repository.getId() );
+ configureWagon( wagon, repository.getId(), settings, container, getLog() );
}
catch ( UnsupportedProtocolException e )
{
@@ -300,52 +298,55 @@
* @todo Remove when {@link WagonManager#getWagon(Repository) is available}. It's available in Maven 2.0.5.
* @param wagon
* @param repositoryId
+ * @param settings
+ * @param container
+ * @param log
* @throws WagonConfigurationException
*/
- private void configureWagon( Wagon wagon, String repositoryId )
+ static void configureWagon( Wagon wagon, String repositoryId, Settings settings, PlexusContainer container, Log log )
throws WagonConfigurationException
{
// MSITE-25: Make sure that the server settings are inserted
for ( int i = 0; i < settings.getServers().size(); i++ )
{
Server server = (Server) settings.getServers().get( i );
- if ( server.getConfiguration() != null )
- {
- final XmlPlexusConfiguration xmlConf =
- new XmlPlexusConfiguration( (Xpp3Dom) server.getConfiguration() );
- serverConfigurationMap.put( server.getId(), xmlConf );
- }
- }
-
- if ( serverConfigurationMap.containsKey( repositoryId ) )
- {
- ComponentConfigurator componentConfigurator = null;
- try
+ String id = server.getId();
+ if ( id != null && id.equals( repositoryId ) )
{
- componentConfigurator = (ComponentConfigurator) container.lookup( ComponentConfigurator.ROLE );
- componentConfigurator.configureComponent( wagon, (PlexusConfiguration) serverConfigurationMap
- .get( repositoryId ), container.getContainerRealm() );
- }
- catch ( final ComponentLookupException e )
- {
- throw new WagonConfigurationException( repositoryId, "Unable to lookup wagon configurator. Wagon configuration cannot be applied.", e );
- }
- catch ( ComponentConfigurationException e )
- {
- throw new WagonConfigurationException( repositoryId, "Unable to apply wagon configuration.", e );
- }
- finally
- {
- if ( componentConfigurator != null )
+ if ( server.getConfiguration() != null )
{
+ final PlexusConfiguration plexusConf =
+ new XmlPlexusConfiguration( (Xpp3Dom) server.getConfiguration() );
+
+ ComponentConfigurator componentConfigurator = null;
try
{
- container.release( componentConfigurator );
+ componentConfigurator = (ComponentConfigurator) container.lookup( ComponentConfigurator.ROLE );
+ componentConfigurator.configureComponent( wagon, plexusConf, container.getContainerRealm() );
}
- catch ( ComponentLifecycleException e )
+ catch ( final ComponentLookupException e )
{
- getLog().error( "Problem releasing configurator - ignoring: " + e.getMessage() );
+ throw new WagonConfigurationException( repositoryId, "Unable to lookup wagon configurator. Wagon configuration cannot be applied.", e );
}
+ catch ( ComponentConfigurationException e )
+ {
+ throw new WagonConfigurationException( repositoryId, "Unable to apply wagon configuration.", e );
+ }
+ finally
+ {
+ if ( componentConfigurator != null )
+ {
+ try
+ {
+ container.release( componentConfigurator );
+ }
+ catch ( ComponentLifecycleException e )
+ {
+ log.error( "Problem releasing configurator - ignoring: " + e.getMessage() );
+ }
+ }
+ }
+
}
}
Modified: maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java?rev=649835&r1=649834&r2=649835&view=diff
==============================================================================
--- maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java (original)
+++ maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/SiteStageDeployMojo.java Sat Apr 19 11:01:30 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.artifact.manager.WagonConfigurationException;
import org.apache.maven.artifact.manager.WagonManager;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -33,6 +34,11 @@
import org.apache.maven.wagon.observers.Debug;
import org.apache.maven.wagon.proxy.ProxyInfo;
import org.apache.maven.wagon.repository.Repository;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
import java.io.File;
@@ -46,7 +52,7 @@
* @requiresDependencyResolution test
*/
public class SiteStageDeployMojo
- extends SiteStageMojo
+ extends SiteStageMojo implements Contextualizable
{
/**
* Staging site URL to deploy the staging directory.
@@ -70,6 +76,10 @@
*/
private Settings settings;
+ private PlexusContainer container;
+
+ private final String STAGING_SERVER_ID = "stagingSite";
+
/**
* @see org.apache.maven.plugin.Mojo#execute()
*/
@@ -92,18 +102,22 @@
private void deployStagingSite()
throws MojoExecutionException, MojoFailureException
{
- String id = "stagingSite";
- Repository repository = new Repository( id, stagingSiteURL );
+ Repository repository = new Repository( STAGING_SERVER_ID, stagingSiteURL );
Wagon wagon;
try
{
wagon = wagonManager.getWagon( repository.getProtocol() );
+ SiteDeployMojo.configureWagon( wagon, STAGING_SERVER_ID, settings, container, getLog() );
}
catch ( UnsupportedProtocolException e )
{
throw new MojoExecutionException( "Unsupported protocol: '" + repository.getProtocol() + "'", e );
}
+ catch ( WagonConfigurationException e )
+ {
+ throw new MojoExecutionException( "Unable to configure Wagon: '" + repository.getProtocol() + "'", e );
+ }
if ( !wagon.supportsDirectoryCopy() )
{
@@ -122,11 +136,11 @@
ProxyInfo proxyInfo = SiteDeployMojo.getProxyInfo( repository, wagonManager );
if ( proxyInfo != null )
{
- wagon.connect( repository, wagonManager.getAuthenticationInfo( id ), proxyInfo );
+ wagon.connect( repository, wagonManager.getAuthenticationInfo( STAGING_SERVER_ID ), proxyInfo );
}
else
{
- wagon.connect( repository, wagonManager.getAuthenticationInfo( id ) );
+ wagon.connect( repository, wagonManager.getAuthenticationInfo( STAGING_SERVER_ID ) );
}
wagon.putDirectory( new File( stagingDirectory, getStructure( project, false ) ), "." );
@@ -163,4 +177,11 @@
}
}
}
+
+ public void contextualize( Context context )
+ throws ContextException
+ {
+ container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+ }
+
}