You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2013/06/18 04:29:08 UTC
svn commit: r1493988 - in /commons/sandbox/commons-staging-plugin/trunk: ./
src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/commons/ src/main/java/org/apache/commons/plugins/
src/main/java/org/apache/...
Author: sebb
Date: Tue Jun 18 02:29:08 2013
New Revision: 1493988
URL: http://svn.apache.org/r1493988
Log:
Initial commit of staging plugin
TODO: change performExec default?
Added:
commons/sandbox/commons-staging-plugin/trunk/pom.xml (with props)
commons/sandbox/commons-staging-plugin/trunk/src/
commons/sandbox/commons-staging-plugin/trunk/src/main/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java (with props)
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java (with props)
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java (with props)
commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java (with props)
Modified:
commons/sandbox/commons-staging-plugin/trunk/ (props changed)
Propchange: commons/sandbox/commons-staging-plugin/trunk/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jun 18 02:29:08 2013
@@ -0,0 +1 @@
+target
Added: commons/sandbox/commons-staging-plugin/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-staging-plugin/trunk/pom.xml?rev=1493988&view=auto
==============================================================================
--- commons/sandbox/commons-staging-plugin/trunk/pom.xml (added)
+++ commons/sandbox/commons-staging-plugin/trunk/pom.xml Tue Jun 18 02:29:08 2013
@@ -0,0 +1,169 @@
+<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/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+<!--
+ <parent>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-parent</artifactId>
+ <version>30</version>
+ </parent>
+ -->
+
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-staging-plugin</artifactId>
+ <packaging>maven-plugin</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>Apache commons-staging-plugin Maven Mojo</name>
+ <url>http://maven.apache.org</url>
+
+ <description>
+ This Apache Commons plugin for Maven provides goals for staging
+ tarballs - source and binary packages for distribution via
+ the ASF mirroring system.
+ </description>
+
+ <prerequisites>
+ <maven>${mavenVersion}</maven>
+ </prerequisites>
+
+ <properties>
+ <mavenVersion>2.2.1</mavenVersion>
+ <mavenPluginPluginVersion>3.2</mavenPluginPluginVersion>
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <!-- 1.6 only requres Java 1.5 -->
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>${mavenVersion}</version>
+ </dependency>
+ <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>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${mavenVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${mavenVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>${mavenPluginPluginVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.0.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-9</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-sec-dispatcher</artifactId>
+ <version>1.4</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>${mavenPluginPluginVersion}</version>
+ <configuration>
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.1</version>
+ <configuration>
+ <source>${maven.compile.source}</source>
+ <target>${maven.compile.target}</target>
+ <encoding>${commons.encoding}</encoding>
+ <!--
+ <fork>${commons.compiler.fork}</fork>
+ <compilerVersion>${commons.compiler.compilerVersion}</compilerVersion>
+ <executable>${commons.compiler.javac}</executable>
+ -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <version>1.5.5</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-metadata</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <configuration>
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>generated-helpmojo</id>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: commons/sandbox/commons-staging-plugin/trunk/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java?rev=1493988&view=auto
==============================================================================
--- commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java (added)
+++ commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java Tue Jun 18 02:29:08 2013
@@ -0,0 +1,139 @@
+/*
+ * 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.
+ *
+ */
+
+package org.apache.commons.plugins.staging;
+
+import java.io.File;
+import java.io.InputStream;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.settings.Server;
+import org.apache.maven.settings.Settings;
+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 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.DefaultConsumer;
+import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
+
+public abstract class AbstractExecMojo extends AbstractMojo implements Contextualizable {
+
+ @Component
+ private Settings settings;
+
+ @Parameter (property="staging.rootUrl", defaultValue="https://dist.apache.org/repos/dist/", required=true)
+ private String rootUrl;
+
+ @Parameter (property="staging.serverName", required=false)
+ private String serverName;
+
+ @Parameter (property="staging.releaseId", required=true)
+ private String releaseId;
+
+ @Parameter (property="staging.performExec", defaultValue="false", required=false)
+ private boolean performExec;
+
+ /**
+ * Where to find the packages for upload
+ */
+ @Parameter( defaultValue = "${project.build.directory}/packages", property="staging.packageDirectory", required=true )
+ private File packageDirectory;
+
+ // @Component does not work for the container
+ private PlexusContainer container;
+
+ // Canonical way to get the container
+ public void contextualize( Context context ) throws ContextException {
+ container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+ }
+
+ private boolean isNonEmpty(String s) {
+ return s != null && s.trim().length() > 0;
+ }
+
+ public void exec(final String scriptName) throws MojoExecutionException {
+ Log log = getLog();
+ final File script = new File(packageDirectory, scriptName);
+ if (!script.isFile()) {
+ throw new MojoExecutionException("Cannot find script file "+script);
+ }
+ final String message = (scriptName.equals(CreateScriptMojo.SVMNUCC_RELEASE) ? "Releasing " : "Uploading ")
+ + releaseId;
+ log.info(message+ " using " + script.toString());
+ Commandline cmd = new Commandline();
+ cmd.setExecutable( "svnmucc" );
+
+ cmd.createArg().setValue( "--non-interactive" );
+ cmd.createArg().setValue( "--no-auth-cache" );
+ cmd.createArg().setValue( "--message" );
+ cmd.createArg().setValue( message );
+ cmd.createArg().setValue( "--root-url" );
+ cmd.createArg().setValue( rootUrl );
+ // Can move path segments between script and URL if required
+ // Of course that won't work for move between dev and release
+ cmd.createArg().setValue( "--extra-args" );
+ cmd.createArg().setFile( script );
+ cmd.createArg().setValue( "--username" );
+ String cmdLine;
+ if (isNonEmpty(serverName)) {
+ log.warn("Using authentication from settings.xml: " + serverName);
+ final Server server = settings.getServer(serverName);
+ if (server == null) {
+ throw new MojoExecutionException("Could not find server name " + serverName);
+ }
+ cmd.createArg().setValue( server.getUsername() );
+ cmd.createArg().setValue( "--password" );
+ cmdLine = cmd.toString();
+ try {
+ final SecDispatcher sd = (SecDispatcher) container.lookup( SecDispatcher.ROLE, "maven" );
+ cmd.createArg().setValue( sd.decrypt( server.getPassword() ) );
+ } catch (Exception e) {
+ throw new MojoExecutionException("Failed to decode password", e);
+ }
+ } else {
+ cmdLine = cmd.toString();
+ }
+ log.debug(cmdLine);
+ if (!performExec) {
+ log.warn("Command execution has been skipped; no action taken");
+ return;
+ }
+ try
+ {
+ final InputStream in = null; // svnmucc does not currently accept password from stdin
+ int exitCode = CommandLineUtils.executeCommandLine( cmd, in, new DefaultConsumer(), new DefaultConsumer() );
+
+ if ( exitCode != 0 )
+ {
+ throw new MojoExecutionException( "Exit code: " + exitCode );
+ }
+ }
+ catch ( CommandLineException e )
+ {
+ throw new MojoExecutionException( "Unable to execute svnmucc command", e );
+ }
+ }
+}
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/AbstractExecMojo.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java?rev=1493988&view=auto
==============================================================================
--- commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java (added)
+++ commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java Tue Jun 18 02:29:08 2013
@@ -0,0 +1,167 @@
+/*
+ * 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.commons.plugins.staging;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+
+/**
+ * Creates svnmucc "upload" and "release" scripts from the files found in the packages directory.
+ * <p>
+ * The files are uploaded to<br>
+ * dev/project/stagingDirectory (e.g. dev/commons/commons-lang-1.2-RC3).<br>
+ * The release notes are stored in the directory as above.<br>
+ * Files that contain -src in their name are staged to /source, the rest are staged to binaries/.
+ * <p>
+ * For the release script, files are moved from<br>
+ * dev/project/stagingDirectory to<br>
+ * release/project/[component/]
+ */
+@Mojo( name = "create-scripts")
+public class CreateScriptMojo extends AbstractMojo {
+
+ public static final String SVMNUCC_RELEASE = "svnmucc_release.txt";
+
+ public static final String SVMNUCC_UPLOAD = "svnmucc_upload.txt";
+
+ /**
+ * File name patterns which are to be ignored: {@value}
+ */
+ private static final String IGNORE = "svnmucc_.*\\.txt";
+
+ /**
+ * The top-level project name (as used in ASF dist repository) for the packages
+ */
+ @Parameter( property="staging.project", required=true)
+ private String project;
+
+ /**
+ * The staging directory name within the project (e.g. commons-lang-1.2-RC3)
+ */
+ @Parameter( property="staging.directory", required=true)
+ private String stagingDirectory;
+
+ /**
+ * The component name within the project package (for release folder); may be empty
+ */
+ @Parameter( property="staging.component", required=false)
+ private String component;
+
+ /**
+ * Where to find the packages for upload.
+ * Aall files are selected for upload apart from those named svnmucc_*.txt.
+ */
+ @Parameter( defaultValue = "${project.build.directory}/packages", property="staging.packageDirectory", required=true )
+ private File packageDirectory;
+
+ /**
+ * Path to the release notes (e.g. RELEASE-NOTES.txt)
+ */
+ @Parameter( property="staging.releaseNotes" )
+ private File releaseNotes;
+
+ public void execute() throws MojoExecutionException {
+ final Log log = getLog();
+ log.info("package directory: " + packageDirectory);
+ File files[] = packageDirectory.listFiles(new FileFilter() {
+ public boolean accept(File pathname) {
+ if (pathname.isFile()) {
+ String name = pathname.getName();
+ return !name.matches(IGNORE);
+ } else {
+ return false;
+ }
+ }
+ });
+ if (files == null) {
+ log.warn("The package directory does not exist: " + packageDirectory);
+ } else if (files.length == 0) {
+ log.warn("The package directory is empty: " + packageDirectory);
+ } else {
+ if (releaseNotes != null) { // this is for the top-level directory
+ if (!releaseNotes.exists()) {
+ throw new MojoExecutionException("Could not find " + releaseNotes);
+ }
+ }
+ final String stagingDir = "dev/" + project + "/" + stagingDirectory;
+ log.info("staging directory: " + stagingDir);
+ final String releaseDir =
+ "release/" + project + (component != null && component.length() > 0 ? "/" + component : "");
+ log.info("release directory: " + releaseDir);
+ try {
+ final PrintWriter staging = new PrintWriter(new File(packageDirectory, SVMNUCC_UPLOAD), "UTF-8");
+ final PrintWriter release = new PrintWriter(new File(packageDirectory, SVMNUCC_RELEASE), "UTF-8");
+
+ // Create the top-level dir; if this fails it means we've already uploaded
+ // This is deliberate to avoid replacing files
+ staging.println("mkdir");
+ staging.println(stagingDir);
+ staging.println();
+
+ staging.println("mkdir");
+ staging.print(stagingDir);
+ staging.println("/binaries");
+ staging.println();
+
+ staging.println("mkdir");
+ staging.print(stagingDir);
+ staging.println("/source");
+ staging.println();
+
+ if (releaseNotes != null) { // this is for the top-level directory
+ createEntry(stagingDir, releaseDir, staging, release, releaseNotes, "");
+ }
+
+ for(File file : files) {
+ final String name = file.getName();
+ final String subDir = (name.contains("-src") ? "source/" : "binaries/");
+ createEntry(stagingDir, releaseDir, staging, release, file, subDir);
+ }
+ staging.close();
+ release.close();
+ } catch (IOException e) {
+ throw new MojoExecutionException("Failed to create the script", e);
+ }
+ }
+ }
+
+ private void createEntry(final String stagingDir, final String releaseDir,
+ final PrintWriter staging, final PrintWriter release, final File file,
+ final String subdirPathElement) {
+ // Put the file to the staging area
+ final String stageName = stagingDir + "/" + subdirPathElement + file.getName();
+ staging.println("put");
+ staging.println(file);
+
+ staging.println(stageName);
+ staging.println();
+
+ // Release the file
+ final String finalName = releaseDir + "/" + subdirPathElement + file.getName();
+ release.println("mv");
+ release.println(stageName);
+ release.println(finalName);
+ release.println();
+ }
+
+}
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/CreateScriptMojo.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java?rev=1493988&view=auto
==============================================================================
--- commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java (added)
+++ commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java Tue Jun 18 02:29:08 2013
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ *
+ */
+
+package org.apache.commons.plugins.staging;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+
+@Mojo( name = "release")
+public class ReleaseMojo extends AbstractExecMojo {
+
+ public void execute() throws MojoExecutionException {
+ exec(CreateScriptMojo.SVMNUCC_RELEASE);
+ }
+}
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/ReleaseMojo.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java?rev=1493988&view=auto
==============================================================================
--- commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java (added)
+++ commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java Tue Jun 18 02:29:08 2013
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ *
+ */
+
+package org.apache.commons.plugins.staging;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.Mojo;
+
+@Mojo( name = "upload")
+public class UploadMojo extends AbstractExecMojo {
+
+ public void execute() throws MojoExecutionException {
+ exec(CreateScriptMojo.SVMNUCC_UPLOAD);
+ }
+}
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/sandbox/commons-staging-plugin/trunk/src/main/java/org/apache/commons/plugins/staging/UploadMojo.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision