You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/12/11 09:28:16 UTC
[47/47] lucene-solr:jira/http2: Merge with master
Merge with master
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/925fb154
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/925fb154
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/925fb154
Branch: refs/heads/jira/http2
Commit: 925fb154f134598e4c7f48c7218ab687d6047901
Parents: 0ecb811 c651cbf
Author: Cao Manh Dat <da...@apache.org>
Authored: Tue Dec 11 09:27:19 2018 +0000
Committer: Cao Manh Dat <da...@apache.org>
Committed: Tue Dec 11 09:27:19 2018 +0000
----------------------------------------------------------------------
lucene/CHANGES.txt | 21 +-
.../index/TestBackwardsCompatibility.java | 27 +
.../lucene/index/sorted-invalid.7.5.0.zip | Bin 0 -> 908443 bytes
.../java/org/apache/lucene/document/Field.java | 14 +-
.../org/apache/lucene/document/StoredField.java | 13 +
.../lucene/index/DocValuesFieldUpdates.java | 75 +-
.../apache/lucene/index/FieldUpdatesBuffer.java | 21 +
.../lucene/index/FrozenBufferedUpdates.java | 3 +-
.../org/apache/lucene/index/IndexableField.java | 7 +
.../org/apache/lucene/index/MultiSorter.java | 30 +-
.../index/NumericDocValuesFieldUpdates.java | 31 +-
.../java/org/apache/lucene/util/Constants.java | 1 +
.../util/packed/AbstractPagedMutable.java | 3 +-
.../lucene/index/TestDocValuesFieldUpdates.java | 59 +-
.../lucene/index/TestFieldUpdatesBuffer.java | 24 +-
.../apache/lucene/index/TestIndexSorting.java | 1738 ++++++++++--------
lucene/ivy-versions.properties | 2 +-
.../search/similarity/LegacyBM25Similarity.java | 8 +
.../intervals/DifferenceIntervalFunction.java | 10 +
.../intervals/DisjunctionIntervalsSource.java | 15 +
.../intervals/FilteredIntervalsSource.java | 103 ++
.../lucene/search/intervals/IntervalFilter.java | 5 +
.../search/intervals/IntervalFunction.java | 54 +-
.../search/intervals/IntervalIterator.java | 11 +
.../search/intervals/IntervalMatches.java | 9 +
.../intervals/IntervalMatchesIterator.java | 38 +
.../lucene/search/intervals/Intervals.java | 23 +-
.../intervals/LowpassIntervalsSource.java | 90 -
.../MinimizingConjunctionIntervalsSource.java | 7 +-
.../search/intervals/TermIntervalsSource.java | 5 +
.../lucene/search/intervals/package-info.java | 2 +
.../search/intervals/TestIntervalQuery.java | 10 +
.../lucene/search/intervals/TestIntervals.java | 60 +-
lucene/tools/junit4/solr-tests.policy | 26 +-
solr/CHANGES.txt | 9 +-
.../client/solrj/embedded/JettySolrRunner.java | 2 +-
.../cloud/autoscaling/NodeAddedTrigger.java | 3 +-
.../solr/cloud/autoscaling/NodeLostTrigger.java | 3 +-
.../solr/response/BinaryResponseWriter.java | 121 +-
.../org/apache/solr/response/DocsStreamer.java | 6 +-
.../org/apache/solr/response/ResultContext.java | 2 +
.../java/org/apache/solr/schema/FieldType.java | 7 +
.../org/apache/solr/schema/IndexSchema.java | 10 +-
.../java/org/apache/solr/schema/StrField.java | 6 +
.../java/org/apache/solr/schema/TextField.java | 5 +
.../apache/solr/search/SolrDocumentFetcher.java | 24 +-
.../cloud/AssignBackwardCompatibilityTest.java | 5 +-
.../solr/cloud/CollectionsAPISolrJTest.java | 5 +-
.../solr/cloud/DocValuesNotIndexedTest.java | 29 +-
.../apache/solr/cloud/KerberosTestServices.java | 3 +-
.../apache/solr/cloud/MultiThreadedOCPTest.java | 11 +-
.../solr/cloud/SaslZkACLProviderTest.java | 2 +-
.../apache/solr/cloud/TestCloudConsistency.java | 2 +
.../solr/cloud/TestMiniSolrCloudClusterSSL.java | 5 +-
.../apache/solr/cloud/TestSSLRandomization.java | 2 +
.../cloud/TestSolrCloudWithKerberosAlt.java | 3 +
.../CollectionsAPIAsyncDistributedZkTest.java | 2 +-
.../CollectionsAPIDistributedZkTest.java | 16 +-
.../api/collections/CustomCollectionTest.java | 2 +
.../autoscaling/AutoScalingHandlerTest.java | 1 +
.../autoscaling/SystemLogListenerTest.java | 46 +-
.../cloud/autoscaling/sim/SimCloudManager.java | 3 +-
.../sim/SimClusterStateProvider.java | 141 +-
.../autoscaling/sim/SimDistribStateManager.java | 11 +-
.../autoscaling/sim/TestSimExtremeIndexing.java | 2 -
.../sim/TestSimGenericDistributedQueue.java | 4 +-
.../autoscaling/sim/TestSimLargeCluster.java | 26 +-
.../autoscaling/sim/TestSimNodeLostTrigger.java | 2 +-
.../autoscaling/sim/TestSimPolicyCloud.java | 6 +-
.../sim/TestSimTriggerIntegration.java | 30 +-
.../solr/cloud/cdcr/CdcrBootstrapTest.java | 2 +-
.../solr/handler/TestReplicationHandler.java | 33 +-
.../metrics/rrd/SolrRrdBackendFactoryTest.java | 14 +-
.../solr/response/TestBinaryResponseWriter.java | 45 +-
solr/licenses/zookeeper-3.4.11.jar.sha1 | 1 -
solr/licenses/zookeeper-3.4.13.jar.sha1 | 1 +
.../solr/client/solrj/embedded/SSLConfig.java | 8 +-
.../client/solrj/io/stream/FacetStream.java | 3 +-
.../client/solrj/io/stream/RandomStream.java | 3 +-
.../client/solrj/io/stream/SearchStream.java | 3 +-
.../solrj/io/stream/SignificantTermsStream.java | 3 +-
.../client/solrj/io/stream/StatsStream.java | 5 +-
.../solrj/io/stream/TimeSeriesStream.java | 3 +-
.../solr/client/solrj/util/Constants.java | 1 +
.../solr/common/ConditionalMapWriter.java | 8 +-
.../apache/solr/common/LinkedHashMapWriter.java | 2 +-
.../java/org/apache/solr/common/MapWriter.java | 5 +
.../org/apache/solr/common/MapWriterMap.java | 2 +-
.../org/apache/solr/common/SolrDocument.java | 18 +-
.../apache/solr/common/SolrDocumentBase.java | 2 +-
.../apache/solr/common/SolrInputDocument.java | 8 +-
.../common/util/ByteArrayUtf8CharSequence.java | 19 +-
.../solr/common/util/FastOutputStream.java | 2 +-
.../apache/solr/common/util/JavaBinCodec.java | 25 +-
.../org/apache/solr/common/util/NamedList.java | 2 +-
.../solr/common/util/Utf8CharSequence.java | 2 +-
.../solrj/embedded/SolrExampleJettyTest.java | 65 +
.../impl/HttpSolrClientSSLAuthConPoolTest.java | 4 +
.../solrj/io/stream/StreamExpressionTest.java | 66 +
.../client/solrj/io/stream/StreamingTest.java | 2 +
.../java/org/apache/solr/SolrTestCaseJ4.java | 2 +-
.../org/apache/solr/cloud/ZkTestServer.java | 12 +-
.../org/apache/solr/util/SSLTestConfig.java | 2 +-
103 files changed, 2310 insertions(+), 1165 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/lucene/ivy-versions.properties
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/test/org/apache/solr/cloud/TestMiniSolrCloudClusterSSL.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
----------------------------------------------------------------------
diff --cc solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
index 7d34861,0978e57..19b99c0
--- a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithKerberosAlt.java
@@@ -44,7 -46,9 +46,8 @@@ import org.slf4j.LoggerFactory
@ThreadLeakFilters(defaultFilters = true, filters = {
BadZookeeperThreadsFilter.class // Zookeeper login leaks TGT renewal threads
})
-
@LuceneTestCase.Slow
+ @ThreadLeakLingering(linger = 10000) // minikdc has some lingering threads
public class TestSolrCloudWithKerberosAlt extends SolrCloudTestCase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
----------------------------------------------------------------------
diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
index 4091bf7,0000000..4ea9f70
mode 100644,000000..100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/embedded/SSLConfig.java
@@@ -1,166 -1,0 +1,172 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.solr.client.solrj.embedded;
+
++import org.apache.solr.client.solrj.util.Constants;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
+/**
+ * Encapsulates settings related to SSL Configuration.
+ * NOTE: all other settings are ignored if {@link #isSSLMode} is false.
+ * @see #setUseSSL
+ */
+public class SSLConfig {
+
+ private boolean useSsl;
+ private boolean clientAuth;
+ private String keyStore;
+ private String keyStorePassword;
+ private String trustStore;
+ private String trustStorePassword;
+
+ /** NOTE: all other settings are ignored if useSSL is false; trustStore settings are ignored if clientAuth is false */
+ public SSLConfig(boolean useSSL, boolean clientAuth, String keyStore, String keyStorePassword, String trustStore, String trustStorePassword) {
- this.useSsl = useSSL;
++ // @AwaitsFix: SOLR-12988 - ssl issues on Java 11/12
++ if (Constants.JRE_IS_MINIMUM_JAVA11) {
++ this.useSsl = false;
++ } else {
++ this.useSsl = useSSL;
++ }
+ this.clientAuth = clientAuth;
+ this.keyStore = keyStore;
+ this.keyStorePassword = keyStorePassword;
+ this.trustStore = trustStore;
+ this.trustStorePassword = trustStorePassword;
+ }
+
+ public void setUseSSL(boolean useSSL) {
+ this.useSsl = useSSL;
+ }
+
+ public void setClientAuth(boolean clientAuth) {
+ this.clientAuth = clientAuth;
+ }
+
+ /** All other settings on this object are ignored unless this is true */
+ public boolean isSSLMode() {
+ return useSsl;
+ }
+
+ public boolean isClientAuthMode() {
+ return clientAuth;
+ }
+
+ public String getKeyStore() {
+ return keyStore;
+ }
+
+ public String getKeyStorePassword() {
+ return keyStorePassword;
+ }
+
+ public String getTrustStore() {
+ return trustStore;
+ }
+
+ public String getTrustStorePassword() {
+ return trustStorePassword;
+ }
+
+ /**
+ * Returns an SslContextFactory that should be used by a jetty server based on the specified
+ * SSLConfig param which may be null.
+ *
+ * if the SSLConfig param is non-null, then this method will return the results of
+ * {@link #createContextFactory()}.
+ *
+ * If the SSLConfig param is null, then this method will return null unless the
+ * <code>tests.jettySsl</code> system property is true, in which case standard "javax.net.ssl.*"
+ * system properties will be used instead, along with "tests.jettySsl.clientAuth".
+ *
+ * @see #createContextFactory()
+ */
+ public static SslContextFactory createContextFactory(SSLConfig sslConfig) {
+
+ if (sslConfig != null) {
+ return sslConfig.createContextFactory();
+ }
+ // else...
+ if (Boolean.getBoolean("tests.jettySsl")) {
+ return configureSslFromSysProps();
+ }
+ // else...
+ return null;
+ }
+
+ /**
+ * Returns an SslContextFactory that should be used by a jetty server based on this SSLConfig instance,
+ * or null if SSL should not be used.
+ *
+ * The default implementation generates a simple factory according to the keystore, truststore,
+ * and clientAuth properties of this object.
+ *
+ * @see #getKeyStore
+ * @see #getKeyStorePassword
+ * @see #isClientAuthMode
+ * @see #getTrustStore
+ * @see #getTrustStorePassword
+ */
+ public SslContextFactory createContextFactory() {
+
+ if (! isSSLMode()) {
+ return null;
+ }
+ // else...
+
+ SslContextFactory factory = new SslContextFactory(false);
+ if (getKeyStore() != null)
+ factory.setKeyStorePath(getKeyStore());
+ if (getKeyStorePassword() != null)
+ factory.setKeyStorePassword(getKeyStorePassword());
+
+ factory.setNeedClientAuth(isClientAuthMode());
+
+ if (isClientAuthMode()) {
+ if (getTrustStore() != null)
+ factory.setTrustStorePath(getTrustStore());
+ if (getTrustStorePassword() != null)
+ factory.setTrustStorePassword(getTrustStorePassword());
+ }
+ return factory;
+
+ }
+
+ private static SslContextFactory configureSslFromSysProps() {
+
+ SslContextFactory sslcontext = new SslContextFactory(false);
+
+ if (null != System.getProperty("javax.net.ssl.keyStore")) {
+ sslcontext.setKeyStorePath
+ (System.getProperty("javax.net.ssl.keyStore"));
+ }
+ if (null != System.getProperty("javax.net.ssl.keyStorePassword")) {
+ sslcontext.setKeyStorePassword
+ (System.getProperty("javax.net.ssl.keyStorePassword"));
+ }
+ if (null != System.getProperty("javax.net.ssl.trustStore")) {
+ sslcontext.setTrustStorePath
+ (System.getProperty("javax.net.ssl.trustStore"));
+ }
+ if (null != System.getProperty("javax.net.ssl.trustStorePassword")) {
+ sslcontext.setTrustStorePassword
+ (System.getProperty("javax.net.ssl.trustStorePassword"));
+ }
+ sslcontext.setNeedClientAuth(Boolean.getBoolean("tests.jettySsl.clientAuth"));
+
+ return sslcontext;
+ }
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
----------------------------------------------------------------------
diff --cc solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
index 55ca618,0000000..50633ff
mode 100644,000000..100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/util/Constants.java
@@@ -1,40 -1,0 +1,41 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+
+package org.apache.solr.client.solrj.util;
+
+import java.util.StringTokenizer;
+
+// Clone of org.apache.lucene.util.Constants, so SolrJ can use it
+public class Constants {
+ public static final String JVM_SPEC_VERSION = System.getProperty("java.specification.version");
+ private static final int JVM_MAJOR_VERSION;
+ private static final int JVM_MINOR_VERSION;
+
+ static {
+ final StringTokenizer st = new StringTokenizer(JVM_SPEC_VERSION, ".");
+ JVM_MAJOR_VERSION = Integer.parseInt(st.nextToken());
+ if (st.hasMoreTokens()) {
+ JVM_MINOR_VERSION = Integer.parseInt(st.nextToken());
+ } else {
+ JVM_MINOR_VERSION = 0;
+ }
+ }
+
+ public static final boolean JRE_IS_MINIMUM_JAVA9 = JVM_MAJOR_VERSION > 1 || (JVM_MAJOR_VERSION == 1 && JVM_MINOR_VERSION >= 9);
++ public static final boolean JRE_IS_MINIMUM_JAVA11 = JVM_MAJOR_VERSION > 1 || (JVM_MAJOR_VERSION == 1 && JVM_MINOR_VERSION >= 11);
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/925fb154/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
----------------------------------------------------------------------
diff --cc solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
index 003463a,307f547..f6281e1
--- a/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/SSLTestConfig.java
@@@ -100,10 -97,10 +100,10 @@@ public class SSLTestConfig
* @see HttpClientUtil#SYS_PROP_CHECK_PEER_NAME
*/
public SSLTestConfig(boolean useSSL, boolean clientAuth, boolean checkPeerName) {
- super(useSSL, clientAuth, null, TEST_KEYSTORE_PASSWORD, null, TEST_KEYSTORE_PASSWORD);
-
+ this.useSsl = useSSL;
+ this.clientAuth = clientAuth;
this.checkPeerName = checkPeerName;
-
+
final String resourceName = checkPeerName
? TEST_KEYSTORE_LOCALHOST_RESOURCE : TEST_KEYSTORE_BOGUSHOST_RESOURCE;
trustStore = keyStore = Resource.newClassPathResource(resourceName);