Revert "Simplify artifacts deployment to Maven Central"

This strategy generates a syntactically valid, barebones pom.xml like:

<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>
  <groupId>com.google.gerrit</groupId>
  <artifactId>gerrit-extension-api</artifactId>
  <version>2.15-rc0</version>
  <packaging>javadoc</packaging>
</project>

But Nexus rejects this pom when closing the staging repository,
complaining about the lack of license/developer/etc.

This reverts commit 0ce2fdc1c22701745b8c3e1bb9b3f49de6b34de0.

Change-Id: Idab2a82ddd81d60f0ca6eea44d80706e04262c6b
diff --git a/Documentation/dev-release.txt b/Documentation/dev-release.txt
index 2f6a7d6..039d545 100644
--- a/Documentation/dev-release.txt
+++ b/Documentation/dev-release.txt
@@ -89,14 +89,22 @@
 . link:#merge-stable[Merge `stable` into `master`]
 
 
-[[update-version]]
-=== Update Version and Create Release Tag
+[[update-versions]]
+=== Update Versions and Create Release Tag
 
 Before doing the release build, the `GERRIT_VERSION` in the `version.bzl`
 file must be updated, e.g. change it from `2.5-SNAPSHOT` to `2.5`.
 
-Commit the change in `version.bzl` and create a signed release tag on the
-new commit:
+In addition the version must be updated in a number of pom.xml files.
+
+To do this run the `./tools/version.py` script and provide the new
+version as parameter, e.g.:
+
+----
+  ./tools/version.py 2.5
+----
+
+Commit the changes and create a signed release tag on the new commit:
 
 ----
   git tag -s -m "v2.5" v2.5
@@ -139,8 +147,9 @@
 link:dev-release-deploy-config.html#deploy-configuration-setting-maven-central[
 configuration] for deploying to Maven Central
 
-* Make sure that the version is updated in the `version.bzl` file as described
-in the link:#update-version[Update Version and Create Release Tag] section.
+* Make sure that the version is updated in the `version.bzl` file and in
+the `pom.xml` files as described in the link:#update-versions[Update
+Versions and Create Release Tag] section.
 
 * Push the WAR to Maven Central:
 +
diff --git a/fake_pom.xml b/gerrit-acceptance-framework/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-acceptance-framework/pom.xml
index 6ec45e5..747f5d4 100644
--- a/fake_pom.xml
+++ b/gerrit-acceptance-framework/pom.xml
@@ -1,11 +1,11 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.google.gerrit</groupId>
-  <artifactId>gerrit</artifactId>
-  <version>1</version> <!-- Do not edit; see version.bzl. -->
+  <artifactId>gerrit-acceptance-framework</artifactId>
+  <version>2.15-SNAPSHOT</version>
   <packaging>jar</packaging>
-  <name>Gerrit Code Review - Extension API</name>
-  <description>API for Gerrit Extensions</description>
+  <name>Gerrit Code Review - Acceptance Test Framework</name>
+  <description>Framework for Gerrit's acceptance tests</description>
   <url>https://www.gerritcodereview.com/</url>
 
   <licenses>
@@ -53,15 +53,9 @@
       <name>Logan Hanks</name>
     </developer>
     <developer>
-      <name>Luca Milanesio</name>
-    </developer>
-    <developer>
       <name>Martin Fick</name>
     </developer>
     <developer>
-      <name>Patrick Hiesel</name>
-    </developer>
-    <developer>
       <name>Saša Živkov</name>
     </developer>
     <developer>
diff --git a/fake_pom.xml b/gerrit-extension-api/pom.xml
similarity index 95%
rename from fake_pom.xml
rename to gerrit-extension-api/pom.xml
index 6ec45e5..b6556bc 100644
--- a/fake_pom.xml
+++ b/gerrit-extension-api/pom.xml
@@ -1,8 +1,8 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.google.gerrit</groupId>
-  <artifactId>gerrit</artifactId>
-  <version>1</version> <!-- Do not edit; see version.bzl. -->
+  <artifactId>gerrit-extension-api</artifactId>
+  <version>2.15-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>Gerrit Code Review - Extension API</name>
   <description>API for Gerrit Extensions</description>
diff --git a/fake_pom.xml b/gerrit-plugin-api/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-plugin-api/pom.xml
index 6ec45e5..f9dc7e4 100644
--- a/fake_pom.xml
+++ b/gerrit-plugin-api/pom.xml
@@ -1,11 +1,11 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.google.gerrit</groupId>
-  <artifactId>gerrit</artifactId>
-  <version>1</version> <!-- Do not edit; see version.bzl. -->
+  <artifactId>gerrit-plugin-api</artifactId>
+  <version>2.15-SNAPSHOT</version>
   <packaging>jar</packaging>
-  <name>Gerrit Code Review - Extension API</name>
-  <description>API for Gerrit Extensions</description>
+  <name>Gerrit Code Review - Plugin API</name>
+  <description>API for Gerrit Plugins</description>
   <url>https://www.gerritcodereview.com/</url>
 
   <licenses>
@@ -53,15 +53,9 @@
       <name>Logan Hanks</name>
     </developer>
     <developer>
-      <name>Luca Milanesio</name>
-    </developer>
-    <developer>
       <name>Martin Fick</name>
     </developer>
     <developer>
-      <name>Patrick Hiesel</name>
-    </developer>
-    <developer>
       <name>Saša Živkov</name>
     </developer>
     <developer>
