diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
new file mode 100644
index 0000000..131c61f
--- /dev/null
+++ b/.github/workflows/build.yaml
@@ -0,0 +1,11 @@
+name: Build
+on: [push]
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: epimorphics/github-actions/maven-build@v21
+ with:
+ java-version: 11
+ aws-access-key-id: ${{ secrets.DEPLOY_MAVEN_PRIVATE_S3_USERNAME }}
+ aws-secret-access-key: ${{ secrets.DEPLOY_MAVEN_PRIVATE_S3_PASSWORD }}
diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
new file mode 100644
index 0000000..7732079
--- /dev/null
+++ b/.github/workflows/publish.yaml
@@ -0,0 +1,13 @@
+name: Publish
+on:
+ push:
+ branches: [ main ]
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: epimorphics/github-actions/maven-publish@v21
+ with:
+ java-version: 8
+ aws-access-key-id: ${{ secrets.DEPLOY_MAVEN_PRIVATE_S3_USERNAME }}
+ aws-secret-access-key: ${{ secrets.DEPLOY_MAVEN_PRIVATE_S3_PASSWORD }}
diff --git a/pom.xml b/pom.xml
index d6ff0eb..9cf7269 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,13 +1,18 @@
4.0.0
com.epimorphics.lr
- 4.0.0
+ 4.0.1-SNAPSHOT
+
+
+ scm:git:ssh://git@github.com/epimorphics/ppd-text-index.git
+ HEAD
+
- 1.8
+ 11
${jdk.version}
- 2.2
- 4.5.0
+ 2.10
+ 4.6.1
@@ -26,71 +31,125 @@
- junit
- junit
- 4.13.1
- jar
- provided
-
+ org.junit.jupiter
+ junit-jupiter
+ 5.12.2
+ test
+
commons-io
commons-io
- 2.7
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.5.21
+ test
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.15.3
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.15.3
+
+
+ com.google.protobuf
+ protobuf-java
+ 3.25.5
+
+
+ org.apache.commons
+ commons-lang3
+ 3.18.0
+
+
+ commons-io
+ commons-io
+ 2.21.0
+
+
+ org.apache.commons
+ commons-compress
+ 1.26.2
+
+
+
+
- epi-public-repo
- ftp://repository.epimorphics.com
+ epi-public-s3-release
+ Epimorphics S3 release repository
+ s3://epi-repository/release
+ true
+ false
+
+
+ epi-public-s3-snapshot
+ Epimorphics S3 snapshot repository
+ s3://epi-repository/snapshot
+ false
+ true
+
- epi-public-repo
- Epimorphics Public Repository
- http://repository.epimorphics.com
- default
+ epi-public-s3-release
+ Epimorphics S3 release repository
+ https://epi-repository.s3-eu-west-1.amazonaws.com/release
+ true
+ false
+
+
+
+ epi-public-s3-snapshot
+ Epimorphics S3 snapshot repository
+ https://epi-repository.s3-eu-west-1.amazonaws.com/snapshot
+ false
+ true
+
+
+
+ apache.snapshots
+ Apache Snapshot Repository
+ https://repository.apache.org/snapshots
- true
+ false
true
-
- apache.snapshots
- Apache Snapshot Repository
- https://repository.apache.org/snapshots
-
- false
-
-
- true
-
-
-
ppd-text-index
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.16
-
- false
- 1
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.4
+
+ false
+ 1
+
+
org.apache.maven.plugins
@@ -114,6 +173,21 @@
+
+ org.apache.maven.plugins
+ maven-scm-plugin
+ 2.2.1
+
+ developerConnection
+
+
+
+
+ org.apache.maven.plugins
+ maven-release-plugin
+ 3.3.0
+
+
@@ -124,8 +198,13 @@
wagon-ftp
${ver.wagon}
+
+ org.springframework.build
+ aws-maven
+ 5.0.0.RELEASE
+
-
+
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/ExtendedEntityTest.java b/src/test/java/com/epimorphics/lr/jena/query/text/ExtendedEntityTest.java
index ae5b46e..a20030f 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/ExtendedEntityTest.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/ExtendedEntityTest.java
@@ -16,10 +16,10 @@
// Imports
///////////////
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
import org.apache.jena.query.text.EntityDefinition;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,16 +74,16 @@ public void testExtendedEntityEntityDefinitionNodeNode() {
assertEquals( "http://test.com/g", xe.getGraph() );
}
- @Test (expected=NotSuitableForIndexingException.class)
+ @Test
public void testExtendedEntityEntityDefinitionNodeNodeNodeNode_1() {
// resource o is not suitable for indexing
- new ExtendedEntity( ed_withG, Mode.NONE, g, s, p, o );
+ assertThrows(NotSuitableForIndexingException.class, () -> new ExtendedEntity(ed_withG, Mode.NONE, g, s, p, o));
}
- @Test (expected=NotSuitableForIndexingException.class)
+ @Test
public void testExtendedEntityEntityDefinitionNodeNodeNodeNode_2() {
// no field for l
- new ExtendedEntity( ed_withG, Mode.NONE, g, s, p, l );
+ assertThrows(NotSuitableForIndexingException.class, () -> new ExtendedEntity( ed_withG, Mode.NONE, g, s, p, l ));
}
@Test
@@ -93,16 +93,18 @@ public void testExtendedEntityEntityDefinitionNodeNodeNodeNode_3() {
assertEquals( "foo", xe.get( "foo_field" ));
}
- @Test (expected=NotSuitableForIndexingException.class)
+ @Test
public void testExtendedEntityEntityDefinitionQuad_1() {
- Quad q = new Quad( g, s, p, o );
- new ExtendedEntity( ed_withG, Mode.NONE, q );
+ Quad q = new Quad(g, s, p, o);
+ assertThrows(NotSuitableForIndexingException.class,
+ () -> new ExtendedEntity(ed_withG, Mode.NONE, q));
}
- @Test (expected=NotSuitableForIndexingException.class)
+ @Test
public void testExtendedEntityEntityDefinitionQuad_2() {
Quad q = new Quad( g, s, p, l );
- new ExtendedEntity( ed_withG, Mode.NONE, q );
+ assertThrows(NotSuitableForIndexingException.class,
+ () -> new ExtendedEntity( ed_withG, Mode.NONE, q ));
}
@Test
@@ -129,4 +131,3 @@ public void testAddProperty() {
assertEquals( "foo", xe.get( "foo_field" ));
}
}
-
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/FunctionalTest.java b/src/test/java/com/epimorphics/lr/jena/query/text/FunctionalTest.java
index c3b5354..33427ca 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/FunctionalTest.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/FunctionalTest.java
@@ -15,7 +15,10 @@
import org.apache.commons.io.FileUtils;
import org.apache.jena.query.text.TextQuery;
import org.apache.jena.riot.RDFDataMgr;
-import org.junit.*;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,13 +44,13 @@ public class FunctionalTest extends SharedIndexTestSupport {
/***********************************/
/** Ensure assembler initialized. */
- @BeforeClass
+ @BeforeAll
public static void setupClass() {
TextQuery.init() ;
}
/** Reset the TDB dataset each time by deleting and reloading */
- @Before
+ @BeforeEach
public void resetTDB() {
log.debug( "Reset TDB" );
StoreConnection.expel( Location.create(TDB_TEST_ROOT), true );
@@ -74,7 +77,7 @@ public void resetTDB() {
ds = loadDataset( ASSEMBLER_CONFIG, PPD_BASE_TEST_DATA );
}
- @After
+ @AfterEach
public void closeDataset() {
ds.close();
}
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/NodeTermConverterTest.java b/src/test/java/com/epimorphics/lr/jena/query/text/NodeTermConverterTest.java
index a43ecd1..fb20363 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/NodeTermConverterTest.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/NodeTermConverterTest.java
@@ -16,11 +16,11 @@
// Imports
///////////////
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
import org.apache.jena.query.text.TextIndexException;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.BeforeEach;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,27 +53,31 @@ public class NodeTermConverterTest
/***********************************/
/* Constructors */
- /***********************************/
+ /**********************************/
/***********************************/
/* External signature methods */
/***********************************/
- @Before
+ @BeforeEach
public void setUp() {
l = ResourceFactory.createPlainLiteral( "foo" ).asNode();
r = ResourceFactory.createResource( "http://test/foo" ).asNode();
a = ResourceFactory.createResource().asNode();
}
- @Test (expected=IllegalArgumentException.class )
+ @Test
public void testSubjectToTerm0() {
- NodeTermConverter.subjectToTerm( null );
+ assertThrows(IllegalArgumentException.class, () -> {
+ NodeTermConverter.subjectToTerm(null);
+ });
}
- @Test (expected=TextIndexException.class )
+ @Test
public void testSubjectToTerm1() {
- NodeTermConverter.subjectToTerm( l );
+ assertThrows(TextIndexException.class, () -> {
+ NodeTermConverter.subjectToTerm( l );
+ });
}
@Test
@@ -87,9 +91,11 @@ public void testGraphNodeToTerm0() {
assertNull( NodeTermConverter.graphNodeToTerm( null ) );
}
- @Test (expected=TextIndexException.class )
+ @Test
public void testGraphNodeToTerm1() {
- NodeTermConverter.graphNodeToTerm( l );
+ assertThrows(TextIndexException.class, () -> {
+ NodeTermConverter.graphNodeToTerm( l );
+ });
}
@Test
@@ -121,4 +127,3 @@ public void testTermToNode1() {
/***********************************/
}
-
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/SharedIndexTestSupport.java b/src/test/java/com/epimorphics/lr/jena/query/text/SharedIndexTestSupport.java
index 6a254f8..b7020b7 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/SharedIndexTestSupport.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/SharedIndexTestSupport.java
@@ -19,8 +19,9 @@
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.update.UpdateAction;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
/**
IntegrationBase contains constants and code used by FunctionalText
@@ -45,7 +46,7 @@ public class SharedIndexTestSupport {
public void testQueryPostcodeCount( String sparql, String expectedPostcode, int expectedHits ) {
ResultSet results = queryData( ds, loadQuery( TEST_RESOURCES + sparql ) );
- assertTrue( "Query failed to return any results", results.hasNext() );
+ assertTrue( results.hasNext(), "Query failed to return any results" );
int n = 0;
boolean seenPostcode = false;
@@ -59,8 +60,8 @@ public void testQueryPostcodeCount( String sparql, String expectedPostcode, int
seenPostcode = seenPostcode || (postcode != null && postcode.equals( expectedPostcode ));
}
- assertTrue( "Expected to see postcode " + expectedPostcode, seenPostcode );
- assertEquals( "Expected " + expectedHits + " results", expectedHits, n );
+ assertTrue( seenPostcode, "Expected to see postcode " + expectedPostcode);
+ assertEquals( expectedHits, n, "Expected " + expectedHits + " results");
}
/**
@@ -69,7 +70,7 @@ public void testQueryPostcodeCount( String sparql, String expectedPostcode, int
public String loadQuery( String queryFile ) {
try {
File file = new File( queryFile );
- assertTrue( "Query file does not exist: " + queryFile, file.exists() );
+ assertTrue( file.exists(), "Query file does not exist: " + queryFile);
return FileUtils.readFileToString( file );
}
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/TestDatasetWithBatchProducer.java b/src/test/java/com/epimorphics/lr/jena/query/text/TestDatasetWithBatchProducer.java
index 83e0eb9..05c13f3 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/TestDatasetWithBatchProducer.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/TestDatasetWithBatchProducer.java
@@ -2,8 +2,8 @@
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import java.io.Reader;
@@ -14,10 +14,7 @@
import org.apache.jena.atlas.lib.StrUtils;
import org.apache.jena.query.text.DatasetGraphText;
import org.apache.jena.query.text.assembler.TextAssembler;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,7 +93,7 @@ public class TestDatasetWithBatchProducer {
);
}
- @Before
+ @BeforeEach
public void init() {
Reader reader = new StringReader(SPEC);
Model specModel = ModelFactory.createDefaultModel();
@@ -108,7 +105,7 @@ public void init() {
dataset = (Dataset) Assembler.general.open(root);
}
- @After
+ @AfterEach
public void closeDataset() {
if (dataset == null) {
log.warn("dataset was not set up");
@@ -117,7 +114,7 @@ public void closeDataset() {
}
}
- @AfterClass
+ @AfterAll
public static void deleteOldFiles() {
if (indexDir.exists()) {
emptyAndDeleteDirectory(indexDir);
@@ -251,17 +248,18 @@ private static void emptyAndDeleteDirectory(File dir) {
private static void doTestQuery(Dataset dataset, String label, String queryString, Set expectedEntityURIs, int expectedNumResults) {
Query query = QueryFactory.create(queryString) ;
- QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
- try {
+ try (QueryExecution qexec = QueryExecutionFactory.create(query, dataset)) {
dataset.begin(ReadWrite.READ);
- ResultSet results = qexec.execSelect() ;
+ ResultSet results = qexec.execSelect();
int count;
- for (count=0; results.hasNext(); count++) {
+ for (count = 0; results.hasNext(); count++) {
String entityURI = results.next().getResource("s").getURI();
- assertTrue(label + ": unexpected result: " + entityURI, expectedEntityURIs.contains(entityURI));
+ assertTrue(expectedEntityURIs.contains(entityURI), label + ": unexpected result: " + entityURI);
}
- assertEquals(label, expectedNumResults, count);
- } finally { qexec.close() ; dataset.end() ; }
+ assertEquals(expectedNumResults, count, label);
+ } finally {
+ dataset.end();
+ }
}
}
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/TestQueryByKey.java b/src/test/java/com/epimorphics/lr/jena/query/text/TestQueryByKey.java
index 2d5d88d..4f71249 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/TestQueryByKey.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/TestQueryByKey.java
@@ -8,7 +8,7 @@
import org.apache.jena.query.text.TextIndexLucene;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
public class TestQueryByKey {
diff --git a/src/test/java/com/epimorphics/lr/jena/query/text/TestTextIndexingCommand.java b/src/test/java/com/epimorphics/lr/jena/query/text/TestTextIndexingCommand.java
index 7b60a4b..aba0c58 100644
--- a/src/test/java/com/epimorphics/lr/jena/query/text/TestTextIndexingCommand.java
+++ b/src/test/java/com/epimorphics/lr/jena/query/text/TestTextIndexingCommand.java
@@ -7,10 +7,10 @@
import org.apache.commons.io.FileUtils;
import org.apache.jena.query.text.TextQuery;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -23,7 +23,7 @@ public class TestTextIndexingCommand extends SharedIndexTestSupport {
private static final Logger log = LoggerFactory.getLogger( TestTextIndexingCommand.class );
- @BeforeClass public static void runTextIndexer() throws IOException {
+ @BeforeAll public static void runTextIndexer() throws IOException {
clearIndex();
clearTDB();
loadDataIntoDataset();
@@ -44,11 +44,11 @@ protected static void clearTDB() throws IOException {
tdbDir.mkdir();
}
- @Before public void openDataset() {
+ @BeforeEach public void openDataset() {
ds = assembleDataset();
}
- @After public void closeDataset() {
+ @AfterEach public void closeDataset() {
if (ds == null) {
log.warn("Dataset was null");
} else {
diff --git a/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchBatching.java b/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchBatching.java
index a09ea8e..fed87da 100644
--- a/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchBatching.java
+++ b/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchBatching.java
@@ -19,7 +19,7 @@
import org.apache.jena.vocabulary.RDFS;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.IOException;
@@ -28,7 +28,7 @@
import java.util.Arrays;
import java.util.List;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestBatchBatching {
diff --git a/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchThreadSafety.java b/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchThreadSafety.java
index c70a1f7..4d7c6e4 100644
--- a/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchThreadSafety.java
+++ b/src/test/java/com/epimorphics/lr/jena/threadtesting/TestBatchThreadSafety.java
@@ -1,7 +1,5 @@
package com.epimorphics.lr.jena.threadtesting;
-import static org.junit.Assert.*;
-
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -24,10 +22,9 @@
import org.apache.jena.shared.Lock;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.Quad;
-import org.apache.jena.sparql.core.QuadAction;
import org.apache.jena.sparql.util.Context;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import com.epimorphics.lr.jena.query.text.TextDocProducerBatch;
@@ -343,7 +340,8 @@ static final class ThreadVar {
boolean retain = false;
- @Test @Ignore public void testDoesNotRetainGarbage() throws InterruptedException {
+ @Test @Disabled
+ public void testDoesNotRetainGarbage() throws InterruptedException {
TextIndex ti = new TextIndexTesting();
DatasetGraph dsg = new DatasetGraphTesting();
final TextDocProducerBatch b = new TextDocProducerBatch(dsg, ti);
diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties
deleted file mode 100644
index 433430a..0000000
--- a/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,33 +0,0 @@
-log4j.rootLogger=INFO, stderr
-
-# Set up logging to include a file record of the output
-# Note: the file is always created, even if there is
-# no actual output.
-# log4j.rootLogger=INFO, stderr, R
-
-# Example of switching on debug level logging for part of tree
-# log4j.logger.com.hp.hpl.jena.graph.test=debug
-log4j.logger.com.hp.hpl.jena.reasoner.rulesys=info
-log4j.logger.com.epimorphics=info
-
-# Log format to standard out
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-# Pattern to output the caller's file name and line number.
-log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
-
-# Log format to standard error
-log4j.appender.stderr=org.apache.log4j.ConsoleAppender
-log4j.appender.stderr.target=System.err
-log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
-# Pattern to output the caller's file name and line number.
-log4j.appender.stderr.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
-
-# File based log output
-log4j.appender.R=org.apache.log4j.RollingFileAppender
-log4j.appender.R.File=jena2.log
-log4j.appender.R.MaxFileSize=5000KB
-# Keep one backup file
-log4j.appender.R.MaxBackupIndex=1
-log4j.appender.R.layout=org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..9d05420
--- /dev/null
+++ b/src/test/resources/logback-test.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ %5p [%t] %logger - %m%n
+
+
+
+
+
+
+
+
+