Buck: Remove standalone build

To duplicate the build tool chain in each and every plugin is the wrong
way. The right way is to use bucklets project. Remove standalone build
and implement it on top of bucklets project in follow-up change.

Change-Id: Ibc50e1efb85b4bd92381ee367ae2b45de3428d60
diff --git a/BUCK b/BUCK
index a955bf9..58b02ac 100644
--- a/BUCK
+++ b/BUCK
@@ -1,6 +1,3 @@
-API_VERSION = '2.8.2'
-REPO = GERRIT
-
 gerrit_plugin(
   name = 'reviewers',
   srcs = glob(['src/main/java/**/*.java']),
@@ -10,9 +7,3 @@
     'Gerrit-Module: com.googlesource.gerrit.plugins.reviewers.Module',
   ]
 )
-
-maven_jar(
-  name = 'plugin-lib',
-  id = 'com.google.gerrit:gerrit-plugin-api:' + API_VERSION,
-  repository = REPO,
-)
diff --git a/VERSION b/VERSION
deleted file mode 100644
index d3827e7..0000000
--- a/VERSION
+++ /dev/null
@@ -1 +0,0 @@
-1.0
diff --git a/lib/build.defs b/lib/build.defs
deleted file mode 100644
index 08418d0..0000000
--- a/lib/build.defs
+++ /dev/null
@@ -1,76 +0,0 @@
-include_defs('//lib/maven.defs')
-
-def java_library2(
-    name,
-    srcs = [],
-    resources = [],
-    deps = [],
-    compile_deps = [],
-    visibility = []):
-  c = name + '__compile'
-  t = name + '__link'
-  j = 'lib__%s__output/%s.jar' % (c, c)
-  o = 'lib__%s__output/%s.jar' % (name, name)
-  java_library(
-    name = c,
-    srcs = srcs,
-    resources = resources,
-    deps = deps + compile_deps,
-    visibility = visibility,
-  )
-  genrule(
-    name = t,
-    cmd = 'mkdir -p $(dirname $OUT);ln -s $SRCS $OUT',
-    srcs = [genfile(j)],
-    deps = [':' + c],
-    out = o,
-  )
-  prebuilt_jar(
-    name = name,
-    binary_jar = genfile(o),
-    deps = deps + [':' + t],
-    visibility = visibility,
-  )
-
-def gerrit_plugin(
-    name,
-    deps = [],
-    srcs = [],
-    resources = [],
-    manifest_file = None,
-    manifest_entries = [],
-    type = 'plugin',
-    visibility = ['PUBLIC']):
-  mf_cmd = 'v=$(cat VERSION);'
-  if manifest_file:
-    mf_src = [manifest_file]
-    mf_cmd += 'sed "s:@VERSION@:$v:g" $SRCS >$OUT'
-  else:
-    mf_src = []
-    mf_cmd += 'echo "Manifest-Version: 1.0" >$OUT;'
-    mf_cmd += 'echo "Gerrit-ApiType: %s" >>$OUT;' % type
-    mf_cmd += 'echo "Implementation-Version: $v" >>$OUT'
-    for line in manifest_entries:
-      mf_cmd += ';echo "%s" >> $OUT' % line
-  genrule(
-    name = name + '__manifest',
-    cmd = mf_cmd,
-    srcs = mf_src,
-    out = 'MANIFEST.MF',
-  )
-  java_library2(
-    name = name + '__plugin',
-    srcs = srcs,
-    resources = resources,
-    deps = deps,
-    compile_deps = ['//:%s-lib' % type],
-  )
-  java_binary(
-    name = name,
-    manifest_file = genfile('MANIFEST.MF'),
-    deps = [
-      ':%s__plugin' % name,
-      ':%s__manifest' % name,
-    ],
-    visibility = visibility,
-  )
diff --git a/lib/maven.defs b/lib/maven.defs
deleted file mode 100644
index 4ec5030..0000000
--- a/lib/maven.defs
+++ /dev/null
@@ -1,61 +0,0 @@
-GERRIT = 'GERRIT:'
-MAVEN_LOCAL = 'MAVEN_LOCAL:'
-
-def maven_jar(
-    name,
-    id,
-    deps = [],
-    sha1 = '',
-    bin_sha1 = '',
-    src_sha1 = '',
-    repository = GERRIT,
-    attach_source = True,
-    visibility = ['PUBLIC']):
-  from os import path
-
-  parts = id.split(':')
-  if len(parts) != 3:
-    raise NameError('expected id="groupId:artifactId:version"')
-  group, artifact, version = parts
-
-  file_version = version
-
-  jar = path.join(name, artifact.lower() + '-' + file_version)
-  url = '/'.join([
-    repository,
-    group.replace('.', '/'), artifact, version,
-    artifact + '-' + file_version])
-
-  binjar = jar + '.jar'
-  binurl = url + '.jar'
-
-  srcjar = jar + '-src.jar'
-  srcurl = url + '-sources.jar'
-
-  cmd = ['$(exe //tools:download_file)', '-o', '$OUT', '-u', binurl]
-  if sha1:
-    cmd.extend(['-v', sha1])
-  elif bin_sha1:
-    cmd.extend(['-v', bin_sha1])
-
-  genrule(
-    name = name + '__download_bin',
-    cmd = ' '.join(cmd),
-    deps = ['//tools:download_file'],
-    out = binjar,
-  )
-
-  srcjar = None
-  genrule(
-    name = name + '__download_src',
-    cmd = ':>$OUT',
-    out = '__' + name + '__no_src',
-  )
-
-  prebuilt_jar(
-    name = name,
-    deps = deps + [':' + name + '__download_bin'],
-    binary_jar = genfile(binjar),
-    source_jar = genfile(srcjar) if srcjar else None,
-    visibility = visibility,
-  )
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md
index 5fa68b7..851dad5 100644
--- a/src/main/resources/Documentation/build.md
+++ b/src/main/resources/Documentation/build.md
@@ -1,32 +1,38 @@
 Build
 =====
 
