Merge changes from topic 'lucene-backward-codecs'
* changes: Lucene: Add back the core-and-backward-codecs target Revert "Buck: Wipe out the machinery for merging JARs"
This commit is contained in:
commit
254da3a316
@ -36,7 +36,7 @@ java_library(
|
||||
'//lib/jgit:jgit',
|
||||
'//lib/jgit:jgit-servlet',
|
||||
'//lib/log:api',
|
||||
'//lib/lucene:lucene-core',
|
||||
'//lib/lucene:lucene-core-and-backward-codecs',
|
||||
],
|
||||
provided_deps = ['//lib:servlet-api-3_1'],
|
||||
visibility = ['PUBLIC'],
|
||||
|
@ -11,7 +11,7 @@ java_library(
|
||||
'//gerrit-server:server',
|
||||
'//lib:gwtorm',
|
||||
'//lib:guava',
|
||||
'//lib/lucene:lucene-core',
|
||||
'//lib/lucene:lucene-core-and-backward-codecs',
|
||||
],
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
@ -34,7 +34,7 @@ java_library(
|
||||
'//lib/jgit:jgit',
|
||||
'//lib/log:api',
|
||||
'//lib/lucene:lucene-analyzers-common',
|
||||
'//lib/lucene:lucene-core',
|
||||
'//lib/lucene:lucene-core-and-backward-codecs',
|
||||
'//lib/lucene:lucene-misc',
|
||||
],
|
||||
visibility = ['PUBLIC'],
|
||||
|
@ -65,7 +65,7 @@ java_library(
|
||||
'//lib/log:jsonevent-layout',
|
||||
'//lib/log:log4j',
|
||||
'//lib/lucene:lucene-analyzers-common',
|
||||
'//lib/lucene:lucene-core',
|
||||
'//lib/lucene:lucene-core-and-backward-codecs',
|
||||
'//lib/lucene:lucene-queryparser',
|
||||
'//lib/ow2:ow2-asm',
|
||||
'//lib/ow2:ow2-asm-tree',
|
||||
|
@ -36,7 +36,7 @@ java_library(
|
||||
'//lib:args4j',
|
||||
'//lib:guava',
|
||||
'//lib/lucene:lucene-analyzers-common',
|
||||
'//lib/lucene:lucene-core',
|
||||
'//lib/lucene:lucene-core-and-backward-codecs',
|
||||
],
|
||||
visibility = ['//tools/eclipse:classpath'],
|
||||
)
|
||||
|
@ -2,6 +2,17 @@ include_defs('//lib/maven.defs')
|
||||
|
||||
VERSION = '5.4.1'
|
||||
|
||||
# core and backward-codecs both provide
|
||||
# META-INF/services/org.apache.lucene.codecs.Codec, so they must be merged.
|
||||
merge_maven_jars(
|
||||
name = 'lucene-core-and-backward-codecs',
|
||||
srcs = [
|
||||
':backward-codecs_jar',
|
||||
':lucene-core',
|
||||
],
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = 'lucene-core',
|
||||
id = 'org.apache.lucene:lucene-core:' + VERSION,
|
||||
@ -11,6 +22,7 @@ maven_jar(
|
||||
'META-INF/LICENSE.txt',
|
||||
'META-INF/NOTICE.txt',
|
||||
],
|
||||
visibility = [],
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
@ -18,19 +30,32 @@ maven_jar(
|
||||
id = 'org.apache.lucene:lucene-analyzers-common:' + VERSION,
|
||||
sha1 = 'c2aa2c4e00eb9cdeb5ac00dc0495e70c441f681e',
|
||||
license = 'Apache2.0',
|
||||
deps = [':lucene-core'],
|
||||
deps = [':lucene-core-and-backward-codecs'],
|
||||
exclude = [
|
||||
'META-INF/LICENSE.txt',
|
||||
'META-INF/NOTICE.txt',
|
||||
],
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = 'backward-codecs_jar',
|
||||
id = 'org.apache.lucene:lucene-backward-codecs:' + VERSION,
|
||||
sha1 = '5273da96380dfab302ad06c27fe58100db4c4e2f',
|
||||
license = 'Apache2.0',
|
||||
deps = [':core_jar'],
|
||||
exclude = [
|
||||
'META-INF/LICENSE.txt',
|
||||
'META-INF/NOTICE.txt',
|
||||
],
|
||||
visibility = [],
|
||||
)
|
||||
|
||||
maven_jar(
|
||||
name = 'lucene-misc',
|
||||
id = 'org.apache.lucene:lucene-misc:' + VERSION,
|
||||
sha1 = '95f433b9d7dd470cc0aa5076e0f233907745674b',
|
||||
license = 'Apache2.0',
|
||||
deps = [':lucene-core'],
|
||||
deps = [':lucene-core-and-backward-codecs'],
|
||||
exclude = [
|
||||
'META-INF/LICENSE.txt',
|
||||
'META-INF/NOTICE.txt',
|
||||
@ -42,7 +67,7 @@ maven_jar(
|
||||
id = 'org.apache.lucene:lucene-queryparser:' + VERSION,
|
||||
sha1 = 'dccd5279bfa656dec21af444a7a66820eb1cd618',
|
||||
license = 'Apache2.0',
|
||||
deps = [':lucene-core'],
|
||||
deps = [':lucene-core-and-backward-codecs'],
|
||||
exclude = [
|
||||
'META-INF/LICENSE.txt',
|
||||
'META-INF/NOTICE.txt',
|
||||
|
@ -147,3 +147,31 @@ def maven_jar(
|
||||
source_jar = ':%s__download_src' % name if srcjar else None,
|
||||
visibility = visibility,
|
||||
)
|
||||
|
||||
|
||||
def merge_maven_jars(
|
||||
name,
|
||||
srcs,
|
||||
visibility = []):
|
||||
|
||||
def cmd(jars):
|
||||
return ('$(location //tools:merge_jars) $OUT '
|
||||
+ ' '.join(['$(location %s)' % j for j in jars]))
|
||||
|
||||
genrule(
|
||||
name = '%s__merged_bin' % name,
|
||||
cmd = cmd(['%s__download_bin' % s for s in srcs]),
|
||||
out = '%s__merged.jar' % name,
|
||||
)
|
||||
genrule(
|
||||
name = '%s__merged_src' % name,
|
||||
cmd = cmd(['%s__download_src' % s for s in srcs]),
|
||||
# tools/eclipse/project.py requires -src.jar suffix.
|
||||
out = '%s__merged-src.jar' % name,
|
||||
)
|
||||
prebuilt_jar(
|
||||
name = name,
|
||||
binary_jar = ':%s__merged_bin' % name,
|
||||
source_jar = ':%s__merged_src' % name,
|
||||
visibility = visibility,
|
||||
)
|
||||
|
@ -5,6 +5,12 @@ python_binary(
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
python_binary(
|
||||
name = 'merge_jars',
|
||||
main = 'merge_jars.py',
|
||||
visibility = ['PUBLIC'],
|
||||
)
|
||||
|
||||
python_binary(
|
||||
name = 'pack_war',
|
||||
main = 'pack_war.py',
|
||||
|
50
tools/merge_jars.py
Executable file
50
tools/merge_jars.py
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (C) 2015 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
|
||||
import collections
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
|
||||
if len(sys.argv) < 3:
|
||||
print('usage: %s <out.zip> <in.zip>...' % sys.argv[0], file=sys.stderr)
|
||||
exit(1)
|
||||
|
||||
outfile = sys.argv[1]
|
||||
infiles = sys.argv[2:]
|
||||
seen = set()
|
||||
SERVICES = 'META-INF/services/'
|
||||
|
||||
try:
|
||||
with zipfile.ZipFile(outfile, 'w') as outzip:
|
||||
services = collections.defaultdict(lambda: '')
|
||||
for infile in infiles:
|
||||
with zipfile.ZipFile(infile) as inzip:
|
||||
for info in inzip.infolist():
|
||||
n = info.filename
|
||||
if n in seen:
|
||||
continue
|
||||
elif n.startswith(SERVICES):
|
||||
# Concatenate all provider configuration files.
|
||||
services[n] += inzip.read(n)
|
||||
continue
|
||||
outzip.writestr(info, inzip.read(n))
|
||||
seen.add(n)
|
||||
|
||||
for n, v in services.iteritems():
|
||||
outzip.writestr(n, v)
|
||||
except Exception as err:
|
||||
exit('Failed to merge jars: %s' % err)
|
Loading…
Reference in New Issue
Block a user