Hi Lukas!

I have a question on this commit, as it causes our site gen to now fail.

With the following change:

> +        if ( site == null )
> +        {
> +            throw new MojoExecutionException(
> +                "Missing site information in the distribution management of 
> the project " + name );
> +        }

the following use case configuration encounters the above exception:
 - a project parent pom has a <distributionManagement><site> element
(modules of course inherit it)
 - a corporate parent pom does not have a <distributionManagement><site> element

We never run site gen for the corporate parent pom, so any
<distributionManagement><site> element added will make it work but is
unneeded/fake.

So wondering if this configuration use case was considered and the
correct answer is to add a "fake" <site> element to the corporate
parent or possibly this check for site definition needs tweaking (can
it consider the effective one?)?


On Fri, Mar 4, 2011 at 6:58 AM,  <ltheu...@apache.org> wrote:
> Author: ltheussl
> Date: Fri Mar  4 12:58:01 2011
> New Revision: 1077924
>
> URL: http://svn.apache.org/viewvc?rev=1077924&view=rev
> Log:
> refactor: re-use getSite() so we properly catch null values also in 
> stage-deploy
>
> Modified:
>    
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
>    
> 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/AbstractDeployMojo.java
> URL: 
> http://svn.apache.org/viewvc/maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java?rev=1077924&r1=1077923&r2=1077924&view=diff
> ==============================================================================
> --- 
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
>  (original)
> +++ 
> maven/plugins/trunk/maven-site-plugin/src/main/java/org/apache/maven/plugins/site/AbstractDeployMojo.java
>  Fri Mar  4 12:58:01 2011
> @@ -26,6 +26,8 @@ import java.util.Locale;
>
>  import org.apache.maven.artifact.manager.WagonConfigurationException;
>  import org.apache.maven.artifact.manager.WagonManager;
> +import org.apache.maven.model.DistributionManagement;
> +import org.apache.maven.model.Site;
>  import org.apache.maven.plugin.MojoExecutionException;
>  import org.apache.maven.plugin.logging.Log;
>  import org.apache.maven.project.MavenProject;
> @@ -552,4 +554,43 @@ public abstract class AbstractDeployMojo
>
>         return parent;
>     }
> +
> +    /**
> +     * Extract the distributionManagment site from the given MavenProject.
> +     *
> +     * @param project the MavenProject. Not null.
> +     *
> +     * @return the project site. Not null.
> +     *      Also site.getUrl() and site.getId() are guaranteed to be not 
> null.
> +     *
> +     * @throws MojoExecutionException if any of the site info is missing.
> +     */
> +    protected static Site getSite( final MavenProject project )
> +        throws MojoExecutionException
> +    {
> +        final String name = project.getName() + " ("
> +            + project.getGroupId() + ":" + project.getArtifactId() + ":" + 
> project.getVersion() + ")";
> +
> +        final DistributionManagement distributionManagement = 
> project.getDistributionManagement();
> +
> +        if ( distributionManagement == null )
> +        {
> +            throw new MojoExecutionException( "Missing distribution 
> management in project " + name );
> +        }
> +
> +        final Site site = distributionManagement.getSite();
> +
> +        if ( site == null )
> +        {
> +            throw new MojoExecutionException(
> +                "Missing site information in the distribution management of 
> the project " + name );
> +        }
> +
> +        if ( site.getUrl() == null || site.getId() == null )
> +        {
> +            throw new MojoExecutionException( "Missing site data: specify 
> url and id for project " + name );
> +        }
> +
> +        return site;
> +    }
>  }
>
> 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=1077924&r1=1077923&r2=1077924&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
>  Fri Mar  4 12:58:01 2011
> @@ -19,10 +19,8 @@ package org.apache.maven.plugins.site;
>  * under the License.
>  */
>
> -import org.apache.maven.model.DistributionManagement;
>  import org.apache.maven.model.Site;
>  import org.apache.maven.plugin.MojoExecutionException;
> -import org.apache.maven.project.MavenProject;
>
>  /**
>  * Deploys the generated site using <code>scp</code> or <code>file</code>
> @@ -68,30 +66,4 @@ public class SiteDeployMojo
>
>         return site.getUrl();
>     }
> -
> -    private static Site getSite( final MavenProject project )
> -        throws MojoExecutionException
> -    {
> -        final DistributionManagement distributionManagement = 
> project.getDistributionManagement();
> -
> -        if ( distributionManagement == null )
> -        {
> -            throw new MojoExecutionException( "Missing distribution 
> management information in the project." );
> -        }
> -
> -        final Site site = distributionManagement.getSite();
> -
> -        if ( site == null )
> -        {
> -            throw new MojoExecutionException(
> -                "Missing site information in the distribution management 
> element in the project." );
> -        }
> -
> -        if ( site.getUrl() == null || site.getId() == null )
> -        {
> -            throw new MojoExecutionException( "Missing site data for deploy: 
> specify url and id!" );
> -        }
> -
> -        return site;
> -    }
>  }
>
> 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=1077924&r1=1077923&r2=1077924&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
>  Fri Mar  4 12:58:01 2011
> @@ -93,6 +93,7 @@ public class SiteStageDeployMojo
>      * @return the site URL for staging
>      */
>     private String getStagingSiteURL( String usersStagingSiteURL )
> +        throws MojoExecutionException
>     {
>         String topLevelURL = null;
>
> @@ -106,7 +107,7 @@ public class SiteStageDeployMojo
>         {
>             // The user didn't specify a URL, use the top level target dir
>             topLevelURL =
> -                getTopLevelParent( project 
> ).getDistributionManagement().getSite().getUrl() + "/" + 
> DEFAULT_STAGING_DIRECTORY;
> +                getSite( getTopLevelParent( project ) ).getUrl() + "/" + 
> DEFAULT_STAGING_DIRECTORY;
>             getLog().debug( "stagingSiteURL NOT specified, using the top 
> level project: " + topLevelURL );
>         }
>
>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to