Skip to content

Commit 1681ca1

Browse files
authored
Merge pull request #206 from eclipse/update-solr
Update solr to version 9.1
2 parents 876616a + f483060 commit 1681ca1

File tree

11 files changed

+57
-33
lines changed

11 files changed

+57
-33
lines changed

CHANGELOG.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to https://semver.org/spec/v2.0.0.html[Semantic Version
1111
=== Changed
1212

1313
- Update ES library to version 8.5
14+
- Update Apache Solr to version 9.1
1415
- Update Jakarta API to after the Big-bang
1516

1617
=== Removed

README.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,7 +898,7 @@ Please note that you can establish properties using the https://microprofile.io/
898898
|Configuration property |Description
899899

900900
|`jnosql.solr.host`
901-
|Database's host. It is a prefix to enumerate hosts. E.g.: jnosql.solr.host.1=HOST
901+
|Database's host. E.g.: jnosql.solr.host=http://localhost:8983/solr/
902902

903903
|`jnosql.solr.user`
904904
|The user's userID.

jnosql-solr-driver/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@
3838
<dependency>
3939
<groupId>org.apache.solr</groupId>
4040
<artifactId>solr-solrj</artifactId>
41-
<version>8.11.2</version>
41+
<version>9.1.1</version>
42+
</dependency>
43+
<dependency>
44+
<groupId>org.testcontainers</groupId>
45+
<artifactId>solr</artifactId>
46+
<version>${testcontainers.version}</version>
47+
<scope>test</scope>
4248
</dependency>
4349
</dependencies>
4450

jnosql-solr-driver/src/main/java/org/eclipse/jnosql/communication/solr/document/DefaultSolrDocumentManager.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@
1616
package org.eclipse.jnosql.communication.solr.document;
1717

1818
import jakarta.data.repository.Direction;
19-
import org.eclipse.jnosql.communication.document.DocumentDeleteQuery;
20-
import org.eclipse.jnosql.communication.document.DocumentEntity;
21-
import org.eclipse.jnosql.communication.document.DocumentQuery;
2219
import org.apache.solr.client.solrj.SolrQuery;
2320
import org.apache.solr.client.solrj.SolrQuery.SortClause;
2421
import org.apache.solr.client.solrj.SolrServerException;
25-
import org.apache.solr.client.solrj.impl.HttpSolrClient;
22+
import org.apache.solr.client.solrj.impl.Http2SolrClient;
2623
import org.apache.solr.client.solrj.response.QueryResponse;
2724
import org.apache.solr.common.SolrDocumentList;
2825
import org.apache.solr.common.SolrInputDocument;
26+
import org.eclipse.jnosql.communication.document.DocumentDeleteQuery;
27+
import org.eclipse.jnosql.communication.document.DocumentEntity;
28+
import org.eclipse.jnosql.communication.document.DocumentQuery;
2929

