You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/04/27 00:16:24 UTC

svn commit: r768812 - in /maven/sandbox/trunk/plugins/maven-jarsigner-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/java/org/apache/maven/plugins/ src/main/java/org/apache...

Author: bentmann
Date: Sun Apr 26 22:16:23 2009
New Revision: 768812

URL: http://svn.apache.org/viewvc?rev=768812&view=rev
Log:
[MSANDBOX-46] Import maven-jarsigner-plugin
Submitted by: Christian Schulte (via MJAVADOC-228)

Added:
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml   (with props)
    maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml   (with props)

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Apr 26 22:16:23 2009
@@ -0,0 +1,8 @@
+target
+.classpath
+.settings
+.project
+bin
+*.iml
+*.ipr
+*.iws

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml Sun Apr 26 22:16:23 2009
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <artifactId>maven-plugins</artifactId>
+    <groupId>org.apache.maven.plugins</groupId>
+    <version>13</version>
+  </parent>
+
+  <artifactId>maven-jarsigner-plugin</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven Jarsigner Plugin</name>
+  <description>Signs or verifies a project artifact and attachments using jarsigner.</description>
+
+  <contributors>
+    <contributor>
+      <name>Christian Schulte</name>
+    </contributor>
+  </contributors>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jarsigner-plugin/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jarsigner-plugin/</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jarsigner-plugin/</url>
+  </scm>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://jira.codehaus.org/browse/MJARSIGNER</url>
+  </issueManagement>
+
+  <properties>
+    <mavenVersion>2.0.10</mavenVersion>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.5.6</version>
+    </dependency>
+  </dependencies>
+
+</project>

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java Sun Apr 26 22:16:23 2009
@@ -0,0 +1,350 @@
+package org.apache.maven.plugins.jarsigner;
+
+/*
+ * 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.InputStream;
+import java.text.MessageFormat;
+import java.util.Iterator;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import org.apache.commons.lang.SystemUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+/**
+ * Maven Jarsigner Plugin base class.
+ *
+ * @author <a href="cs@schulte.it">Christian Schulte</a>
+ * @version $Id$
+ */
+public abstract class AbstractJarsignerMojo extends AbstractMojo
+{
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.verbose}" default-value="false"
+     */
+    private boolean verbose;
+
+    /**
+     * Archive to sign. If set, neither the project artifact nor any attachments are processed.
+     *
+     * @parameter expression="${jarsigner.archive}"
+     * @optional
+     */
+    private File archive;
+
+    /**
+     * List of arguments to append to the jarsigner command line.
+     *
+     * @parameter expression="${jarsigner.arguments}"
+     * @optional
+     */
+    private String[] arguments;
+
+    /**
+     * Set to {@code true} to disable the plugin.
+     *
+     * @parameter expression="${jarsigner.skip}" default-value="false"
+     */
+    private boolean skip;
+
+    /**
+     * Controls processing of project attachments.
+     *
+     * @parameter expression="${jarsigner.attachments}" default-value="true"
+     */
+    private boolean attachments;
+
+    /**
+     * The Maven project.
+     *
+     * @parameter expression="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    public final void execute() throws MojoExecutionException
+    {
+        if ( !this.skip )
+        {
+            if ( this.archive != null )
+            {
+                this.processArchive( this.archive );
+            }
+            else
+            {
+                this.processArtifact( this.project.getArtifact() );
+
+                for ( Iterator it = this.project.getAttachedArtifacts().iterator(); it.hasNext(); )
+                {
+                    final Artifact artifact = (Artifact) it.next();
+
+                    if ( this.attachments )
+                    {
+                        this.processArtifact( artifact );
+                    }
+                    else if ( this.isJavaLanguageCapable( artifact ) )
+                    {
+                        this.getLog().info( this.getMessage( "ignoringAttachment", new Object[]
+                            {
+                                artifact.toString()
+                            } ) );
+
+                    }
+                }
+            }
+        }
+        else
+        {
+            this.getLog().info( this.getMessage( "disabled", null ) );
+        }
+    }
+
+    /**
+     * Gets the {@code Commandline} to execute for a given Java archive taking a command line prepared for executing
+     * jarsigner.
+     *
+     * @param archive The Java archive to get a {@code Commandline} to execute for.
+     * @param commandLine A {@code Commandline} prepared for executing jarsigner without any arguments.
+     *
+     * @return A {@code Commandline} for executing jarsigner with {@code archive}.
+     *
+     * @throws NullPointerException if {@code archive} or {@code commandLine} is {@code null}.
+     */
+    protected abstract Commandline getCommandline( final File archive, final Commandline commandLine );
+
+    /**
+     * Gets a string representation of a {@code Commandline}.
+     * <p>This method creates the string representation by calling {@code commandLine.toString()} by default.</p>
+     *
+     * @param commandLine The {@code Commandline} to get a string representation of.
+     *
+     * @return The string representation of {@code commandLine}.
+     *
+     * @throws NullPointerException if {@code commandLine} is {@code null}.
+     */
+    protected String getCommandlineInfo( final Commandline commandLine )
+    {
+        if ( commandLine == null )
+        {
+            throw new NullPointerException( "commandLine" );
+        }
+
+        return commandLine.toString();
+    }
+
+    /**
+     * Checks Java language capability of an artifact.
+     *
+     * @param artifact The artifact to check.
+     *
+     * @return {@code true} if {@code artifact} is Java language capable; {@code false} if not.
+     */
+    private boolean isJavaLanguageCapable( final Artifact artifact )
+    {
+        return artifact != null && artifact.getFile() != null && artifact.getArtifactHandler() != null &&
+               "java".equals( artifact.getArtifactHandler().getLanguage() );
+
+    }
+
+    /**
+     * Processes a given artifact.
+     *
+     * @param artifact The artifact to process.
+     *
+     * @throws NullPointerException if {@code artifact} is {@code null}.
+     * @throws MojoExecutionException if processing {@code artifact} fails.
+     */
+    private void processArtifact( final Artifact artifact ) throws MojoExecutionException
+    {
+        if ( artifact == null )
+        {
+            throw new NullPointerException( "artifact" );
+        }
+
+        if ( this.isJavaLanguageCapable( artifact ) )
+        {
+            if ( this.verbose )
+            {
+                this.getLog().info( this.getMessage( "processing", new Object[]
+                    {
+                        artifact.toString()
+                    } ) );
+
+            }
+            else if ( this.getLog().isDebugEnabled() )
+            {
+                this.getLog().debug( this.getMessage( "processing", new Object[]
+                    {
+                        artifact.toString()
+                    } ) );
+
+            }
+
+            this.processArchive( artifact.getFile() );
+        }
+        else
+        {
+            if ( this.verbose )
+            {
+                this.getLog().info( this.getMessage( "unsupported", new Object[]
+                    {
+                        artifact.toString()
+                    } ) );
+
+            }
+            else if ( this.getLog().isDebugEnabled() )
+            {
+                this.getLog().debug( this.getMessage( "unsupported", new Object[]
+                    {
+                        artifact.toString()
+                    } ) );
+
+            }
+
+        }
+    }
+
+    /**
+     * Processes a given archive.
+     *
+     * @param archive The archive to process.
+     *
+     * @throws NullPointerException if {@code archive} is {@code null}.
+     * @throws MojoExecutionException if processing {@code archive} fails.
+     */
+    private void processArchive( final File archive ) throws MojoExecutionException
+    {
+        if ( archive == null )
+        {
+            throw new NullPointerException( "archive" );
+        }
+
+        Commandline commandLine = new Commandline();
+        commandLine.setExecutable( "jarsigner" + ( SystemUtils.IS_OS_WINDOWS ? ".exe" : "" ) );
+        commandLine.setWorkingDirectory( this.project.getBasedir() );
+
+        if ( this.verbose )
+        {
+            commandLine.createArg().setValue( "-verbose" );
+        }
+
+        if ( this.arguments != null )
+        {
+            commandLine.addArguments( this.arguments );
+        }
+
+        commandLine = this.getCommandline( archive, commandLine );
+
+        try
+        {
+            if ( this.getLog().isDebugEnabled() )
+            {
+                this.getLog().debug( this.getMessage( "command", new Object[]
+                    {
+                        this.getCommandlineInfo( commandLine )
+                    } ) );
+
+            }
+
+            final int result = CommandLineUtils.executeCommandLine( commandLine,
+                new InputStream()
+            {
+
+                public int read()
+                {
+                    return -1;
+                }
+
+            }, new StreamConsumer()
+            {
+
+                public void consumeLine( final String line )
+                {
+                    if ( verbose )
+                    {
+                        getLog().info( line );
+                    }
+                }
+
+            }, new StreamConsumer()
+            {
+
+                public void consumeLine( final String line )
+                {
+                    getLog().warn( line );
+                }
+
+            } );
+
+            if ( result != 0 )
+            {
+                throw new MojoExecutionException( this.getMessage( "failure", new Object[]
+                    {
+                        this.getCommandlineInfo( commandLine ), new Integer( result )
+                    } ) );
+
+            }
+        }
+        catch ( CommandLineException e )
+        {
+            throw new MojoExecutionException( this.getMessage( "commandLineException", new Object[]
+                {
+                    this.getCommandlineInfo( commandLine )
+                } ), e );
+
+        }
+    }
+
+    /**
+     * Gets a message for a given key from the resource bundle backing the implementation.
+     *
+     * @param key The key of the message to return.
+     * @param args Arguments to format the message with or {@code null}.
+     *
+     * @return The message with key {@code key} from the resource bundle backing the implementation.
+     *
+     * @throws NullPointerException if {@code key} is {@code null}.
+     * @throws MissingResourceException if there is no message available matching {@code key} or accessing the resource
+     * bundle fails.
+     */
+    private String getMessage( final String key, final Object[] args )
+    {
+        if ( key == null )
+        {
+            throw new NullPointerException( "key" );
+        }
+
+        return new MessageFormat( ResourceBundle.getBundle(
+            "org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo" ).getString( key ) ).format( args );
+
+    }
+
+}

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java Sun Apr 26 22:16:23 2009
@@ -0,0 +1,141 @@
+package org.apache.maven.plugins.jarsigner;
+
+/*
+ * 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.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * Signs a project artifact and attachments using jarsigner.
+ *
+ * @author <a href="cs@schulte.it">Christian Schulte</a>
+ * @version $Id$
+ * @goal sign
+ * @phase package
+ * @requiresProject
+ */
+public class JarsignerSignMojo extends AbstractJarsignerMojo
+{
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.keystore}"
+     */
+    private String keystore;
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.storepass}"
+     */
+    private String storepass;
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.keypass}"
+     */
+    private String keypass;
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.sigfile}"
+     */
+    private String sigfile;
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.storetype}"
+     */
+    private String storetype;
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.alias}"
+     * @required
+     */
+    private String alias;
+
+    protected Commandline getCommandline( final File archive, final Commandline commandLine )
+    {
+        if ( archive == null )
+        {
+            throw new NullPointerException( "archive" );
+        }
+        if ( commandLine == null )
+        {
+            throw new NullPointerException( "commandLine" );
+        }
+
+        if ( !StringUtils.isEmpty( this.keystore ) )
+        {
+            commandLine.createArg().setValue( "-keystore" );
+            commandLine.createArg().setValue( this.keystore );
+        }
+        if ( !StringUtils.isEmpty( this.storepass ) )
+        {
+            commandLine.createArg().setValue( "-storepass" );
+            commandLine.createArg().setValue( this.storepass );
+        }
+        if ( !StringUtils.isEmpty( this.keypass ) )
+        {
+            commandLine.createArg().setValue( "-keypass" );
+            commandLine.createArg().setValue( this.keypass );
+        }
+        if ( !StringUtils.isEmpty( this.storetype ) )
+        {
+            commandLine.createArg().setValue( "-storetype" );
+            commandLine.createArg().setValue( this.storetype );
+        }
+        if ( !StringUtils.isEmpty( this.sigfile ) )
+        {
+            commandLine.createArg().setValue( "-sigfile" );
+            commandLine.createArg().setValue( this.sigfile );
+        }
+
+        commandLine.createArg().setFile( archive );
+
+        if ( !StringUtils.isEmpty( this.alias ) )
+        {
+            commandLine.createArg().setValue( this.alias );
+        }
+
+        return commandLine;
+    }
+
+    protected String getCommandlineInfo( final Commandline commandLine )
+    {
+        String commandLineInfo = commandLine != null ? commandLine.toString() : null;
+
+        if ( commandLineInfo != null )
+        {
+            commandLineInfo = StringUtils.replace( commandLineInfo, this.keypass, "'*****'" );
+            commandLineInfo = StringUtils.replace( commandLineInfo, this.storepass, "'*****'" );
+        }
+
+        return commandLineInfo;
+    }
+
+}

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerSignMojo.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java Sun Apr 26 22:16:23 2009
@@ -0,0 +1,66 @@
+package org.apache.maven.plugins.jarsigner;
+
+/*
+ * 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.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * Checks the signatures of a project artifact and attachments using jarsigner.
+ *
+ * @author <a href="cs@schulte.it">Christian Schulte</a>
+ * @version $Id$
+ * @goal verify
+ * @phase verify
+ * @requiresProject
+ */
+public class JarsignerVerifyMojo extends AbstractJarsignerMojo
+{
+
+    /**
+     * See <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jarsigner.html#Options">options</a>.
+     *
+     * @parameter expression="${jarsigner.certs}" default-value="false"
+     */
+    private boolean certs;
+
+    protected Commandline getCommandline( final File archive, final Commandline commandLine )
+    {
+        if ( archive == null )
+        {
+            throw new NullPointerException( "archive" );
+        }
+        if ( commandLine == null )
+        {
+            throw new NullPointerException( "commandLine" );
+        }
+
+        commandLine.createArg( true ).setValue( "-verify" );
+
+        if ( this.certs )
+        {
+            commandLine.createArg().setValue( "-certs" );
+        }
+
+        commandLine.createArg().setFile( archive );
+        return commandLine;
+    }
+
+}

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/java/org/apache/maven/plugins/jarsigner/JarsignerVerifyMojo.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties Sun Apr 26 22:16:23 2009
@@ -0,0 +1,8 @@
+disabled=Disabled
+ignoringAttachment=Forcibly ignoring project attachment {0}
+unsupported=Unsupported artifact {0} ignored
+processing=Processing {0}
+command=''{0}''
+commandLineException=Failed executing ''{0}''
+failure=Failed executing ''{0}'' - exitcode {1,number}
+archive=Processing archive ''{0}''.

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo.properties
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties Sun Apr 26 22:16:23 2009
@@ -0,0 +1,8 @@
+disabled=Deaktiviert
+ignoringAttachment=Verarbeitung von Projektanhang {0} unterdr\u00FCckt
+unsupported=Nicht unterst\u00FCtztes Artefakt {0} ignoriert
+processing=Verarbeitet {0}
+command=''{0}''
+commandLineException=Ausf\u00FChrung von ''{0}'' gescheitert
+failure=Ausf\u00FChrung von ''{0}'' fehlgeschlagen ({1,number})
+archive=Verarbeitet Archiv ''{0}''.

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_de.properties
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties Sun Apr 26 22:16:23 2009
@@ -0,0 +1,8 @@
+disabled=Disabled
+ignoringAttachment=Forcibly ignoring project attachment {0}
+unsupported=Unsupported artifact {0} ignored
+processing=Processing {0}
+command=''{0}''
+commandLineException=Failed executing ''{0}''
+failure=Failed executing ''{0}'' - exitcode {1,number}
+archive=Processing archive ''{0}''.

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/main/resources/org/apache/maven/plugins/jarsigner/AbstractJarsignerMojo_en.properties
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt Sun Apr 26 22:16:23 2009
@@ -0,0 +1,68 @@
+ ------
+ Sign and verify a project
+ ------
+ Christian Schulte
+ ------
+ 08 April 2009
+ ------
+
+~~ 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.
+
+
+Sign and verify a project
+
+  If you need to sign a project artifact and all attached artifacts and want
+  to verify the signatures afterwards, just configure the sign and verify goal
+  appropriately in your <<<pom.xml>>> for the signing to occur automatically
+  during the package phase and for the verification to occur during the verify
+  phase.
+
++-----------------+
+<project>
+  ...
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jarsigner-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>sign</id>
+            <goals>
+              <goal>sign</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+  ...
+</project>
++-----------------+
+
+  Note: The sign goal requires at least the alias to use for signing. This alias
+  can be passed using the command line like -Djarsigner.alias="Alias Name"
+  or set as a property in the settings.xml file when not configured in the POM.

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/examples/sign-and-verify-project.apt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt Sun Apr 26 22:16:23 2009
@@ -0,0 +1,67 @@
+ ------
+ Introduction
+ ------
+ Christian Schulte
+ ------
+ 08 April 2009
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Maven Jarsigner Plugin
+
+  This plugin provides the capability to sign or verify a project artifact
+  and attachments using jarsigner.
+
+* Goals Overview
+
+  * {{{sign-mojo.html}jarsigner:sign}} sign a project artifact and attached artifacts.
+
+  * {{{verify-mojo.html}jarsigner:verify}} verify a project artifact and attached artifacts.
+
+  []
+
+* Usage
+
+  General instructions on how to use the Jarsigner Plugin can be found on the {{{usage.html}usage page}}. Some more
+  specific use cases are described in the examples given below. Last but not least, users occasionally contribute
+  additional examples, tips or errata to the
+  {{{http://docs.codehaus.org/display/MAVENUSER/Jarsigner+Plugin}plugin's wiki page}}.
+
+  In case you still have questions regarding the plugin's usage, please have a look at the {{{faq.html}FAQ}} and feel
+  free to contact the {{{mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
+  already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching
+  the {{{mail-lists.html}mail archive}}.
+
+  If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our
+  {{{issue-tracking.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your
+  concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason,
+  entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated.
+  Of course, patches are welcome, too. Contributors can check out the project from our
+  {{{source-repository.html}source repository}} and will find supplementary information in the
+  {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}.
+
+* Examples
+
+  To provide you with better understanding of some usages of the Jarsigner
+  Plugin, you can take a look at the following example:
+
+  * {{{examples/sign-and-verify-project.html}Sign and verify a project}}

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/index.apt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt Sun Apr 26 22:16:23 2009
@@ -0,0 +1,118 @@
+ ------
+ Usage
+ ------
+ Christian Schulte
+ ------
+ 08 April 2009
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Usage
+
+ Some brief examples on how to use this plugin.
+
+* Signing a project artifact and attachments
+
+  If you need to sign a project artifact and all attached artifacts, just
+  configure the sign goal appropriately in your <<<pom.xml>>> for the
+  signing to occur automatically during the package phase.
+
++-----------------+
+<project>
+  ...
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jarsigner-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>sign</id>
+            <goals>
+              <goal>sign</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <keystore>/path/to/the/keystore</keystore>
+          <alias>Alias name</alias>
+          <storepass>Store password</storepass>
+          <keypass>Key password</keypass>
+        </configuration>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+  ...
+</project>
++-----------------+
+
+* Verifying the signature of a project artifact and attachments
+
+  If you need to verify the signatures of a project artifact and all attached
+  artifacts, just configure the verify goal appropriately in your <<<pom.xml>>>
+  for the verification to occur automatically during the verify phase.
+
++-----------------+
+<project>
+  ...
+  <build>
+    <plugins>
+      ...
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jarsigner-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <verbose>true</verbose>
+          <certs>true</certs>
+        </configuration>
+      </plugin>
+      ...
+    </plugins>
+  </build>
+  ...
+</project>
++-----------------+
+
+* How to disable attachment processing
+
++-----------------+
+mvn ... -Djarsigner.attachments=false
++-----------------+
+
+
+* How to disable the Jarsigner Plugin
+
++-----------------+
+mvn ... -Djarsigner.skip=true
++-----------------+
+
+  For full documentation, click {{{plugin-info.html}here}}.

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/apt/usage.apt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml Sun Apr 26 22:16:23 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<faqs id="FAQ" title="Frequently Asked Questions">
+  <part id="General">
+   <faq id="about">
+     <question>What is Jarsigner ?</question>
+     <answer>
+       <p>
+         You can read more about Jarsigner <a href="http://java.sun.com/javase/6/docs/technotes/tools/solaris/jarsigner.html">here</a>.
+       </p>
+     </answer>
+   </faq>
+   <faq id="maven-jar-plugin">
+     <question>Is it possible to sign a single archive file ?</question>
+     <answer>
+       <p>
+         Signing or verifying a Java archive which is neither a project artifact
+         nor an attached artifact can be done by using the archive parameter
+         of the sign and verify goals. If this parameter is set, the goals will
+         process the specified archive and will not process any project
+         artifacts.
+       </p>
+     </answer>
+   </faq>
+  </part>
+</faqs>

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/fml/faq.fml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml?rev=768812&view=auto
==============================================================================
--- maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml (added)
+++ maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml Sun Apr 26 22:16:23 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project>
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Goals" href="plugin-info.html"/>
+      <item name="Usage" href="usage.html"/>
+      <item name="FAQ" href="faq.html"/>
+    </menu>
+  </body>
+</project>

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/plugins/maven-jarsigner-plugin/src/site/site.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision