You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2020/09/29 06:19:51 UTC

[lucene-solr] branch branch_8x updated (f521906 -> fe655d3)

This is an automated email from the ASF dual-hosted git repository.

noble pushed a change to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.


    from f521906  SOLR-14901: TestPackages uses binary precompiled classes to refer to analysis factory FQCNs
     new 5ad8c89  SOLR-14151: inform() was invoked with the wrong resource loader
     new f3cd2e3  Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x
     new bea14ec  Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x
     new fe655d3  SOLR-14151: cleanup

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/java/org/apache/solr/core/ConfigSet.java   |  2 +-
 .../java/org/apache/solr/core/CoreContainer.java   |  8 +----
 .../src/java/org/apache/solr/core/SolrCore.java    |  2 +-
 .../org/apache/solr/handler/SolrConfigHandler.java |  2 +-
 .../java/org/apache/solr/schema/IndexSchema.java   | 37 ++++++++++++++++++++--
 .../org/apache/solr/schema/ManagedIndexSchema.java |  6 ++--
 .../java/org/apache/solr/schema/SchemaManager.java |  4 +--
 7 files changed, 43 insertions(+), 18 deletions(-)


[lucene-solr] 02/04: Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit f3cd2e385c1274be8573e36da672aee9096eb678
Merge: 5ad8c89 830bd18
Author: noblepaul <no...@gmail.com>
AuthorDate: Fri Sep 18 12:19:48 2020 +1000

    Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x

 lucene/CHANGES.txt                                 |  11 +
 .../compressing/CompressingStoredFieldsReader.java |  68 +++--
 .../compressing/CompressingStoredFieldsWriter.java |  13 +-
 .../compressing/CompressingTermVectorsReader.java  |  32 +-
 .../compressing/CompressingTermVectorsWriter.java  |  15 +-
 .../lucene87/Lucene87StoredFieldsFormat.java       |   4 +-
 .../apache/lucene/search/DoubleValuesSource.java   |  33 +-
 .../org/apache/lucene/search/FieldComparator.java  | 336 +--------------------
 .../apache/lucene/search/FieldValueHitQueue.java   |  40 +--
 .../lucene/search/FilteringFieldComparator.java    |  93 ------
 .../search/FilteringLeafFieldComparator.java       |  39 ---
 .../lucene/search/FilteringNumericComparator.java  |  52 ----
 .../search/FilteringNumericLeafComparator.java     | 336 ---------------------
 .../apache/lucene/search/LeafFieldComparator.java  |  16 +
 .../org/apache/lucene/search/LongValuesSource.java |  33 +-
 .../lucene/search/MultiLeafFieldComparator.java    |  11 +
 .../java/org/apache/lucene/search/SortField.java   |  15 +-
 .../lucene/search/SortedNumericSortField.java      |  54 +++-
 .../apache/lucene/search/TopFieldCollector.java    |  59 +---
 .../lucene/search/comparators/DocComparator.java   | 185 ++++++++++++
 .../search/comparators/DoubleComparator.java       | 117 +++++++
 .../lucene/search/comparators/FloatComparator.java | 117 +++++++
 .../lucene/search/comparators/IntComparator.java   | 119 ++++++++
 .../lucene/search/comparators/LongComparator.java  | 119 ++++++++
 .../lucene/search/comparators/MinDocIterator.java  |  66 ++++
 .../search/comparators/NumericComparator.java      | 261 ++++++++++++++++
 .../lucene/search/comparators/package-info.java    |  23 ++
 .../search/TestFieldSortOptimizationSkipping.java  | 152 +++++++++-
 .../org/apache/lucene/search/TestNeedsScores.java  |   2 +-
 .../search/join/ToParentBlockJoinSortField.java    | 153 ++++++----
 .../TestCompressingStoredFieldsFormat.java         |   3 +-
 .../TestCompressingTermVectorsFormat.java          |   2 +-
 32 files changed, 1503 insertions(+), 1076 deletions(-)


[lucene-solr] 01/04: SOLR-14151: inform() was invoked with the wrong resource loader

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 5ad8c891a19b9336825a1f1bd572d5fe08937192
Author: noblepaul <no...@gmail.com>
AuthorDate: Thu Sep 17 13:11:33 2020 +1000

    SOLR-14151: inform() was invoked with the wrong resource loader
---
 .../java/org/apache/solr/schema/IndexSchema.java   | 37 ++++++++++++++++++++--
 .../org/apache/solr/schema/ManagedIndexSchema.java |  6 ++--
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
index bd4ae7e..26286c2 100644
--- a/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/IndexSchema.java
@@ -20,6 +20,7 @@ import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpressionException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.Writer;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
@@ -46,6 +47,7 @@ import java.util.stream.Stream;
 
 import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.DelegatingAnalyzerWrapper;
+import org.apache.lucene.analysis.util.ResourceLoader;
 import org.apache.lucene.index.IndexableField;
 import org.apache.lucene.queries.payloads.PayloadDecoder;
 import org.apache.lucene.search.similarities.Similarity;
@@ -136,6 +138,7 @@ public class IndexSchema {
   protected final Version luceneVersion;
   protected float version;
   protected final SolrResourceLoader loader;
+  protected ResourceLoader resourceLoader;
   protected final SolrClassLoader solrClassLoader;
   protected final Properties substitutableProperties;
 
@@ -181,7 +184,7 @@ public class IndexSchema {
     this.resourceName = Objects.requireNonNull(name);
     try {
       readSchema(is);
-      loader.inform(loader);
+      loader.inform(this.resourceLoader);
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
@@ -190,8 +193,36 @@ public class IndexSchema {
   protected IndexSchema(Version luceneVersion, SolrResourceLoader loader, Properties substitutableProperties) {
     this.luceneVersion = Objects.requireNonNull(luceneVersion);
     this.loader = loader;
-    this.solrClassLoader = loader.getSchemaLoader() == null ? loader : loader.getSchemaLoader();
-    this.substitutableProperties = substitutableProperties;
+    this.solrClassLoader = loader.getSchemaLoader() == null ?
+        loader :
+        loader.getSchemaLoader();
+    resourceLoader = this.solrClassLoader instanceof SolrResourceLoader ?
+        (ResourceLoader) this.solrClassLoader :
+        wrappedResourceLoader(this.solrClassLoader);
+    this.substitutableProperties = substitutableProper`ties;
+  }
+
+  /**We want resources to be loaded using {@link SolrResourceLoader}
+   * and classes to be loaded using {@link org.apache.solr.pkg.PackageListeningClassLoader}
+   *
+   */
+  private ResourceLoader wrappedResourceLoader(SolrClassLoader solrClassLoader) {
+    return new ResourceLoader() {
+      @Override
+      public InputStream openResource(String resource) throws IOException {
+        return loader.openResource(resource);
+      }
+
+      @Override
+      public <T> Class<? extends T> findClass(String cname, Class<T> expectedType) {
+        return solrClassLoader.findClass(cname, expectedType);
+      }
+
+      @Override
+      public <T> T newInstance(String cname, Class<T> expectedType) {
+        return solrClassLoader.newInstance(cname, expectedType);
+      }
+    };
   }
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index d44e961..2b4314f 100644
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@ -1319,7 +1319,7 @@ public final class ManagedIndexSchema extends IndexSchema {
     for (CharFilterFactory next : charFilters) {
       if (next instanceof ResourceLoaderAware) {
         try {
-          ((ResourceLoaderAware) next).inform(loader);
+          ((ResourceLoaderAware) next).inform(resourceLoader);
         } catch (IOException e) {
           throw new SolrException(ErrorCode.SERVER_ERROR, e);
         }
@@ -1329,7 +1329,7 @@ public final class ManagedIndexSchema extends IndexSchema {
     TokenizerFactory tokenizerFactory = chain.getTokenizerFactory();
     if (tokenizerFactory instanceof ResourceLoaderAware) {
       try {
-        ((ResourceLoaderAware) tokenizerFactory).inform(loader);
+        ((ResourceLoaderAware) tokenizerFactory).inform(resourceLoader);
       } catch (IOException e) {
         throw new SolrException(ErrorCode.SERVER_ERROR, e);
       }
@@ -1339,7 +1339,7 @@ public final class ManagedIndexSchema extends IndexSchema {
     for (TokenFilterFactory next : filters) {
       if (next instanceof ResourceLoaderAware) {
         try {
-          ((ResourceLoaderAware) next).inform(loader);
+          ((ResourceLoaderAware) next).inform(resourceLoader);
         } catch (IOException e) {
           throw new SolrException(ErrorCode.SERVER_ERROR, e);
         }


[lucene-solr] 04/04: SOLR-14151: cleanup

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit fe655d3d3404cf13764d04d0b536991420d2a58e
Author: noble <no...@apache.org>
AuthorDate: Tue Sep 29 15:37:47 2020 +1000

    SOLR-14151: cleanup
---
 solr/core/src/java/org/apache/solr/core/ConfigSet.java            | 2 +-
 solr/core/src/java/org/apache/solr/core/CoreContainer.java        | 8 +-------
 solr/core/src/java/org/apache/solr/core/SolrCore.java             | 2 +-
 solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java | 2 +-
 solr/core/src/java/org/apache/solr/schema/SchemaManager.java      | 4 ++--
 5 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/core/ConfigSet.java b/solr/core/src/java/org/apache/solr/core/ConfigSet.java
index 7161bc1..7e17559 100644
--- a/solr/core/src/java/org/apache/solr/core/ConfigSet.java
+++ b/solr/core/src/java/org/apache/solr/core/ConfigSet.java
@@ -30,7 +30,7 @@ public class ConfigSet {
   private final String name;
 
   private final SolrConfig solrconfig;
-  private IndexSchema schema;
+  private volatile IndexSchema schema;
 
   private final SchemaSupplier schemaSupplier;
 
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index c53ed26..a5e705b 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1614,13 +1614,7 @@ public class CoreContainer {
   public void reload(String name) {
     reload(name, null);
   }
-  public void reload(String name, UUID coreId, boolean async) {
-    if(async) {
-      runAsync(() -> reload(name, coreId));
-    } else {
-      reload(name, coreId);
-    }
-  }
+
   /**
    * Recreates a SolrCore.
    * While the new core is loading, requests will continue to be dispatched to
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 0c5bec2..053ccd4 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -3119,7 +3119,7 @@ public final class SolrCore implements SolrInfoBean, SolrMetricProducer, Closeab
         if (configHandler.getReloadLock().tryLock()) {
 
           try {
-            cc.reload(coreName, coreId, false);
+            cc.reload(coreName, coreId);
           } catch (SolrCoreState.CoreIsClosedException e) {
             /*no problem this core is already closed*/
           } finally {
diff --git a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index 9ac6207..7f48b63 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -548,7 +548,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
             latestVersion, 30);
       } else {
         SolrResourceLoader.persistConfLocally(loader, ConfigOverlay.RESOURCE_NAME, overlay.toByteArray());
-        req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId, false);
+        req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
         log.info("Executed config commands successfully and persisted to File System {}", ops);
       }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index c30f662..f262f84 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -132,7 +132,7 @@ public class SchemaManager {
             latestVersion = ZkController.persistConfigResourceToZooKeeper
                 (zkLoader, managedIndexSchema.getSchemaZkVersion(), managedIndexSchema.getResourceName(),
                  sw.toString().getBytes(StandardCharsets.UTF_8), true);
-            req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId, false);
+            req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
             break;
           } catch (ZkController.ResourceModifiedInZkException e) {
             log.info("Schema was modified by another node. Retrying..");
@@ -142,7 +142,7 @@ public class SchemaManager {
             //only for non cloud stuff
             managedIndexSchema.persistManagedSchema(false);
             core.setLatestSchema(managedIndexSchema);
-            core.getCoreContainer().reload(core.getName(), core.uniqueId, false);
+            core.getCoreContainer().reload(core.getName(), core.uniqueId);
           } catch (SolrException e) {
             log.warn(errorMsg);
             errors = singletonList(errorMsg + e.getMessage());


[lucene-solr] 03/04: Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit bea14ec3d8bfd59be431bbd8f7b0f303d2fe5aee
Merge: f3cd2e3 f521906
Author: noblepaul <no...@gmail.com>
AuthorDate: Tue Sep 29 16:06:27 2020 +1000

    Merge branch 'branch_8x' of github.com:apache/lucene-solr into branch_8x

 dev-tools/maven/pom.xml.template                   |   2 +-
 lucene/CHANGES.txt                                 |  25 +-
 lucene/common-build.xml                            |   2 +-
 .../org/apache/lucene/document/ShapeQuery.java     |  95 +++-
 .../apache/lucene/index/BinaryDocValuesWriter.java |  70 ++-
 .../lucene/index/DocumentsWriterFlushControl.java  |   2 +-
 .../lucene/index/DocumentsWriterPerThread.java     |   6 +-
 .../org/apache/lucene/index/NormValuesWriter.java  |   2 +-
 .../lucene/index/NumericDocValuesWriter.java       |  14 +-
 .../lucene/index/SortedNumericDocValuesWriter.java |  82 ++--
 .../lucene/index/SortedSetDocValuesWriter.java     |  98 ++---
 .../apache/lucene/index/SortingCodecReader.java    | 168 ++++----
 .../src/java/org/apache/lucene/search/Weight.java  |   6 +-
 .../lucene/search/comparators/DocComparator.java   |  10 +-
 .../search/comparators/NumericComparator.java      |   8 +-
 .../apache/lucene/store/ByteBuffersDataOutput.java |  10 +-
 .../lucene/index/TestSortingCodecReader.java       |   8 +-
 .../search/TestFieldSortOptimizationSkipping.java  |  87 +++-
 .../lucene/store/TestByteBuffersDataOutput.java    |  42 ++
 .../lucene/facet/taxonomy/TaxonomyFacetLabels.java | 195 +++++++++
 .../org/apache/lucene/facet/FacetTestCase.java     |  42 +-
 .../facet/taxonomy/TestTaxonomyFacetCounts.java    |  44 +-
 .../facet/taxonomy/TestTaxonomyFacetLabels.java    | 195 +++++++++
 lucene/ivy-versions.properties                     |   2 +-
 .../search/join/ToParentBlockJoinSortField.java    |   2 -
 solr/CHANGES.txt                                   |  26 +-
 solr/bin/solr                                      |   9 +-
 solr/bin/solr.cmd                                  |   4 +
 solr/bin/solr.in.sh                                |  10 +-
 .../apache/solr/api/CustomContainerPlugins.java    |  24 +-
 .../cloud/OverseerConfigSetMessageHandler.java     |  24 +-
 .../java/org/apache/solr/cloud/ZkController.java   |  28 +-
 .../cloud/api/collections/CreateCollectionCmd.java |  15 +-
 .../cloud/api/collections/DeleteCollectionCmd.java |   4 +-
 .../solr/cloud/autoscaling/ActionContext.java      |   4 +-
 .../autoscaling/AutoAddReplicasPlanAction.java     |   2 +
 .../apache/solr/cloud/autoscaling/AutoScaling.java |   5 +
 .../solr/cloud/autoscaling/AutoScalingHandler.java |   4 +-
 .../solr/cloud/autoscaling/ComputePlanAction.java  |   2 +
 .../solr/cloud/autoscaling/ExecutePlanAction.java  |   2 +
 .../cloud/autoscaling/HttpTriggerListener.java     |   2 +
 .../autoscaling/InactiveMarkersPlanAction.java     |   2 +
 .../cloud/autoscaling/InactiveShardPlanAction.java |   2 +
 .../solr/cloud/autoscaling/IndexSizeTrigger.java   |   2 +-
 .../solr/cloud/autoscaling/LoggingListener.java    |   2 +
 .../solr/cloud/autoscaling/MetricTrigger.java      |   4 +
 .../solr/cloud/autoscaling/NodeAddedTrigger.java   |   2 +
 .../solr/cloud/autoscaling/NodeLostTrigger.java    |   2 +
 .../cloud/autoscaling/OverseerTriggerThread.java   |   2 +
 .../solr/cloud/autoscaling/ScheduledTrigger.java   |   2 +
 .../solr/cloud/autoscaling/ScheduledTriggers.java  |   4 +-
 .../solr/cloud/autoscaling/SearchRateTrigger.java  |   2 +
 .../solr/cloud/autoscaling/SystemLogListener.java  |   2 +
 .../solr/cloud/autoscaling/TriggerAction.java      |   2 +
 .../solr/cloud/autoscaling/TriggerActionBase.java  |   2 +
 .../cloud/autoscaling/TriggerActionException.java  |   2 +
 .../apache/solr/cloud/autoscaling/TriggerBase.java |   2 +
 .../solr/cloud/autoscaling/TriggerEvent.java       |   2 +
 .../solr/cloud/autoscaling/TriggerEventQueue.java  |   1 +
 .../solr/cloud/autoscaling/TriggerListener.java    |   2 +
 .../cloud/autoscaling/TriggerListenerBase.java     |   2 +
 .../solr/cloud/autoscaling/TriggerUtils.java       |   1 +
 .../autoscaling/TriggerValidationException.java    |   2 +
 .../solr/cloud/autoscaling/package-info.java       |   4 +-
 .../solr/cloud/autoscaling/sim/ActionError.java    |   2 +
 .../cloud/autoscaling/sim/FakeDocIterator.java     |   2 +
 .../autoscaling/sim/GenericDistributedQueue.java   |   2 +
 .../sim/GenericDistributedQueueFactory.java        |   2 +
 .../solr/cloud/autoscaling/sim/LiveNodesSet.java   |   2 +
 .../sim/NoopDistributedQueueFactory.java           |   2 +
 .../cloud/autoscaling/sim/SimCloudManager.java     |   2 +
 .../autoscaling/sim/SimClusterStateProvider.java   |   2 +
 .../autoscaling/sim/SimDistribStateManager.java    |   2 +
 .../sim/SimDistributedQueueFactory.java            |   2 +
 .../autoscaling/sim/SimNodeStateProvider.java      |   2 +
 .../solr/cloud/autoscaling/sim/SimScenario.java    |   2 +
 .../solr/cloud/autoscaling/sim/SimUtils.java       |   2 +
 .../autoscaling/sim/SnapshotCloudManager.java      |   2 +
 .../sim/SnapshotClusterStateProvider.java          |   2 +
 .../sim/SnapshotDistribStateManager.java           |   2 +
 .../autoscaling/sim/SnapshotNodeStateProvider.java |   2 +
 .../solr/cloud/autoscaling/sim/package-info.java   |   1 +
 .../java/org/apache/solr/core/CoreContainer.java   |   8 +-
 .../org/apache/solr/core/SolrResourceLoader.java   |  91 ++--
 .../java/org/apache/solr/handler/ClusterAPI.java   |  80 +++-
 .../org/apache/solr/handler/CollectionsAPI.java    |  63 +++
 .../handler/admin/AutoscalingHistoryHandler.java   |   2 +
 .../solr/handler/admin/CollectionsHandler.java     |   2 +-
 .../solr/handler/admin/ConfigSetsHandler.java      | 151 +++++--
 .../solr/handler/admin/ConfigSetsHandlerApi.java   |  93 ----
 .../src/java/org/apache/solr/pkg/PackageAPI.java   |  46 +-
 .../java/org/apache/solr/pkg/PackageLoader.java    |   8 +
 .../apache/solr/request/macro/MacroExpander.java   |  35 +-
 .../schema/AbstractSpatialPrefixTreeFieldType.java |  67 +++
 .../org/apache/solr/schema/ManagedIndexSchema.java |   3 +
 .../java/org/apache/solr/schema/SchemaManager.java |   8 +
 .../org/apache/solr/search/FunctionQParser.java    |  14 +-
 .../distance/GeoDistValueSourceParser.java         |  68 +--
 .../apache/solr/search/stats/ExactStatsCache.java  |   6 +
 .../apache/solr/servlet/SolrDispatchFilter.java    |   2 +-
 .../apache/solr/servlet/SolrRequestParsers.java    |  18 +-
 .../MyPatternReplaceCharFilterFactory.java}        |  15 +-
 .../runtimecode/MyTextField.java}                  |  10 +-
 .../runtimecode/MyWhitespaceTokenizerFactory.java} |  14 +-
 .../runtimecode/payload-component.jar.bin          | Bin 0 -> 17815 bytes
 .../test-files/runtimecode/schema-plugins.jar.bin  | Bin 6814 -> 1461 bytes
 .../bad-schema-daterangefield-instance-options.xml |  35 ++
 .../bad-schema-daterangefield-type-options.xml     |  35 ++
 .../solr/configsets/schema-package/conf/schema.xml |  50 +++
 .../configsets/schema-package/conf/solrconfig.xml  |  51 +++
 .../org/apache/solr/cloud/TestConfigSetsAPI.java   | 480 ++++++++++++++-------
 .../test/org/apache/solr/cloud/ZkFailoverTest.java |  35 +-
 .../solr/handler/admin/TestApiFramework.java       |  41 +-
 .../solr/handler/admin/TestCollectionAPIs.java     |   4 +-
 .../apache/solr/handler/admin/TestConfigsApi.java  |  19 +-
 .../src/test/org/apache/solr/pkg/TestPackages.java | 189 ++++----
 .../solr/request/macro/TestMacroExpander.java      |  56 ++-
 .../org/apache/solr/schema/BadIndexSchemaTest.java |   5 +
 .../org/apache/solr/schema/DateRangeFieldTest.java |   4 +
 .../solr/schema/SpatialRPTFieldTypeTest.java       |   3 +-
 .../org/apache/solr/search/TestSolr4Spatial2.java  |  78 +++-
 .../solr/search/stats/TestExactStatsCache.java     |  74 +++-
 solr/licenses/zookeeper-3.6.1.jar.sha1             |   1 -
 solr/licenses/zookeeper-3.6.2.jar.sha1             |   1 +
 solr/licenses/zookeeper-jute-3.6.1.jar.sha1        |   1 -
 solr/licenses/zookeeper-jute-3.6.2.jar.sha1        |   1 +
 solr/solr-ref-guide/src/configsets-api.adoc        |   8 +-
 .../src/the-query-elevation-component.adoc         |   3 +-
 .../cloud/autoscaling/AddReplicaSuggester.java     |   4 +
 .../cloud/autoscaling/AlreadyExistsException.java  |   1 +
 .../solrj/cloud/autoscaling/AutoScalingConfig.java |   2 +
 .../cloud/autoscaling/BadVersionException.java     |   1 +
 .../solr/client/solrj/cloud/autoscaling/Cell.java  |   1 +
 .../client/solrj/cloud/autoscaling/Clause.java     |   2 +
 .../solrj/cloud/autoscaling/ComputedType.java      |   4 +
 .../client/solrj/cloud/autoscaling/Condition.java  |   4 +
 .../solrj/cloud/autoscaling/CoresVariable.java     |   4 +
 .../cloud/autoscaling/DelegatingCloudManager.java  |   2 +
 .../DelegatingClusterStateProvider.java            |   2 +
 .../autoscaling/DelegatingDistribStateManager.java |   4 +
 .../autoscaling/DelegatingNodeStateProvider.java   |   2 +
 .../cloud/autoscaling/DeleteNodeSuggester.java     |   2 +
 .../cloud/autoscaling/DeleteReplicaSuggester.java  |   2 +
 .../solrj/cloud/autoscaling/FreeDiskVariable.java  |   4 +
 .../cloud/autoscaling/MoveReplicaSuggester.java    |   4 +
 .../solrj/cloud/autoscaling/NodeVariable.java      |   4 +
 .../solrj/cloud/autoscaling/NoneSuggester.java     |   4 +
 .../solrj/cloud/autoscaling/NotEmptyException.java |   1 +
 .../client/solrj/cloud/autoscaling/Operand.java    |   5 +-
 .../client/solrj/cloud/autoscaling/Policy.java     |   6 +-
 .../solrj/cloud/autoscaling/PolicyHelper.java      |   4 +
 .../client/solrj/cloud/autoscaling/Preference.java |   4 +
 .../client/solrj/cloud/autoscaling/RangeVal.java   |   4 +
 .../solrj/cloud/autoscaling/ReplicaCount.java      |   4 +
 .../solrj/cloud/autoscaling/ReplicaInfo.java       |   4 +
 .../solrj/cloud/autoscaling/ReplicaVariable.java   |   4 +
 .../solr/client/solrj/cloud/autoscaling/Row.java   |   2 +
 .../solrj/cloud/autoscaling/SealedClause.java      |   2 +
 .../cloud/autoscaling/SplitShardSuggester.java     |   2 +
 .../client/solrj/cloud/autoscaling/Suggester.java  |   5 +-
 .../client/solrj/cloud/autoscaling/Suggestion.java |   4 +
 .../autoscaling/TriggerEventProcessorStage.java    |   2 +
 .../solrj/cloud/autoscaling/TriggerEventType.java  |   2 +
 .../cloud/autoscaling/UnsupportedSuggester.java    |   2 +
 .../client/solrj/cloud/autoscaling/Variable.java   |   2 +
 .../solrj/cloud/autoscaling/VariableBase.java      |   4 +
 .../solrj/cloud/autoscaling/VersionedData.java     |   2 +
 .../client/solrj/cloud/autoscaling/Violation.java  |   4 +
 .../cloud/autoscaling/WithCollectionVariable.java  |   2 +
 .../solrj/cloud/autoscaling/package-info.java      |   2 +
 .../client/solrj/impl/BaseCloudSolrClient.java     |   8 +-
 .../client/solrj/request/CollectionApiMapping.java |  85 ----
 .../solrj/request/beans/ClusterPropInfo.java       |   2 +-
 .../beans/CreateConfigInfo.java}                   |  25 +-
 .../java/org/apache/solr/common/MapWriterMap.java  |   4 +-
 .../solr/common/params/AutoScalingParams.java      |   2 +
 .../apache/solr/common/params/ConfigSetParams.java |   2 +
 .../apispec/cluster.configs.Commands.json          |  34 --
 .../resources/apispec/cluster.configs.delete.json  |  12 -
 .../src/resources/apispec/cluster.configs.json     |  12 -
 .../solrj/src/resources/apispec/cluster.nodes.json |  12 -
 .../apispec/collections.collection.delete.json     |  13 -
 solr/solrj/src/resources/apispec/collections.json  |  13 -
 .../apache/solr/common/util/JsonValidatorTest.java |   1 -
 .../solr/common/util/TestZkMaintenanceUtils.java   |  60 +++
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |   9 +-
 186 files changed, 2732 insertions(+), 1133 deletions(-)

diff --cc solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
index 2b4314f,f4ae860..b22ba69
--- a/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
+++ b/solr/core/src/java/org/apache/solr/schema/ManagedIndexSchema.java
@@@ -1338,10 -1338,13 +1338,13 @@@ public final class ManagedIndexSchema e
      TokenFilterFactory[] filters = chain.getTokenFilterFactories();
      for (TokenFilterFactory next : filters) {
        if (next instanceof ResourceLoaderAware) {
+         SolrResourceLoader.CURRENT_AWARE.set((ResourceLoaderAware) next);
          try {
 -          ((ResourceLoaderAware) next).inform(loader);
 +          ((ResourceLoaderAware) next).inform(resourceLoader);
          } catch (IOException e) {
            throw new SolrException(ErrorCode.SERVER_ERROR, e);
+         } finally {
+           SolrResourceLoader.CURRENT_AWARE.remove();
          }
        }
      }