Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into SOLR-14496
Browse files Browse the repository at this point in the history
  • Loading branch information
epugh committed Oct 8, 2023
2 parents 9ae7a8e + ba51f24 commit af3cc3a
Show file tree
Hide file tree
Showing 422 changed files with 2,967 additions and 1,421 deletions.
9 changes: 8 additions & 1 deletion gradle/validation/jar-checks.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -122,17 +122,24 @@ subprojects {
}

def visited = new HashSet<>()
def seenDeps = new HashSet<>()
def infos = []

while (!queue.isEmpty()) {
def dep = queue.removeFirst()
seenDeps.add(dep)

// Skip any artifacts from other Solr Modules (they will be resolved there).
if (dep.moduleGroup == "org.apache.solr") {
continue
}

queue.addAll(dep.children)
// Make sure we don't keep visiting the same children over and over again
dep.children.each { child ->
if (!seenDeps.contains(child)) {
queue.add(child)
}
}
dep.moduleArtifacts.each { resolvedArtifact ->
def file = resolvedArtifact.file
if (visited.add(file)) {
Expand Down
31 changes: 31 additions & 0 deletions solr/CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,33 @@ Other Changes

* SOLR-16911: Establish /solr as the only host context supported by Solr, removing legacy ability to change this. Solr paths will only be either /solr or /api now. (Eric Pugh)

================== 9.5.0 ==================
New Features
---------------------
(No changes)

Improvements
---------------------
* SOLR-16924: RESTORECORE now sets the UpdateLog to ACTIVE state instead of requiring a separate
REQUESTAPPLYUPDATES call in Collection restore. The latter will still happen in 9.x for
backwards-compatibility. (Julia Lamoine, David Smiley)

Optimizations
---------------------
(No changes)

Bug Fixes
---------------------
(No changes)

Dependency Upgrades
---------------------
* SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0 (Kevin Risden)

Other Changes
---------------------
(No changes)

================== 9.4.0 ==================
New Features
---------------------
Expand All @@ -80,6 +107,8 @@ New Features

* SOLR-15367: Convert "rid" functionality into a default Tracer (Alex Deparvu, David Smiley)

* SOLR-16852: Backups now allow metadata to be added as key-values (Tomás Fernández Löbbe)

Improvements
---------------------
* SOLR-16490: `/admin/cores?action=backupcore` now has a v2 equivalent, available at
Expand Down Expand Up @@ -229,6 +258,8 @@ Bug Fixes

* SOLR-16644: Fixing the entropy warning threshold using scaling based on poolsize (Raghavan Muthuregunathan)

* SOLR-17009: json.wrf parameter ignored in JacksonJsonWriter (Alex Deparvu)

Dependency Upgrades
---------------------

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import javax.ws.rs.DELETE;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import org.apache.solr.client.api.model.SolrJerseyResponse;
import org.apache.solr.client.api.model.UpdateCollectionPropertyRequestBody;

/** V2 API definitions for modifying collection-level properties. */
@Path("/collections/{collName}/properties/{propName}")
public interface CollectionPropertyApi {
@PUT
@Operation(
summary = "Create or update a collection property",
tags = {"collection-properties"})
SolrJerseyResponse createOrUpdateCollectionProperty(
@PathParam("collName") String collName,
@PathParam("propName") String propName,
UpdateCollectionPropertyRequestBody requestBody)
throws Exception;

@DELETE
@Operation(
summary = "Delete the specified collection property from the collection",
tags = {"collection-properties"})
SolrJerseyResponse deleteCollectionProperty(
@PathParam("collName") String collName, @PathParam("propName") String propName)
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.QueryParam;
import org.apache.solr.client.api.model.CreateCoreSnapshotResponse;
import org.apache.solr.client.api.model.DeleteSnapshotResponse;
import org.apache.solr.client.api.model.ListCoreSnapshotsResponse;

/** V2 API definitions for Creating, Listing, and Deleting Core Snapshots. */
@Path("/cores/{coreName}/snapshots")
public interface CoreSnapshotApi {
@POST
@Path("/{snapshotName}")
@Operation(
summary = "Create a new snapshot of the specified core.",
tags = {"core-snapshots"})
CreateCoreSnapshotResponse createSnapshot(
@Parameter(description = "The name of the core to snapshot.", required = true)
@PathParam("coreName")
String coreName,
@Parameter(description = "The name to associate with the core snapshot.", required = true)
@PathParam("snapshotName")
String snapshotName,
@Parameter(description = "The id to associate with the async task.") @QueryParam("async")
String taskId)
throws Exception;

@GET
@Operation(
summary = "List existing snapshots for the specified core.",
tags = {"core-snapshots"})
ListCoreSnapshotsResponse listSnapshots(
@Parameter(
description = "The name of the core for which to retrieve snapshots.",
required = true)
@PathParam("coreName")
String coreName)
throws Exception;

@DELETE
@Path("/{snapshotName}")
@Operation(
summary = "Delete a single snapshot from the specified core.",
tags = {"core-snapshots"})
DeleteSnapshotResponse deleteSnapshot(
@Parameter(
description = "The name of the core for which to delete a snapshot.",
required = true)
@PathParam("coreName")
String coreName,
@Parameter(description = "The name of the core snapshot to delete.", required = true)
@PathParam("snapshotName")
String snapshotName,
@Parameter(description = "The id to associate with the async task.") @QueryParam("async")
String taskId)
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import org.apache.solr.client.api.model.CreateCollectionRequestBody;
import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;

/** V2 API definition for creating a SolrCloud collection */
@Path("/collections")
public interface CreateCollectionApi {
@POST
@Operation(
summary = "Creates a new SolrCloud collection.",
tags = {"collections"})
SubResponseAccumulatingJerseyResponse createCollection(CreateCollectionRequestBody requestBody)
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import org.apache.solr.client.api.model.CreateReplicaRequestBody;
import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;

/**
* V2 API definition for adding a new replica to an existing shard.
*
* <p>This API (POST /v2/collections/cName/shards/sName/replicas {...}) is analogous to the v1
* /admin/collections?action=ADDREPLICA command.
*/
@Path("/collections/{collectionName}/shards/{shardName}/replicas")
public interface CreateReplicaApi {

@POST
@Operation(
summary = "Creates a new replica of an existing shard.",
tags = {"replicas"})
SubResponseAccumulatingJerseyResponse createReplica(
@PathParam("collectionName") String collectionName,
@PathParam("shardName") String shardName,
CreateReplicaRequestBody requestBody)
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import org.apache.solr.client.api.model.CreateShardRequestBody;
import org.apache.solr.client.api.model.SubResponseAccumulatingJerseyResponse;

/** V2 API definition for creating a new shard in a collection. */
@Path("/collections/{collectionName}/shards")
public interface CreateShardApi {

@POST
@Operation(
summary = "Create a new shard in an existing collection",
tags = {"shards"})
SubResponseAccumulatingJerseyResponse createShard(
@PathParam("collectionName") String collectionName, CreateShardRequestBody requestBody)
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* 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.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import org.apache.solr.client.api.model.InstallCoreDataRequestBody;
import org.apache.solr.client.api.model.SolrJerseyResponse;

/**
* V2 API definition for installing an offline index to a single core of a shard.
*
* <p>This is an internal API intended for use only by the Collection Admin "Install Shard Data"
* API.
*/
@Path("/cores/{coreName}/install")
public interface InstallCoreDataApi {

@POST
@Operation(
summary = "Install an offline index to a specified core",
tags = {"cores"})
SolrJerseyResponse installCoreData(
@PathParam("coreName") String coreName, InstallCoreDataRequestBody requestBody)
throws Exception;
}
Loading

0 comments on commit af3cc3a

Please sign in to comment.