-This plugin can be built with Buck or Maven.
+This plugin is built with Buck.
 
-Buck
-----
-
-To build with Buck in standalone mode (outside of the Gerrit tree),
-run
+Clone or link this plugin to the plugins directory of Gerrit's source
+tree, and issue the command:
 
 ```
-  $>buck build plugin
+  buck build plugins/reviewers
 ```
 
-Maven
------
-
-To build with Maven, run
+The output is created in
 
 ```
-mvn clean package
+  buck-out/gen/plugins/reviewers/reviewers.jar
 ```
 
-Prerequisites
--------------
+This project can be imported into the Eclipse IDE:
 
-gerrit-plugin-api must be fetched from remote or local Maven repository.
+```
+  ./tools/eclipse/project.py
+```
 
-How to obtain the Gerrit Plugin API is described in the [Gerrit
+Note that for compatibility reasons a Maven build is provided, but is considered
+to be deprecated and will be removed in a future version of this plugin.
+
+To build with Maven, change directory to the plugin folder and issue the
+command:
+
+```
+  mvn clean package
+```
+
+When building with Maven, the Gerrit Plugin API must be available.
+
+How to build the Gerrit Plugin API is described in the [Gerrit
 documentation](../../../Documentation/dev-buck.html#_extension_and_plugin_api_jar_files).
-
diff --git a/tools/BUCK b/tools/BUCK
deleted file mode 100644
index 1b1175c..0000000
--- a/tools/BUCK
+++ /dev/null
@@ -1,5 +0,0 @@
-python_binary(
-  name = 'download_file',
-  main = 'download_file.py',
-  visibility = ['PUBLIC'],
-)
diff --git a/tools/download_file.py b/tools/download_file.py
deleted file mode 100755
index 35c167f..0000000
--- a/tools/download_file.py
+++ /dev/null
@@ -1,208 +0,0 @@
-#!/usr/bin/python
-# Copyright (C) 2013 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 hashlib import sha1
-from optparse import OptionParser
-from os import link, makedirs, path, remove
-import shutil
-from subprocess import check_call, CalledProcessError
-from sys import stderr
-from zipfile import ZipFile, BadZipfile, LargeZipFile
-
-REPO_ROOTS = {
-  'GERRIT': 'https://gerrit-api.commondatastorage.googleapis.com/release',
-  'ECLIPSE': 'https://repo.eclipse.org/content/groups/releases',
-  'MAVEN_CENTRAL': 'http://repo1.maven.org/maven2',
-  'MAVEN_LOCAL': 'file://' + path.expanduser('~/.m2/repository'),
-}
-
-GERRIT_HOME = path.expanduser('~/.gerritcodereview')
-CACHE_DIR = path.join(GERRIT_HOME, 'buck-cache')
-LOCAL_PROPERTIES = 'local.properties'
-
-
-def hashfile(p):
-  d = sha1()
-  with open(p, 'rb') as f:
-    while True:
-      b = f.read(8192)
-      if not b:
-        break
-      d.update(b)
-  return d.hexdigest()
-
-def safe_mkdirs(d):
-  if path.isdir(d):
-    return
-  try:
-    makedirs(d)
-  except OSError as err:
-    if not path.isdir(d):
-      raise err
-
-def download_properties(root_dir):
-  """ Get the download properties.
-
-  First tries to find the properties file in the given root directory,
-  and if not found there, tries in the Gerrit settings folder in the
-  user's home directory.
-
-  Returns a set of download properties, which may be empty.
-
-  """
-  p = {}
-  local_prop = path.join(root_dir, LOCAL_PROPERTIES)
-  if not path.isfile(local_prop):
-    local_prop = path.join(GERRIT_HOME, LOCAL_PROPERTIES)
-  if path.isfile(local_prop):
-    try:
-      with open(local_prop) as fd:
-        for line in fd:
-          if line.startswith('download.'):
-            d = [e.strip() for e in line.split('=', 1)]
-            name, url = d[0], d[1]
-            p[name[len('download.'):]] = url
-    except OSError:
-      pass
-  return p
-
-def cache_entry(args):
-  if args.v:
-    h = args.v
-  else:
-    h = sha1(args.u).hexdigest()
-  name = '%s-%s' % (path.basename(args.o), h)
-  return path.join(CACHE_DIR, name)
-
-def resolve_url(url, redirects):
-  s = url.find(':')
-  if s < 0:
-    return url
-  scheme, rest = url[:s], url[s+1:]
-  if scheme not in REPO_ROOTS:
-    return url
-  if scheme in redirects:
-    root = redirects[scheme]
-  else:
-    root = REPO_ROOTS[scheme]
-  root = root.rstrip('/')
-  rest = rest.lstrip('/')
-  return '/'.join([root, rest])
-
-opts = OptionParser()
-opts.add_option('-o', help='local output file')
-opts.add_option('-u', help='URL to download')
-opts.add_option('-v', help='expected content SHA-1')
-opts.add_option('-x', action='append', help='file to delete from ZIP')
-opts.add_option('--exclude_java_sources', action='store_true')
-opts.add_option('--unsign', action='store_true')
-args, _ = opts.parse_args()
-
-root_dir = args.o
-while root_dir:
-  root_dir, n = path.split(root_dir)
-  if n == 'buck-out':
-    break
-
-redirects = download_properties(root_dir)
-cache_ent = cache_entry(args)
-src_url = resolve_url(args.u, redirects)
-
-if not path.exists(cache_ent):
-  try:
-    safe_mkdirs(path.dirname(cache_ent))
-  except OSError as err:
-    print('error creating directory %s: %s' %
-          (path.dirname(cache_ent), err), file=stderr)
-    exit(1)
-
-  print('Download %s' % src_url, file=stderr)
-  try:
-    check_call(['curl', '--proxy-anyauth', '-sfo', cache_ent, src_url])
-  except OSError as err:
-    print('could not invoke curl: %s\nis curl installed?' % err, file=stderr)
-    exit(1)
-  except CalledProcessError as err:
-    print('error using curl: %s' % err, file=stderr)
-    exit(1)
-
-if args.v:
-  have = hashfile(cache_ent)
-  if args.v != have:
-    print((
-      '%s:\n' +
-      'expected %s\n' +
-      'received %s\n') % (src_url, args.v, have), file=stderr)
-    try:
-      remove(cache_ent)
-    except OSError as err:
-      if path.exists(cache_ent):
-        print('error removing %s: %s' % (cache_ent, err), file=stderr)
-    exit(1)
-
-exclude = []
-if args.x:
-  exclude += args.x
-if args.exclude_java_sources:
-  try:
-    zf = ZipFile(cache_ent, 'r')
-    try:
-      for n in zf.namelist():
-        if n.endswith('.java'):
-          exclude.append(n)
-    finally:
-      zf.close()
-  except (BadZipfile, LargeZipFile) as err:
-    print('error opening %s: %s'  % (cache_ent, err), file=stderr)
-    exit(1)
-
-if args.unsign:
-  try:
-    zf = ZipFile(cache_ent, 'r')
-    try:
-      for n in zf.namelist():
-        if (n.endswith('.RSA')
-            or n.endswith('.SF')
-            or n.endswith('.LIST')):
-          exclude.append(n)
-    finally:
-      zf.close()
-  except (BadZipfile, LargeZipFile) as err:
-    print('error opening %s: %s'  % (cache_ent, err), file=stderr)
-    exit(1)
-
-safe_mkdirs(path.dirname(args.o))
-if exclude:
-  try:
-    shutil.copyfile(cache_ent, args.o)
-  except (shutil.Error, IOError) as err:
-    print('error copying to %s: %s' % (args.o, err), file=stderr)
-    exit(1)
-  try:
-    check_call(['zip', '-d', args.o] + exclude)
-  except CalledProcessError as err:
-    print('error removing files from zip: %s' % err, file=stderr)
-    exit(1)
-else:
-  try:
-    link(cache_ent, args.o)
-  except OSError as err:
-    try:
-      shutil.copyfile(cache_ent, args.o)
-    except (shutil.Error, IOError) as err:
-      print('error copying to %s: %s' % (args.o, err), file=stderr)
-      exit(1)