diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d78ce6c..534eaf2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,7 +8,14 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java-version: ['11'] + # Solr 10 requires Java 21 or later. + java-version: ['21'] + + env: + # Until the Solr 10 upgrade is merged into vufind-org/vufind's dev branch, + # build and test against the corresponding pull request branch. + VUFIND_GIT_URL: https://github.com/stweil/vufind.git + VUFIND_BRANCH: update_solr_10 steps: - name: Setup PHP @@ -41,9 +48,10 @@ jobs: - name: Download and Setup VuFind run: | - if [ ! -d $VUFIND_HOME/.git ]; then git clone https://github.com/vufind-org/vufind.git $VUFIND_HOME; fi; + if [ ! -d $VUFIND_HOME/.git ]; then git clone $VUFIND_GIT_URL $VUFIND_HOME; fi cd $VUFIND_HOME - git pull + git fetch $VUFIND_GIT_URL $VUFIND_BRANCH + git checkout -B $VUFIND_BRANCH FETCH_HEAD composer install - name: Create Test Index diff --git a/build.xml b/build.xml index 93a9381..7817106 100644 --- a/build.xml +++ b/build.xml @@ -13,7 +13,7 @@ - + diff --git a/src/main/java/org/vufind/solr/handler/AuthDB.java b/src/main/java/org/vufind/solr/handler/AuthDB.java index 3f97ebb..8f3560e 100644 --- a/src/main/java/org/vufind/solr/handler/AuthDB.java +++ b/src/main/java/org/vufind/solr/handler/AuthDB.java @@ -61,7 +61,7 @@ public Document getAuthorityRecord(String heading) heading)), 1)); - if (results.totalHits.value > 0) { + if (results.totalHits.value() > 0) { return searcher.getIndexReader().storedFields().document(results.scoreDocs[0].doc); } else { return null; @@ -79,7 +79,7 @@ public List getPreferredHeadings(String heading) List result = new ArrayList<> (); StoredFields storedFields = searcher.getIndexReader().storedFields(); - for (int i = 0; i < results.totalHits.value; i++) { + for (int i = 0; i < results.totalHits.value(); i++) { result.add(storedFields.document(results.scoreDocs[i].doc)); } diff --git a/src/main/java/org/vufind/solr/handler/client/solrj/BrowseRequest.java b/src/main/java/org/vufind/solr/handler/client/solrj/BrowseRequest.java index ce40d43..070185c 100644 --- a/src/main/java/org/vufind/solr/handler/client/solrj/BrowseRequest.java +++ b/src/main/java/org/vufind/solr/handler/client/solrj/BrowseRequest.java @@ -1,8 +1,9 @@ package org.vufind.solr.handler.client.solrj; -import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; +import org.apache.solr.client.solrj.SolrRequest.SolrRequestType; import org.apache.solr.common.params.SolrParams; +import org.apache.solr.common.util.NamedList; /** * Client class for sending queries to {@link BrowseRequestHandler}. @@ -26,25 +27,26 @@ public class BrowseRequest extends SolrRequest public BrowseRequest() { - super(METHOD.GET, path); + super(METHOD.GET, path, SolrRequestType.QUERY); } public BrowseRequest(SolrParams q) { - super(METHOD.GET, path); + super(METHOD.GET, path, SolrRequestType.QUERY); query = q; } public BrowseRequest(METHOD m, String path) { - super(m, path); + super(m, path, SolrRequestType.QUERY); // TODO Auto-generated constructor stub } - public String getRequestType() + @Override + public SolrRequestType getRequestType() { - return "VuFindBrowseRequest"; + return SolrRequestType.QUERY; } @Override @@ -54,9 +56,9 @@ public SolrParams getParams() } @Override - protected BrowseResponse createResponse(SolrClient client) + protected BrowseResponse createResponse(NamedList res) { - return new BrowseResponse(client); + return new BrowseResponse(res); } } diff --git a/src/main/java/org/vufind/solr/handler/client/solrj/BrowseResponse.java b/src/main/java/org/vufind/solr/handler/client/solrj/BrowseResponse.java index 4554e8b..c19fcd3 100644 --- a/src/main/java/org/vufind/solr/handler/client/solrj/BrowseResponse.java +++ b/src/main/java/org/vufind/solr/handler/client/solrj/BrowseResponse.java @@ -64,6 +64,14 @@ static protected Map castToMapOfStringObject(Object o) return (Map) o; } + /** + * Utility constructor to set the namedList + */ + public BrowseResponse(NamedList res) + { + this(res, null); + } + /** * Utility constructor to set the solrServer and namedList */ diff --git a/src/main/java/org/vufind/solr/indexing/SolrFieldIterator.java b/src/main/java/org/vufind/solr/indexing/SolrFieldIterator.java index c0889c7..622d181 100644 --- a/src/main/java/org/vufind/solr/indexing/SolrFieldIterator.java +++ b/src/main/java/org/vufind/solr/indexing/SolrFieldIterator.java @@ -76,7 +76,7 @@ private boolean termExists(String t) { try { return (this.searcher.search(new ConstantScoreQuery(new TermQuery(new Term(this.field, t))), - 1).totalHits.value > 0); + 1).totalHits.value() > 0); } catch (IOException e) { return false; }