3030
import java.io.IOException;
3131
import java.time.Duration;
@@ -44,13 +44,13 @@
4444
*/
4545
class DefaultSolrDocumentManager implements SolrDocumentManager {
4646

47-
private final HttpSolrClient solrClient;
47+
private final Http2SolrClient solrClient;
4848

4949
private final String database;
5050

5151
private final boolean automaticCommit;
5252

53-
DefaultSolrDocumentManager(HttpSolrClient solrClient, String database, boolean automaticCommit) {
53+
DefaultSolrDocumentManager(Http2SolrClient solrClient, String database, boolean automaticCommit) {
5454
this.solrClient = solrClient;
5555
this.database = database;
5656
this.automaticCommit = automaticCommit;

jnosql-solr-driver/src/main/java/org/eclipse/jnosql/communication/solr/document/SolrDocumentConfiguration.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414
*/
1515
package org.eclipse.jnosql.communication.solr.document;
1616

17+
import org.apache.solr.client.solrj.impl.Http2SolrClient;
18+
import org.apache.solr.client.solrj.impl.HttpSolrClient;
19+
import org.apache.solr.client.solrj.impl.XMLResponseParser;
1720
import org.eclipse.jnosql.communication.Configurations;
1821
import org.eclipse.jnosql.communication.Settings;
1922
import org.eclipse.jnosql.communication.document.DocumentConfiguration;
20-
import org.apache.solr.client.solrj.impl.HttpSolrClient;
21-
import org.apache.solr.client.solrj.impl.XMLResponseParser;
2223

2324
import java.util.Arrays;
2425

@@ -42,7 +43,7 @@ public class SolrDocumentConfiguration implements DocumentConfiguration {
4243
* @return a SolrDocumentManagerFactory instance
4344
* @throws NullPointerException when the mongoClient is null
4445
*/
45-
public SolrDocumentManagerFactory get(HttpSolrClient solrClient) throws NullPointerException {
46+
public SolrDocumentManagerFactory get(Http2SolrClient solrClient) throws NullPointerException {
4647
requireNonNull(solrClient, "solrClient is required");
4748
return new SolrDocumentManagerFactory(solrClient, true);
4849
}
@@ -58,7 +59,7 @@ public SolrDocumentManagerFactory apply(Settings settings) throws NullPointerExc
5859

5960
boolean automaticCommit = settings.getOrDefault(SolrDocumentConfigurations.AUTOMATIC_COMMIT, true);
6061

61-
final HttpSolrClient solrClient = new HttpSolrClient.Builder(host).build();
62+
final Http2SolrClient solrClient = new Http2SolrClient.Builder(host).build();
6263
solrClient.setParser(new XMLResponseParser());
6364
return new SolrDocumentManagerFactory(solrClient, automaticCommit);
6465

jnosql-solr-driver/src/main/java/org/eclipse/jnosql/communication/solr/document/SolrDocumentConfigurations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
public enum SolrDocumentConfigurations implements Supplier<String> {
2828
/**
29-
* Database's host. It is a prefix to enumerate hosts. E.g.: jnosql.solr.host.1=HOST
29+
* Database's host. E.g.: jnosql.solr.host=http://localhost:8983/solr/
3030
*/
3131
HOST("jnosql.solr.host"),
3232
/**

jnosql-solr-driver/src/main/java/org/eclipse/jnosql/communication/solr/document/SolrDocumentManagerFactory.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
package org.eclipse.jnosql.communication.solr.document;
1717

18+
import org.apache.solr.client.solrj.impl.Http2SolrClient;
1819
import org.eclipse.jnosql.communication.document.DocumentManagerFactory;
19-
import org.apache.solr.client.solrj.impl.HttpSolrClient;
2020

2121
import java.util.Objects;
2222

@@ -25,11 +25,11 @@
2525
*/
2626
public class SolrDocumentManagerFactory implements DocumentManagerFactory {
2727

28-
private final HttpSolrClient solrClient;
28+
private final Http2SolrClient solrClient;
2929

3030
private final boolean automaticCommit;
3131

32-
SolrDocumentManagerFactory(HttpSolrClient solrClient, boolean automaticCommit) {
32+
SolrDocumentManagerFactory(Http2SolrClient solrClient, boolean automaticCommit) {
3333
this.solrClient = solrClient;
3434
this.automaticCommit = automaticCommit;
3535
}
@@ -38,7 +38,7 @@ public class SolrDocumentManagerFactory implements DocumentManagerFactory {
3838
public SolrDocumentManager apply(String database) {
3939
Objects.requireNonNull(database, "database is required");
4040
final String baseURL = solrClient.getBaseURL() + '/' + database;
41-
return new DefaultSolrDocumentManager(new HttpSolrClient.Builder(baseURL).build(), database, automaticCommit);
41+
return new DefaultSolrDocumentManager(new Http2SolrClient.Builder(baseURL).build(), database, automaticCommit);
4242
}
4343

4444

jnosql-solr-driver/src/main/java/org/eclipse/jnosql/communication/solr/document/SolrUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
*/
1515
package org.eclipse.jnosql.communication.solr.document;
1616

17+
import org.apache.solr.common.SolrDocument;
18+
import org.apache.solr.common.SolrDocumentList;
19+
import org.apache.solr.common.SolrInputDocument;
1720
import org.eclipse.jnosql.communication.Value;
1821
import org.eclipse.jnosql.communication.document.Document;
1922
import org.eclipse.jnosql.communication.document.DocumentEntity;
2023
import org.eclipse.jnosql.communication.document.Documents;
21-
import org.apache.solr.common.SolrDocument;
22-
import org.apache.solr.common.SolrDocumentList;
23-
import org.apache.solr.common.SolrInputDocument;
2424
import org.eclipse.jnosql.communication.driver.ValueUtil;
2525

2626
import java.util.List;

jnosql-solr-driver/src/test/java/org/eclipse/jnosql/communication/solr/document/DefaultSolrDocumentManagerTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,10 @@
3737
import java.util.stream.Collectors;
3838
import java.util.stream.StreamSupport;
3939

40-
41-
import static org.eclipse.jnosql.communication.document.DocumentDeleteQuery.delete;
42-
import static org.eclipse.jnosql.communication.document.DocumentQuery.select;
4340
import static java.util.Arrays.asList;
4441
import static org.assertj.core.api.Assertions.assertThat;
42+
import static org.eclipse.jnosql.communication.document.DocumentDeleteQuery.delete;
43+
import static org.eclipse.jnosql.communication.document.DocumentQuery.select;
4544
import static org.junit.jupiter.api.Assertions.assertEquals;
4645
import static org.junit.jupiter.api.Assertions.assertFalse;
4746
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -55,7 +54,7 @@ public class DefaultSolrDocumentManagerTest {
5554

5655
@BeforeAll
5756
public static void setUp() {
58-
entityManager = ManagerFactorySupplier.INSTANCE.get("database");
57+
entityManager = SolrContainerSupplier.INSTANCE.get();
5958
}
6059

6160
@Test
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2022 Contributors to the Eclipse Foundation
2+
* Copyright (c) 2023 Contributors to the Eclipse Foundation
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* and Apache License v2.0 which accompanies this distribution.
@@ -12,25 +12,42 @@
1212
*
1313
* Otavio Santana
1414
*/
15-
1615
package org.eclipse.jnosql.communication.solr.document;
1716

18-
1917
import org.eclipse.jnosql.communication.Settings;
18+
import org.testcontainers.containers.SolrContainer;
2019

21-
public enum ManagerFactorySupplier {
20+
import java.util.function.Supplier;
2221

22+
enum SolrContainerSupplier implements Supplier<SolrDocumentManager> {
2323
INSTANCE;
2424

25-
public SolrDocumentManager get(String database) {
25+
private static final String SOLR_IMAGE = "solr:9.1.1";
26+
private static final String COLLECTION = "database";
27+
private final SolrContainer container;
28+
29+
{
30+
container = new SolrContainer(SOLR_IMAGE)
31+
.withCollection(COLLECTION);
32+
container.start();
33+
}
34+
35+
@Override
36+
public SolrDocumentManager get() {
2637
SolrDocumentConfiguration configuration = new SolrDocumentConfiguration();
2738
final SolrDocumentManagerFactory managerFactory = configuration.apply(getSettings());
28-
return managerFactory.apply(database);
39+
return managerFactory.apply(COLLECTION);
2940
}
3041

31-
public Settings getSettings() {
42+
private Settings getSettings() {
3243
return Settings.builder()
33-
.put(SolrDocumentConfigurations.HOST.get()+".1", "localhost:27017")
44+
.put(SolrDocumentConfigurations.HOST.get(), SolrContainerSupplier.INSTANCE.getHost())
3445
.build();
3546
}
47+
48+
private String getHost() {
49+
return "http://" + container.getHost() + ":" + container.getSolrPort()+ "/solr";
50+
}
51+
52+
3653
}

0 commit comments

Comments
 (0)