Author: suresh
Date: Mon Jan 21 03:50:14 2013
New Revision: 1436182
URL: http://svn.apache.org/viewvc?rev=1436182&view=rev
Log:
HADOOP-8924. Add maven plugin alternative to shell script to save
package-info.java. Contributed by Alejandro Abdelnur and Chris Nauroth.
Added:
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/pom.xml
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/Exec.java
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/FileSetUtils.java
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/VersionInfoMojo.java
Removed:
hadoop/common/branches/branch-trunk-win/dev-support/saveVersion.py
Modified:
hadoop/common/branches/branch-trunk-win/hadoop-project/pom.xml
hadoop/common/branches/branch-trunk-win/pom.xml
Added: hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/pom.xml
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/pom.xml?rev=1436182&view=auto
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/pom.xml (added)
+++ hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/pom.xml Mon
Jan 21 03:50:14 2013
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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. See accompanying LICENSE file.
+-->
+<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.hadoop</groupId>
+ <artifactId>hadoop-project</artifactId>
+ <version>3.0.0-SNAPSHOT</version>
+ <relativePath>../hadoop-project</relativePath>
+ </parent>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-maven-plugins</artifactId>
+ <packaging>maven-plugin</packaging>
+ <name>Apache Hadoop Maven Plugins</name>
+ <properties>
+ <maven.dependency.version>3.0</maven.dependency.version>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>${maven.dependency.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>${maven.dependency.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>${maven.dependency.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>${maven.dependency.version}</version>
+ <configuration>
+ <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+ </configuration>
+ <executions>
+ <execution>
+ <id>mojo-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added:
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/Exec.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/Exec.java?rev=1436182&view=auto
==============================================================================
---
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/Exec.java
(added)
+++
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/Exec.java
Mon Jan 21 03:50:14 2013
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * 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.hadoop.maven.plugin.util;
+
+import org.apache.maven.plugin.Mojo;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Exec is a helper class for executing an external process from a mojo.
+ */
+public class Exec {
+ private Mojo mojo;
+
+ /**
+ * Creates a new Exec instance for executing an external process from the
given
+ * mojo.
+ *
+ * @param mojo Mojo executing external process
+ */
+ public Exec(Mojo mojo) {
+ this.mojo = mojo;
+ }
+
+ /**
+ * Runs the specified command and saves each line of the command's output to
+ * the given list.
+ *
+ * @param command List<String> containing command and all arguments
+ * @param output List<String> in/out parameter to receive command output
+ * @return int exit code of command
+ */
+ public int run(List<String> command, List<String> output) {
+ int retCode = 1;
+ ProcessBuilder pb = new ProcessBuilder(command);
+ try {
+ Process p = pb.start();
+ OutputBufferThread stdOut = new OutputBufferThread(p.getInputStream());
+ OutputBufferThread stdErr = new OutputBufferThread(p.getErrorStream());
+ stdOut.start();
+ stdErr.start();
+ retCode = p.waitFor();
+ if (retCode != 0) {
+ mojo.getLog().warn(command + " failed with error code " + retCode);
+ for (String s : stdErr.getOutput()) {
+ mojo.getLog().debug(s);
+ }
+ } else {
+ stdOut.join();
+ stdErr.join();
+ output.addAll(stdOut.getOutput());
+ }
+ } catch (Exception ex) {
+ mojo.getLog().warn(command + " failed: " + ex.toString());
+ }
+ return retCode;
+ }
+
+ /**
+ * OutputBufferThread is a background thread for consuming and storing output
+ * of the external process.
+ */
+ private static class OutputBufferThread extends Thread {
+ private List<String> output;
+ private BufferedReader reader;
+
+ /**
+ * Creates a new OutputBufferThread to consume the given InputStream.
+ *
+ * @param is InputStream to consume
+ */
+ public OutputBufferThread(InputStream is) {
+ this.setDaemon(true);
+ output = new ArrayList<String>();
+ reader = new BufferedReader(new InputStreamReader(is));
+ }
+
+ @Override
+ public void run() {
+ try {
+ String line = reader.readLine();
+ while (line != null) {
+ output.add(line);
+ line = reader.readLine();
+ }
+ } catch (IOException ex) {
+ throw new RuntimeException("make failed with error code " +
ex.toString());
+ }
+ }
+
+ /**
+ * Returns every line consumed from the input.
+ *
+ * @return List<String> every line consumed from the input
+ */
+ public List<String> getOutput() {
+ return output;
+ }
+ }
+}
Added:
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/FileSetUtils.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/FileSetUtils.java?rev=1436182&view=auto
==============================================================================
---
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/FileSetUtils.java
(added)
+++
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/util/FileSetUtils.java
Mon Jan 21 03:50:14 2013
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * 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.hadoop.maven.plugin.util;
+
+import org.apache.maven.model.FileSet;
+import org.codehaus.plexus.util.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * FileSetUtils contains helper methods for mojo implementations that need to
+ * work with a Maven FileSet.
+ */
+public class FileSetUtils {
+
+ /**
+ * Returns a string containing every element of the given list, with each
+ * element separated by a comma.
+ *
+ * @param list List of all elements
+ * @return String containing every element, comma-separated
+ */
+ private static String getCommaSeparatedList(List list) {
+ StringBuilder buffer = new StringBuilder();
+ String separator = "";
+ for (Object e : list) {
+ buffer.append(separator).append(e);
+ separator = ",";
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Converts a Maven FileSet to a list of File objects.
+ *
+ * @param source FileSet to convert
+ * @return List<File> containing every element of the FileSet as a File
+ * @throws IOException if an I/O error occurs while trying to find the files
+ */
+ @SuppressWarnings("unchecked")
+ public static List<File> convertFileSetToFiles(FileSet source) throws
IOException {
+ String includes = getCommaSeparatedList(source.getIncludes());
+ String excludes = getCommaSeparatedList(source.getExcludes());
+ return FileUtils.getFiles(new File(source.getDirectory()), includes,
excludes);
+ }
+}
Added:
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/VersionInfoMojo.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/VersionInfoMojo.java?rev=1436182&view=auto
==============================================================================
---
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/VersionInfoMojo.java
(added)
+++
hadoop/common/branches/branch-trunk-win/hadoop-maven-plugins/src/main/java/org/apache/hadoop/maven/plugin/versioninfo/VersionInfoMojo.java
Mon Jan 21 03:50:14 2013
@@ -0,0 +1,343 @@
+/*
+ * Copyright 2012 The Apache Software Foundation.
+ *
+ * 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.hadoop.maven.plugin.versioninfo;
+
+import org.apache.hadoop.maven.plugin.util.Exec;
+import org.apache.hadoop.maven.plugin.util.FileSetUtils;
+import org.apache.maven.model.FileSet;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.TimeZone;
+
+/**
+ * VersionInfoMojo calculates information about the current version of the
+ * codebase and exports the information as properties for further use in a
Maven
+ * build. The version information includes build time, SCM URI, SCM branch,
SCM
+ * commit, and an MD5 checksum of the contents of the files in the codebase.
+ */
+@Mojo(name="version-info", defaultPhase=LifecyclePhase.INITIALIZE)
+public class VersionInfoMojo extends AbstractMojo {
+
+ @Parameter(defaultValue="${project}")
+ private MavenProject project;
+
+ @Parameter(required=true)
+ private FileSet source;
+
+ @Parameter(defaultValue="version-info.build.time")
+ private String buildTimeProperty;
+
+ @Parameter(defaultValue="version-info.source.md5")
+ private String md5Property;
+
+ @Parameter(defaultValue="version-info.scm.uri")
+ private String scmUriProperty;
+
+ @Parameter(defaultValue="version-info.scm.branch")
+ private String scmBranchProperty;
+
+ @Parameter(defaultValue="version-info.scm.commit")
+ private String scmCommitProperty;
+
+ @Parameter(defaultValue="git")
+ private String gitCommand;
+
+ @Parameter(defaultValue="svn")
+ private String svnCommand;
+
+ private enum SCM {NONE, SVN, GIT}
+
+ @Override
+ public void execute() throws MojoExecutionException {
+ try {
+ SCM scm = determineSCM();
+ project.getProperties().setProperty(buildTimeProperty, getBuildTime());
+ project.getProperties().setProperty(scmUriProperty, getSCMUri(scm));
+ project.getProperties().setProperty(scmBranchProperty,
getSCMBranch(scm));
+ project.getProperties().setProperty(scmCommitProperty,
getSCMCommit(scm));
+ project.getProperties().setProperty(md5Property, computeMD5());
+ } catch (Throwable ex) {
+ throw new MojoExecutionException(ex.toString(), ex);
+ }
+ }
+
+ /**
+ * Returns a string representing current build time.
+ *
+ * @return String representing current build time
+ */
+ private String getBuildTime() {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'");
+ dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+ return dateFormat.format(new Date());
+ }
+ private List<String> scmOut;
+
+ /**
+ * Determines which SCM is in use (Subversion, git, or none) and captures
+ * output of the SCM command for later parsing.
+ *
+ * @return SCM in use for this build
+ * @throws Exception if any error occurs attempting to determine SCM
+ */
+ private SCM determineSCM() throws Exception {
+ Exec exec = new Exec(this);
+ SCM scm = SCM.NONE;
+ scmOut = new ArrayList<String>();
+ int ret = exec.run(Arrays.asList(svnCommand, "info"), scmOut);
+ if (ret == 0) {
+ scm = SCM.SVN;
+ } else {
+ ret = exec.run(Arrays.asList(gitCommand, "branch"), scmOut);
+ if (ret == 0) {
+ ret = exec.run(Arrays.asList(gitCommand, "remote", "-v"), scmOut);
+ if (ret != 0) {
+ scm = SCM.NONE;
+ scmOut = null;
+ } else {
+ ret = exec.run(Arrays.asList(gitCommand, "log", "-n", "1"), scmOut);
+ if (ret != 0) {
+ scm = SCM.NONE;
+ scmOut = null;
+ } else {
+ scm = SCM.GIT;
+ }
+ }
+ }
+ }
+ if (scmOut != null) {
+ getLog().debug(scmOut.toString());
+ }
+ getLog().info("SCM: " + scm);
+ return scm;
+ }
+
+ /**
+ * Return URI and branch of Subversion repository.
+ *
+ * @param str String Subversion info output containing URI and branch
+ * @return String[] containing URI and branch
+ */
+ private String[] getSvnUriInfo(String str) {
+ String[] res = new String[]{"Unknown", "Unknown"};
+ try {
+ String path = str;
+ int index = path.indexOf("trunk");
+ if (index > -1) {
+ res[0] = path.substring(0, index - 1);
+ res[1] = "trunk";
+ } else {
+ index = path.indexOf("branches");
+ if (index > -1) {
+ res[0] = path.substring(0, index - 1);
+ int branchIndex = index + "branches".length() + 1;
+ index = path.indexOf("/", branchIndex);
+ if (index > -1) {
+ res[1] = path.substring(branchIndex, index);
+ } else {
+ res[1] = path.substring(branchIndex);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ getLog().warn("Could not determine URI & branch from SVN URI: " + str);
+ }
+ return res;
+ }
+
+ /**
+ * Parses SCM output and returns URI of SCM.
+ *
+ * @param scm SCM in use for this build
+ * @return String URI of SCM
+ */
+ private String getSCMUri(SCM scm) {
+ String uri = "Unknown";
+ switch (scm) {
+ case SVN:
+ for (String s : scmOut) {
+ if (s.startsWith("URL:")) {
+ uri = s.substring(4).trim();
+ uri = getSvnUriInfo(uri)[0];
+ break;
+ }
+ }
+ break;
+ case GIT:
+ for (String s : scmOut) {
+ if (s.startsWith("origin") && s.endsWith("(fetch)")) {
+ uri = s.substring("origin".length());
+ uri = uri.substring(0, uri.length() - "(fetch)".length());
+ break;
+ }
+ }
+ break;
+ }
+ return uri.trim();
+ }
+
+ /**
+ * Parses SCM output and returns commit of SCM.
+ *
+ * @param scm SCM in use for this build
+ * @return String commit of SCM
+ */
+ private String getSCMCommit(SCM scm) {
+ String commit = "Unknown";
+ switch (scm) {
+ case SVN:
+ for (String s : scmOut) {
+ if (s.startsWith("Revision:")) {
+ commit = s.substring("Revision:".length());
+ break;
+ }
+ }
+ break;
+ case GIT:
+ for (String s : scmOut) {
+ if (s.startsWith("commit")) {
+ commit = s.substring("commit".length());
+ break;
+ }
+ }
+ break;
+ }
+ return commit.trim();
+ }
+
+ /**
+ * Parses SCM output and returns branch of SCM.
+ *
+ * @param scm SCM in use for this build
+ * @return String branch of SCM
+ */
+ private String getSCMBranch(SCM scm) {
+ String branch = "Unknown";
+ switch (scm) {
+ case SVN:
+ for (String s : scmOut) {
+ if (s.startsWith("URL:")) {
+ branch = s.substring(4).trim();
+ branch = getSvnUriInfo(branch)[1];
+ break;
+ }
+ }
+ break;
+ case GIT:
+ for (String s : scmOut) {
+ if (s.startsWith("*")) {
+ branch = s.substring("*".length());
+ break;
+ }
+ }
+ break;
+ }
+ return branch.trim();
+ }
+
+ /**
+ * Reads and returns the full contents of the specified file.
+ *
+ * @param file File to read
+ * @return byte[] containing full contents of file
+ * @throws IOException if there is an I/O error while reading the file
+ */
+ private byte[] readFile(File file) throws IOException {
+ RandomAccessFile raf = new RandomAccessFile(file, "r");
+ byte[] buffer = new byte[(int) raf.length()];
+ raf.readFully(buffer);
+ raf.close();
+ return buffer;
+ }
+
+ /**
+ * Given a list of files, computes and returns an MD5 checksum of the full
+ * contents of all files.
+ *
+ * @param files List<File> containing every file to input into the MD5
checksum
+ * @return byte[] calculated MD5 checksum
+ * @throws IOException if there is an I/O error while reading a file
+ * @throws NoSuchAlgorithmException if the MD5 algorithm is not supported
+ */
+ private byte[] computeMD5(List<File> files) throws IOException,
NoSuchAlgorithmException {
+ MessageDigest md5 = MessageDigest.getInstance("MD5");
+ for (File file : files) {
+ getLog().debug("Computing MD5 for: " + file);
+ md5.update(readFile(file));
+ }
+ return md5.digest();
+ }
+
+ /**
+ * Converts bytes to a hexadecimal string representation and returns it.
+ *
+ * @param array byte[] to convert
+ * @return String containing hexadecimal representation of bytes
+ */
+ private String byteArrayToString(byte[] array) {
+ StringBuilder sb = new StringBuilder();
+ for (byte b : array) {
+ sb.append(Integer.toHexString(0xff & b));
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Computes and returns an MD5 checksum of the contents of all files in the
+ * input Maven FileSet.
+ *
+ * @return String containing hexadecimal representation of MD5 checksum
+ * @throws Exception if there is any error while computing the MD5 checksum
+ */
+ private String computeMD5() throws Exception {
+ List<File> files = FileSetUtils.convertFileSetToFiles(source);
+ // File order of MD5 calculation is significant. Sorting is done on
+ // unix-format names, case-folded, in order to get a platform-independent
+ // sort and calculate the same MD5 on all platforms.
+ Collections.sort(files, new Comparator<File>() {
+ @Override
+ public int compare(File lhs, File rhs) {
+ return normalizePath(lhs).compareTo(normalizePath(rhs));
+ }
+
+ private String normalizePath(File file) {
+ return file.getPath().toUpperCase().replaceAll("\\\\", "/");
+ }
+ });
+ byte[] md5 = computeMD5(files);
+ String md5str = byteArrayToString(md5);
+ getLog().info("Computed MD5: " + md5str);
+ return md5str;
+ }
+}
Modified: hadoop/common/branches/branch-trunk-win/hadoop-project/pom.xml
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/hadoop-project/pom.xml?rev=1436182&r1=1436181&r2=1436182&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/hadoop-project/pom.xml (original)
+++ hadoop/common/branches/branch-trunk-win/hadoop-project/pom.xml Mon Jan 21
03:50:14 2013
@@ -769,6 +769,11 @@
<artifactId>maven-pdf-plugin</artifactId>
<version>1.1</version>
</plugin>
+ <plugin>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-maven-plugins</artifactId>
+ <version>${project.version}</version>
+ </plugin>
</plugins>
</pluginManagement>
Modified: hadoop/common/branches/branch-trunk-win/pom.xml
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-trunk-win/pom.xml?rev=1436182&r1=1436181&r2=1436182&view=diff
==============================================================================
--- hadoop/common/branches/branch-trunk-win/pom.xml (original)
+++ hadoop/common/branches/branch-trunk-win/pom.xml Mon Jan 21 03:50:14 2013
@@ -87,6 +87,7 @@ xsi:schemaLocation="http://maven.apache.
<module>hadoop-project</module>
<module>hadoop-project-dist</module>
<module>hadoop-assemblies</module>
+ <module>hadoop-maven-plugins</module>
<module>hadoop-common-project</module>
<module>hadoop-hdfs-project</module>
<module>hadoop-yarn-project</module>