| SRC = 'src/main/java/com/google/gerrit/extensions/' | 
 | SRCS = glob([SRC + '**/*.java']) | 
 |  | 
 | EXT_API_SRCS = glob([SRC + 'client/*.java']) | 
 |  | 
 | gwt_module( | 
 |   name = 'client', | 
 |   srcs = EXT_API_SRCS, | 
 |   gwt_xml = SRC + 'Extensions.gwt.xml', | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_library( | 
 |   name = 'client-lib', | 
 |   srcs = EXT_API_SRCS, | 
 |   resources = EXT_API_SRCS + glob([SRC + 'Extensions.gwt.xml']), | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_binary( | 
 |   name = 'extension-api', | 
 |   deps = [':lib'], | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_library( | 
 |   name = 'lib', | 
 |   exported_deps = [ | 
 |     ':api', | 
 |     '//lib/guice:guice', | 
 |     '//lib/guice:guice-assistedinject', | 
 |     '//lib/guice:guice-servlet', | 
 |     '//lib:servlet-api-3_1', | 
 |   ], | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_library( | 
 |   name = 'api', | 
 |   srcs = glob([SRC + '**/*.java']), | 
 |   deps = [ | 
 |     '//gerrit-common:annotations', | 
 |   ], | 
 |   provided_deps = [ | 
 |     '//lib/guice:guice', | 
 |     '//lib/guice:guice-assistedinject', | 
 |   ], | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_sources( | 
 |   name = 'extension-api-src', | 
 |   srcs = SRCS, | 
 |   visibility = ['PUBLIC'], | 
 | ) | 
 |  | 
 | java_test( | 
 |   name = 'api_tests', | 
 |   srcs = glob(['src/test/java/**/*.java']), | 
 |   deps = [ | 
 |     ':api', | 
 |     '//lib:truth', | 
 |     '//lib/guice:guice', | 
 |   ], | 
 |   source_under_test = [':api'], | 
 | ) | 
 |  | 
 | java_doc( | 
 |   name = 'extension-api-javadoc', | 
 |   title = 'Gerrit Review Extension API Documentation', | 
 |   pkgs = ['com.google.gerrit.extensions'], | 
 |   paths = ['src/main/java'], | 
 |   srcs = SRCS, | 
 |   deps = [ | 
 |     '//lib/guice:javax-inject', | 
 |     '//lib/guice:guice_library', | 
 |     '//lib/guice:guice-assistedinject', | 
 |     '//gerrit-common:annotations', | 
 |   ], | 
 |   visibility = ['PUBLIC'], | 
 | ) |