diff --git a/fake_pom.xml b/gerrit-plugin-gwtui/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-plugin-gwtui/pom.xml
index 6ec45e5..daabb46 100644
--- a/fake_pom.xml
+++ b/gerrit-plugin-gwtui/pom.xml
@@ -1,11 +1,11 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.google.gerrit</groupId>
-  <artifactId>gerrit</artifactId>
-  <version>1</version> <!-- Do not edit; see version.bzl. -->
+  <artifactId>gerrit-plugin-gwtui</artifactId>
+  <version>2.15-SNAPSHOT</version>
   <packaging>jar</packaging>
-  <name>Gerrit Code Review - Extension API</name>
-  <description>API for Gerrit Extensions</description>
+  <name>Gerrit Code Review - Plugin GWT UI</name>
+  <description>Common Classes for Gerrit GWT UI Plugins</description>
   <url>https://www.gerritcodereview.com/</url>
 
   <licenses>
@@ -53,15 +53,9 @@
       <name>Logan Hanks</name>
     </developer>
     <developer>
-      <name>Luca Milanesio</name>
-    </developer>
-    <developer>
       <name>Martin Fick</name>
     </developer>
     <developer>
-      <name>Patrick Hiesel</name>
-    </developer>
-    <developer>
       <name>Saša Živkov</name>
     </developer>
     <developer>
diff --git a/fake_pom.xml b/gerrit-war/pom.xml
similarity index 84%
copy from fake_pom.xml
copy to gerrit-war/pom.xml
index 6ec45e5..f3dec88 100644
--- a/fake_pom.xml
+++ b/gerrit-war/pom.xml
@@ -1,11 +1,11 @@
 <project>
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.google.gerrit</groupId>
-  <artifactId>gerrit</artifactId>
-  <version>1</version> <!-- Do not edit; see version.bzl. -->
-  <packaging>jar</packaging>
-  <name>Gerrit Code Review - Extension API</name>
-  <description>API for Gerrit Extensions</description>
+  <artifactId>gerrit-war</artifactId>
+  <version>2.15-SNAPSHOT</version>
+  <packaging>war</packaging>
+  <name>Gerrit Code Review - WAR</name>
+  <description>Gerrit WAR</description>
   <url>https://www.gerritcodereview.com/</url>
 
   <licenses>
@@ -53,15 +53,9 @@
       <name>Logan Hanks</name>
     </developer>
     <developer>
-      <name>Luca Milanesio</name>
-    </developer>
-    <developer>
       <name>Martin Fick</name>
     </developer>
     <developer>
-      <name>Patrick Hiesel</name>
-    </developer>
-    <developer>
       <name>Saša Živkov</name>
     </developer>
     <developer>
diff --git a/tools/maven/mvn.py b/tools/maven/mvn.py
index 2426b9f..f7b5aa8 100755
--- a/tools/maven/mvn.py
+++ b/tools/maven/mvn.py
@@ -19,10 +19,6 @@
 from subprocess import check_output
 from sys import stderr
 
-
-def mvn():
-  return ['mvn', '--file', path.join(root, 'fake_pom.xml'), '-DgroupId=com.google.gerrit']
-
 opts = OptionParser()
 opts.add_option('--repository', help='maven repository id')
 opts.add_option('--url', help='maven repository url')
@@ -41,12 +37,14 @@
   root = path.dirname(root)
 
 if 'install' == args.a:
-  cmd = mvn() + [
+  cmd = [
+    'mvn',
     'install:install-file',
     '-Dversion=%s' % args.v,
   ]
 elif 'deploy' == args.a:
-  cmd = mvn() + [
+  cmd = [
+    'mvn',
     'gpg:sign-and-deploy-file',
     '-DrepositoryId=%s' % args.repository,
     '-Durl=%s' % args.url,
@@ -58,7 +56,7 @@
 for spec in args.s:
   artifact, packaging_type, src = spec.split(':')
   exe = cmd + [
-    '-DartifactId=%s' % artifact,
+    '-DpomFile=%s' % path.join(root, '%s/pom.xml' % artifact),
     '-Dpackaging=%s' % packaging_type,
     '-Dfile=%s' % src,
   ]
diff --git a/tools/version.py b/tools/version.py
new file mode 100755
index 0000000..fed6d5d
--- /dev/null
+++ b/tools/version.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# Copyright (C) 2014 The Android Open Source Project
+#
+# 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.
+
+from __future__ import print_function
+from optparse import OptionParser
+import os.path
+import re
+import sys
+
+parser = OptionParser()
+opts, args = parser.parse_args()
+
+if not len(args):
+  parser.error('not enough arguments')
+elif len(args) > 1:
+  parser.error('too many arguments')
+
+DEST_PATTERN = r'\g<1>%s\g<3>' % args[0]
+
+
+def replace_in_file(filename, src_pattern):
+  try:
+    f = open(filename, "r")
+    s = f.read()
+    f.close()
+    s = re.sub(src_pattern, DEST_PATTERN, s)
+    f = open(filename, "w")
+    f.write(s)
+    f.close()
+  except IOError as err:
+    print('error updating %s: %s' % (filename, err), file=sys.stderr)
+
+
+src_pattern = re.compile(r'^(\s*<version>)([-.\w]+)(</version>\s*)$',
+                         re.MULTILINE)
+for project in ['gerrit-acceptance-framework', 'gerrit-extension-api',
+                'gerrit-plugin-api', 'gerrit-plugin-gwtui',
+                'gerrit-war']:
+  pom = os.path.join(project, 'pom.xml')
+  replace_in_file(pom, src_pattern)
+
+src_pattern = re.compile(r'^(GERRIT_VERSION = ")([-.\w]+)(")$', re.MULTILINE)
+replace_in_file('version.bzl', src_pattern)