Merge "[websession] Make WebsessionManager.Val.expiresAt available to plugins"
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
index d978c70..43ad799 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/AcceptanceTestRequestScope.java
@@ -23,6 +23,7 @@
import com.google.gerrit.server.util.RequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestScopePropagator;
+import com.google.gerrit.testutil.DisabledReviewDb;
import com.google.gwtorm.server.SchemaFactory;
import com.google.inject.Inject;
import com.google.inject.Key;
diff --git a/gerrit-gwtui-common/BUCK b/gerrit-gwtui-common/BUCK
index 3977487..2a79db4 100644
--- a/gerrit-gwtui-common/BUCK
+++ b/gerrit-gwtui-common/BUCK
@@ -22,12 +22,6 @@
java_library(
name = 'client-lib',
- exported_deps = [':client-lib2'],
- visibility = ['PUBLIC'],
-)
-
-java_library(
- name = 'client-lib2',
srcs = glob(['src/main/**/*.java']),
resources = glob(['src/main/**/*']),
exported_deps = EXPORTED_DEPS,
diff --git a/gerrit-httpd/BUCK b/gerrit-httpd/BUCK
index e215533..b29bd2a 100644
--- a/gerrit-httpd/BUCK
+++ b/gerrit-httpd/BUCK
@@ -34,7 +34,7 @@
'//lib/jgit:jgit',
'//lib/jgit:jgit-servlet',
'//lib/log:api',
- '//lib/lucene:core',
+ '//lib/lucene:core-and-backward-codecs',
],
provided_deps = ['//lib:servlet-api-3_1'],
visibility = ['PUBLIC'],
diff --git a/gerrit-lucene/BUCK b/gerrit-lucene/BUCK
index a146774..8ba7479 100644
--- a/gerrit-lucene/BUCK
+++ b/gerrit-lucene/BUCK
@@ -11,7 +11,7 @@
'//gerrit-server:server',
'//lib:gwtorm',
'//lib:guava',
- '//lib/lucene:core',
+ '//lib/lucene:core-and-backward-codecs',
],
visibility = ['PUBLIC'],
)
@@ -34,8 +34,7 @@
'//lib/jgit:jgit',
'//lib/log:api',
'//lib/lucene:analyzers-common',
- '//lib/lucene:backward-codecs',
- '//lib/lucene:core',
+ '//lib/lucene:core-and-backward-codecs',
'//lib/lucene:misc',
],
visibility = ['PUBLIC'],
diff --git a/gerrit-plugin-gwtui/BUCK b/gerrit-plugin-gwtui/BUCK
index 132ade5..ec5903a 100644
--- a/gerrit-plugin-gwtui/BUCK
+++ b/gerrit-plugin-gwtui/BUCK
@@ -16,15 +16,9 @@
java_library(
name = 'gwtui-api-lib',
- exported_deps = [':gwtui-api-lib2'],
- visibility = ['PUBLIC'],
-)
-
-java_library(
- name = 'gwtui-api-lib2',
srcs = SRCS,
resources = glob(['src/main/**/*']),
- exported_deps = ['//gerrit-gwtui-common:client-lib2'],
+ exported_deps = ['//gerrit-gwtui-common:client-lib'],
provided_deps = DEPS + ['//lib/gwt:dev'],
visibility = ['PUBLIC'],
)
@@ -62,7 +56,7 @@
'//lib:gwtjsonrpc',
'//lib:gwtorm_client',
'//lib/gwt:dev__jar',
- '//gerrit-gwtui-common:client-lib2',
+ '//gerrit-gwtui-common:client-lib',
'//gerrit-common:client',
'//gerrit-reviewdb:client',
],
diff --git a/gerrit-server/BUCK b/gerrit-server/BUCK
index f7bb86f..31a9b49 100644
--- a/gerrit-server/BUCK
+++ b/gerrit-server/BUCK
@@ -63,7 +63,7 @@
'//lib/log:jsonevent-layout',
'//lib/log:log4j',
'//lib/lucene:analyzers-common',
- '//lib/lucene:core',
+ '//lib/lucene:core-and-backward-codecs',
'//lib/lucene:queryparser',
'//lib/ow2:ow2-asm',
'//lib/ow2:ow2-asm-tree',
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommitPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommitPredicate.java
index a63f80c..983e8ef 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommitPredicate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/CommitPredicate.java
@@ -14,25 +14,24 @@
package com.google.gerrit.server.query.change;
+import static com.google.gerrit.server.index.ChangeField.COMMIT;
import static com.google.gerrit.server.index.ChangeField.EXACT_COMMIT;
+import static org.eclipse.jgit.lib.Constants.OBJECT_ID_STRING_LENGTH;
import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.server.index.ChangeField;
import com.google.gerrit.server.index.FieldDef;
import com.google.gerrit.server.index.IndexPredicate;
import com.google.gerrit.server.index.Schema;
import com.google.gwtorm.server.OrmException;
-import org.eclipse.jgit.lib.Constants;
-
class CommitPredicate extends IndexPredicate<ChangeData> {
static FieldDef<ChangeData, ?> commitField(Schema<ChangeData> schema,
String id) {
- if (id.length() == Constants.OBJECT_ID_STRING_LENGTH
+ if (id.length() == OBJECT_ID_STRING_LENGTH
&& schema.hasField(EXACT_COMMIT)) {
return EXACT_COMMIT;
}
- return ChangeField.COMMIT;
+ return COMMIT;
}
CommitPredicate(Schema<ChangeData> schema, String id) {
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index 1372479..27c3443 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -62,6 +62,7 @@
import com.google.gerrit.server.util.RequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestContext;
import com.google.gerrit.testutil.ConfigSuite;
+import com.google.gerrit.testutil.DisabledReviewDb;
import com.google.gerrit.testutil.InMemoryDatabase;
import com.google.gerrit.testutil.InMemoryRepositoryManager;
import com.google.gerrit.testutil.InMemoryRepositoryManager.Repo;
@@ -123,6 +124,8 @@
@Inject protected InternalChangeQuery internalChangeQuery;
@Inject protected NotesMigration notesMigration;
@Inject protected ProjectControl.GenericFactory projectControlFactory;
+ @Inject protected ChangeQueryBuilder queryBuilder;
+ @Inject protected QueryProcessor queryProcessor;
@Inject protected SchemaCreator schemaCreator;
@Inject protected ThreadLocalRequestContext requestContext;
@@ -1195,6 +1198,41 @@
}
}
+ @Test
+ public void prepopulatedFields() throws Exception {
+ assume().that(notesMigration.enabled()).isFalse();
+ TestRepository<Repo> repo = createProject("repo");
+ Change change = newChange(repo, null, null, null, null).insert();
+
+ db = new DisabledReviewDb();
+ requestContext.setContext(newRequestContext(userId));
+ // Use QueryProcessor directly instead of API so we get ChangeDatas back.
+ List<ChangeData> cds = queryProcessor
+ .queryChanges(queryBuilder.parse(change.getId().toString()))
+ .changes();
+ assertThat(cds).hasSize(1);
+
+ ChangeData cd = cds.get(0);
+ cd.change();
+ cd.patchSets();
+ cd.currentApprovals();
+ cd.changedLines();
+ cd.reviewedBy();
+
+ // TODO(dborowitz): Swap out GitRepositoryManager somehow? Will probably be
+ // necessary for notedb anyway.
+ cd.isMergeable();
+
+ // Don't use ExpectedException since that wouldn't distinguish between
+ // failures here and on the previous calls.
+ try {
+ cd.messages();
+ } catch (AssertionError e) {
+ assertThat(e.getMessage()).isEqualTo(DisabledReviewDb.MESSAGE);
+ }
+ }
+
+
protected ChangeInserter newChange(
TestRepository<Repo> repo,
@Nullable RevCommit commit, @Nullable String key, @Nullable Integer owner,
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java
index 79e326f..9bdd795 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/LuceneQueryChangesV14Test.java
@@ -71,6 +71,13 @@
// Ignore.
}
+ @Override
+ @Ignore
+ @Test
+ public void prepopulatedFields() throws Exception {
+ // Ignore.
+ }
+
@Test
public void isReviewed() throws Exception {
clockStepMs = MILLISECONDS.convert(2, MINUTES);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/DisabledReviewDb.java b/gerrit-server/src/test/java/com/google/gerrit/testutil/DisabledReviewDb.java
similarity index 96%
rename from gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/DisabledReviewDb.java
rename to gerrit-server/src/test/java/com/google/gerrit/testutil/DisabledReviewDb.java
index 44d3d7f..d5444e3 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/DisabledReviewDb.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/testutil/DisabledReviewDb.java
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.gerrit.acceptance;
+package com.google.gerrit.testutil;
import com.google.gerrit.reviewdb.server.AccountAccess;
import com.google.gerrit.reviewdb.server.AccountDiffPreferenceAccess;
@@ -41,8 +41,8 @@
import com.google.gwtorm.server.StatementExecutor;
/** ReviewDb that is disabled for testing. */
-class DisabledReviewDb implements ReviewDb {
- private static final String MESSAGE = "ReviewDb is disabled for this test";
+public class DisabledReviewDb implements ReviewDb {
+ public static final String MESSAGE = "ReviewDb is disabled for this test";
@Override
public void close() {
diff --git a/lib/asciidoctor/BUCK b/lib/asciidoctor/BUCK
index f8feb63..ad13313 100644
--- a/lib/asciidoctor/BUCK
+++ b/lib/asciidoctor/BUCK
@@ -36,7 +36,7 @@
'//lib:args4j',
'//lib:guava',
'//lib/lucene:analyzers-common',
- '//lib/lucene:core',
+ '//lib/lucene:core-and-backward-codecs',
],
visibility = ['//tools/eclipse:classpath'],
)
diff --git a/lib/lucene/BUCK b/lib/lucene/BUCK
index 6ab33d9..5e4a82f 100644
--- a/lib/lucene/BUCK
+++ b/lib/lucene/BUCK
@@ -2,8 +2,19 @@
VERSION = '5.2.1'
+# core and backward-codecs both provide
+# META-INF/services/org.apache.lucene.codecs.Codec, so they must be merged.
+merge_maven_jars(
+ name = 'core-and-backward-codecs',
+ srcs = [
+ ':backward-codecs_jar',
+ ':core_jar',
+ ],
+ visibility = ['PUBLIC'],
+)
+
maven_jar(
- name = 'core',
+ name = 'core_jar',
id = 'org.apache.lucene:lucene-core:' + VERSION,
sha1 = 'a175590aa8b04e079eb1a136fd159f9163482ba4',
license = 'Apache2.0',
@@ -11,6 +22,7 @@
'META-INF/LICENSE.txt',
'META-INF/NOTICE.txt',
],
+ visibility = [],
)
maven_jar(
@@ -18,7 +30,7 @@
id = 'org.apache.lucene:lucene-analyzers-common:' + VERSION,
sha1 = '33b7cc17d5a7c939af6fe3f67563f4709926d7f5',
license = 'Apache2.0',
- deps = [':core'],
+ deps = [':core-and-backward-codecs'],
exclude = [
'META-INF/LICENSE.txt',
'META-INF/NOTICE.txt',
@@ -26,15 +38,16 @@
)
maven_jar(
- name = 'backward-codecs',
+ name = 'backward-codecs_jar',
id = 'org.apache.lucene:lucene-backward-codecs:' + VERSION,
sha1 = '603d1f06b133449272799d698e5118db65e523ba',
license = 'Apache2.0',
- deps = [':core'],
+ deps = [':core_jar'],
exclude = [
'META-INF/LICENSE.txt',
'META-INF/NOTICE.txt',
],
+ visibility = [],
)
maven_jar(
@@ -42,7 +55,7 @@
id = 'org.apache.lucene:lucene-misc:' + VERSION,
sha1 = 'be0a4f0ac06f0a2fa3689b4bf6cd1fe6847f9969',
license = 'Apache2.0',
- deps = [':core'],
+ deps = [':core-and-backward-codecs'],
exclude = [
'META-INF/LICENSE.txt',
'META-INF/NOTICE.txt',
@@ -54,7 +67,7 @@
id = 'org.apache.lucene:lucene-queryparser:' + VERSION,
sha1 = '73be0a2d4ab3e6b574be1938bfb27f7f730f0ad9',
license = 'Apache2.0',
- deps = [':core'],
+ deps = [':core-and-backward-codecs'],
exclude = [
'META-INF/LICENSE.txt',
'META-INF/NOTICE.txt',
diff --git a/lib/maven.defs b/lib/maven.defs
index 17f0e00..dd8097e 100644
--- a/lib/maven.defs
+++ b/lib/maven.defs
@@ -150,3 +150,30 @@
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,
+ )
diff --git a/tools/BUCK b/tools/BUCK
index ee26062..0bdff3c 100644
--- a/tools/BUCK
+++ b/tools/BUCK
@@ -6,6 +6,12 @@
)
python_binary(
+ name = 'merge_jars',
+ main = 'merge_jars.py',
+ visibility = ['PUBLIC'],
+)
+
+python_binary(
name = 'pack_war',
main = 'pack_war.py',
deps = [':util'],
diff --git a/tools/merge_jars.py b/tools/merge_jars.py
new file mode 100755
index 0000000..46016c0
--- /dev/null
+++ b/tools/merge_jars.py
@@ -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)