SRCS = 'src/main/java/com/google/gerrit/pgm/'

INIT_API_SRCS = [SRCS + n for n in [
  'init/AllProjectsConfig.java',
  'init/AllProjectsNameOnInitProvider.java',
  'util/ConsoleUI.java',
  'init/InitFlags.java',
  'init/InitStep.java',
  'init/InitStep.java',
  'init/InstallPlugins.java',
  'init/Section.java',
]]

java_library(
  name = 'init-api',
  srcs = INIT_API_SRCS,
  deps = [
    '//gerrit-common:annotations',
    '//gerrit-common:server',
    '//gerrit-reviewdb:server',
    '//gerrit-server:server',
    '//lib:guava',
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
    '//lib/jgit:jgit',
  ],
  visibility = ['PUBLIC'],
)

java_sources(
  name = 'init-api-src',
  srcs = INIT_API_SRCS,
  visibility = ['PUBLIC'],
)

INIT_BASE_SRCS = [SRCS + 'BaseInit.java'] + glob(
    [SRCS + n for n in [
      'init/**/*.java',
      'util/**/*.java',
    ]],
    excludes = INIT_API_SRCS +
      [SRCS + n for n in [
        'init/Browser.java',
        'util/ErrorLogFile.java',
        'util/GarbageCollectionLogFile.java',
        'util/LogFileCompressor.java',
        'util/RuntimeShutdown.java',
      ]]
  )

INIT_BASE_RSRCS = ['src/main/resources/com/google/gerrit/pgm/libraries.config']

java_library(
  name = 'init-base',
  srcs = INIT_BASE_SRCS,
  resources = INIT_BASE_RSRCS,
  deps = [
    ':init-api',
    '//gerrit-common:server',
    '//gerrit-extension-api:api',
    '//gerrit-lucene:lucene',
    '//gerrit-reviewdb:server',
    '//gerrit-server:server',
    '//gerrit-util-cli:cli',
    '//lib/commons:dbcp',
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
    '//lib/jgit:jgit',
    '//lib/mina:sshd',
    '//lib:args4j',
    '//lib:guava',
    '//lib:gwtjsonrpc',
    '//lib:gwtorm',
    '//lib/log:api',
  ],
  provided_deps = ['//gerrit-launcher:launcher'],
  visibility = [
    '//gerrit-war:',
    '//gerrit-acceptance-tests/...',
  ],
)

java_library(
  name = 'pgm',
  srcs = glob(
    ['src/main/java/**/*.java'],
    excludes = INIT_API_SRCS + INIT_BASE_SRCS
  ),
  resources = glob(
    ['src/main/resources/**/*'],
    excludes = INIT_BASE_RSRCS),
  deps = [
    ':init-api',
    ':init-base',
    '//gerrit-cache-h2:cache-h2',
    '//gerrit-common:server',
    '//gerrit-extension-api:api',
    '//gerrit-gwtexpui:linker_server',
    '//gerrit-gwtexpui:server',
    '//gerrit-httpd:httpd',
    '//gerrit-lucene:lucene',
    '//gerrit-openid:openid',
    '//gerrit-reviewdb:server',
    '//gerrit-server:server',
    '//gerrit-server/src/main/prolog:common',
    '//gerrit-solr:solr',
    '//gerrit-sshd:sshd',
    '//gerrit-util-cli:cli',
    '//lib:args4j',
    '//lib:guava',
    '//lib:gwtorm',
    '//lib:h2',
    '//lib:servlet-api-3_1',
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
    '//lib/guice:guice-servlet',
    '//lib/jetty:server',
    '//lib/jetty:servlet',
    '//lib/jetty:jmx',
    '//lib/jgit:jgit',
    '//lib/log:api',
    '//lib/log:log4j',
    '//lib/lucene:core',
    '//lib/prolog:prolog-cafe',
  ],
  provided_deps = ['//gerrit-launcher:launcher'],
  visibility = [
    '//:',
    '//gerrit-acceptance-tests/...',
    '//tools/eclipse:classpath',
    '//Documentation:licenses.txt',
  ],
)

java_test(
  name = 'pgm_tests',
  srcs = glob(['src/test/java/**/*.java']),
  deps = [
    ':init-api',
    ':init-base',
    ':pgm',
    '//gerrit-server:server',
    '//lib:junit',
    '//lib/easymock:easymock',
    '//lib/guice:guice',
    '//lib/jgit:jgit',
    '//lib/jgit:junit',
  ],
  source_under_test = [':pgm'],
)
