From c08247e11d089e6e0e434a45f8c330ab2052770c Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Fri, 29 May 2026 16:29:20 +0200 Subject: [PATCH 1/6] Extract code coverage to a separate Maven profile to speed up local and GH builds. --- pom.xml | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index 25a5f616a..ff455fe71 100644 --- a/pom.xml +++ b/pom.xml @@ -187,6 +187,33 @@ + + coverage + + + + + org.jacoco + jacoco-maven-plugin + 0.8.13 + + + + prepare-agent + + + + report + prepare-package + + report + + + + + + + kbss @@ -230,27 +257,6 @@ 3.14.1 - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - - prepare-agent - - - - report - prepare-package - - report - - - - - com.mycila From 2db089c571a3b6c6b595e0b820a4f97c4eb34bfb Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Fri, 29 May 2026 17:00:12 +0200 Subject: [PATCH 2/6] Improve build performance by increasing test parallelism. --- .../cvut/kbss/jopa/accessors/DefaultStorageAccessorTest.java | 3 +++ .../java/cz/cvut/kbss/jopa/loaders/ConverterLoaderTest.java | 5 ++++- .../cvut/kbss/jopa/loaders/ResultSetMappingLoaderTest.java | 3 +++ .../kbss/jopa/model/DefaultEntityDescriptorFactoryTest.java | 3 +++ .../cvut/kbss/jopa/model/EntityManagerFactoryImplTest.java | 3 +++ .../cvut/kbss/jopa/query/sparql/SparqlQueryParserTest.java | 3 +++ .../jopa/query/sparql/SparqlQueryParsingAndAssemblyTest.java | 3 +++ .../kbss/jopa/sessions/CollectionInstanceBuilderTest.java | 3 +++ .../jopa/sessions/MultilingualStringInstanceBuilderTest.java | 3 +++ .../cvut/kbss/jopa/sessions/RefreshInstanceMergerTest.java | 3 +++ .../java/cz/cvut/kbss/jopa/sessions/RepositoryMapTest.java | 3 +++ .../cvut/kbss/jopa/sessions/cache/LruCacheManagerTest.java | 3 +++ .../cvut/kbss/jopa/sessions/cache/TtlCacheManagerTest.java | 3 +++ .../validator/InferredAttributeChangeValidatorTest.java | 3 +++ .../validator/IntegrityConstraintsValidatorTest.java | 3 +++ 15 files changed, 46 insertions(+), 1 deletion(-) diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/accessors/DefaultStorageAccessorTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/accessors/DefaultStorageAccessorTest.java index d9af064e2..71bdbbf03 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/accessors/DefaultStorageAccessorTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/accessors/DefaultStorageAccessorTest.java @@ -22,6 +22,8 @@ import cz.cvut.kbss.jopa.exceptions.StorageAccessException; import cz.cvut.kbss.ontodriver.OntologyStorageProperties; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.lang.reflect.Field; import java.net.URI; @@ -34,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +@Execution(ExecutionMode.CONCURRENT) class DefaultStorageAccessorTest { private static final String DATA_SOURCE_CLASS = DataSourceStub.class.getName(); diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ConverterLoaderTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ConverterLoaderTest.java index f74f3c530..53a739d31 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ConverterLoaderTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ConverterLoaderTest.java @@ -26,6 +26,8 @@ import cz.cvut.kbss.jopa.oom.converter.ConverterWrapper; import cz.cvut.kbss.jopa.oom.converter.CustomConverterWrapper; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.time.Period; import java.time.ZoneOffset; @@ -35,6 +37,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; +@Execution(ExecutionMode.CONCURRENT) class ConverterLoaderTest { private final ConverterLoader sut = new ConverterLoader(); @@ -116,4 +119,4 @@ public Period convertToAttribute(String value) { return null; } } -} \ No newline at end of file +} diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ResultSetMappingLoaderTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ResultSetMappingLoaderTest.java index d379c4d51..f33ef8e08 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ResultSetMappingLoaderTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/loaders/ResultSetMappingLoaderTest.java @@ -21,10 +21,13 @@ import cz.cvut.kbss.jopa.model.annotations.SparqlResultSetMappings; import cz.cvut.kbss.jopa.model.annotations.VariableResult; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +@Execution(ExecutionMode.CONCURRENT) public class ResultSetMappingLoaderTest { private final ResultSetMappingLoader sut = new ResultSetMappingLoader(); diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/DefaultEntityDescriptorFactoryTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/DefaultEntityDescriptorFactoryTest.java index b464ef5f2..b9427e01a 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/DefaultEntityDescriptorFactoryTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/DefaultEntityDescriptorFactoryTest.java @@ -38,6 +38,8 @@ import cz.cvut.kbss.jopa.utils.NamespaceResolver; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -52,6 +54,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) @SuppressWarnings({"unused", "unchecked"}) @ExtendWith(MockitoExtension.class) class DefaultEntityDescriptorFactoryTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/EntityManagerFactoryImplTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/EntityManagerFactoryImplTest.java index 030bfeb8e..108c3266a 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/EntityManagerFactoryImplTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/EntityManagerFactoryImplTest.java @@ -32,6 +32,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -50,6 +52,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +@Execution(ExecutionMode.CONCURRENT) @ExtendWith(MockitoExtension.class) class EntityManagerFactoryImplTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParserTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParserTest.java index e6fa91095..e110671f8 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParserTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParserTest.java @@ -27,6 +27,8 @@ import cz.cvut.kbss.jopa.utils.Configuration; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -41,6 +43,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) public class SparqlQueryParserTest { private QueryParser queryParser; diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParsingAndAssemblyTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParsingAndAssemblyTest.java index eb234c28a..b3fbe97ce 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParsingAndAssemblyTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/sparql/SparqlQueryParsingAndAssemblyTest.java @@ -29,6 +29,8 @@ import org.hamcrest.Matchers; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.net.URI; import java.util.List; @@ -47,6 +49,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) public class SparqlQueryParsingAndAssemblyTest { private static final String SIMPLE_QUERY = "SELECT ?x WHERE { ?x a ?type . }"; diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilderTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilderTest.java index 201940abe..371c286af 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilderTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilderTest.java @@ -34,6 +34,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -48,6 +50,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) @SuppressWarnings("unused") @ExtendWith(MockitoExtension.class) public class CollectionInstanceBuilderTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/MultilingualStringInstanceBuilderTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/MultilingualStringInstanceBuilderTest.java index a37a60771..a176ee43b 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/MultilingualStringInstanceBuilderTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/MultilingualStringInstanceBuilderTest.java @@ -26,6 +26,8 @@ import cz.cvut.kbss.jopa.sessions.util.CloneConfiguration; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.MatcherAssert.assertThat; @@ -33,6 +35,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.Mockito.mock; +@Execution(ExecutionMode.CONCURRENT) class MultilingualStringInstanceBuilderTest { private final Descriptor descriptor = new EntityDescriptor(); diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RefreshInstanceMergerTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RefreshInstanceMergerTest.java index 0a5463aa1..c21a0ea10 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RefreshInstanceMergerTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RefreshInstanceMergerTest.java @@ -33,6 +33,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -48,6 +50,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) @ExtendWith(MockitoExtension.class) public class RefreshInstanceMergerTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RepositoryMapTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RepositoryMapTest.java index 429f8cbc3..09512a2bd 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RepositoryMapTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/RepositoryMapTest.java @@ -25,6 +25,8 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.lang.reflect.Field; import java.net.URI; @@ -34,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.*; +@Execution(ExecutionMode.CONCURRENT) public class RepositoryMapTest { private static final URI CONTEXT = URI.create("http://repositoryMapTestContext"); diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/LruCacheManagerTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/LruCacheManagerTest.java index 3755beb27..1e240e267 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/LruCacheManagerTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/LruCacheManagerTest.java @@ -26,6 +26,8 @@ import cz.cvut.kbss.jopa.model.descriptors.Descriptor; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.lang.reflect.Field; import java.net.URI; @@ -35,6 +37,7 @@ import static org.hamcrest.Matchers.greaterThan; import static org.junit.jupiter.api.Assertions.*; +@Execution(ExecutionMode.CONCURRENT) public class LruCacheManagerTest extends AbstractCacheManagerTest { @BeforeEach diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManagerTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManagerTest.java index 249decb4f..fa0a7d0c1 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManagerTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManagerTest.java @@ -22,6 +22,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.lang.reflect.Field; import java.util.Collections; @@ -34,6 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +@Execution(ExecutionMode.CONCURRENT) public class TtlCacheManagerTest extends AbstractCacheManagerTest { @BeforeEach diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/InferredAttributeChangeValidatorTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/InferredAttributeChangeValidatorTest.java index cfcfdca8d..c8e14cc9e 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/InferredAttributeChangeValidatorTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/InferredAttributeChangeValidatorTest.java @@ -33,6 +33,8 @@ import cz.cvut.kbss.ontodriver.model.Value; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -55,6 +57,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) @SuppressWarnings("unchecked") @ExtendWith(MockitoExtension.class) class InferredAttributeChangeValidatorTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/IntegrityConstraintsValidatorTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/IntegrityConstraintsValidatorTest.java index e7968a1e3..78b7a8f48 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/IntegrityConstraintsValidatorTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/sessions/validator/IntegrityConstraintsValidatorTest.java @@ -41,6 +41,8 @@ import cz.cvut.kbss.jopa.utils.Configuration; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import java.lang.annotation.Annotation; import java.util.ArrayList; @@ -53,6 +55,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) public class IntegrityConstraintsValidatorTest { private MetamodelImpl metamodel; From 2368e0766db5314ffc5e0332ccba53ae7d18da85 Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Mon, 29 Jun 2026 16:30:48 +0200 Subject: [PATCH 3/6] [Upd] Update RDF4J to 5.3.2. --- ontodriver-rdf4j/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ontodriver-rdf4j/pom.xml b/ontodriver-rdf4j/pom.xml index 92339c595..0b9af9a03 100644 --- a/ontodriver-rdf4j/pom.xml +++ b/ontodriver-rdf4j/pom.xml @@ -14,7 +14,7 @@ - 5.3.1 + 5.3.2 From e41b8ad9355af596a6ab54edffd197c69e0fe27d Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Mon, 29 Jun 2026 16:47:01 +0200 Subject: [PATCH 4/6] [Bug #439] Support ordering by entity identifier in SOQL. --- .../cz/cvut/kbss/jopa/query/soql/Soql.g4 | 2 +- .../jopa/query/soql/SoqlOrderParameter.java | 4 ++++ .../jopa/query/soql/SoqlQueryListener.java | 4 +++- .../jopa/query/soql/SoqlQueryParserTest.java | 20 +++++++++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/jopa-impl/src/main/antlr4/cz/cvut/kbss/jopa/query/soql/Soql.g4 b/jopa-impl/src/main/antlr4/cz/cvut/kbss/jopa/query/soql/Soql.g4 index 6a8b53349..8091af490 100644 --- a/jopa-impl/src/main/antlr4/cz/cvut/kbss/jopa/query/soql/Soql.g4 +++ b/jopa-impl/src/main/antlr4/cz/cvut/kbss/jopa/query/soql/Soql.g4 @@ -133,7 +133,7 @@ functionsReturningBoolean orderByClause: ORDER BY orderByItem (',' orderByItem)* ; -orderByItem: singleValuedObjectPathExpression (ASC | DESC)? ; +orderByItem: (singleValuedObjectPathExpression | simpleSubpath) (ASC | DESC)? ; groupByClause: GROUP BY groupByItem (',' groupByItem)* ; diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlOrderParameter.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlOrderParameter.java index c14ee85a8..55b5aa6c6 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlOrderParameter.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlOrderParameter.java @@ -37,6 +37,10 @@ public void setAttribute(SoqlAttribute attribute) { } public String getOrderByPart(String rootVariable) { + if (getAsParam(rootVariable).equals(rootVariable)) { + // Ordering by the entity identifier + return SoqlConstants.ASC.equals(orderingBy) ? rootVariable + " " : orderingBy + "(" + rootVariable + ") "; + } String param = attribute.requiresFilter() ? getAsParam(rootVariable).substring(1) : attribute.getValue().substring(1); return orderingBy + "(?" + param + ") "; } diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryListener.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryListener.java index 0d258636b..f7a5dd759 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryListener.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryListener.java @@ -437,7 +437,9 @@ private SoqlNode linkObjectPathExpression(ParserRuleContext ctx) { } setIris(firstNode); if (currentNode.getIri().isEmpty()) { - currentNode.getParent().clearChildren(); + if (currentNode.getParent() != null) { + currentNode.getParent().clearChildren(); + } this.isInObjectIdentifierExpression = true; } return firstNode; diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryParserTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryParserTest.java index 6176ed9a9..1cddf1a33 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryParserTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/soql/SoqlQueryParserTest.java @@ -999,4 +999,24 @@ void parseQueryHandlesVariableCorrespondingToEntityIdentifier() { " . ?personUri " + strUri(Vocabulary.p_p_username) + " ?username . }"; parseAndAssertEquality(expectedSparql, soql); } + + /** + * Bug #439 + */ + @Test + void parseQuerySupportsOrderingByEntityIdentifier() { + final String soql = "SELECT p FROM Person p ORDER BY p.uri"; + final String expectedSparql = "SELECT ?x WHERE { ?x a " + strUri(Vocabulary.c_Person) + " . } ORDER BY ?x"; + parseAndAssertEquality(expectedSparql, soql); + } + + /** + * Bug #439 - alternative syntax + */ + @Test + void parseQuerySupportsOrderingByEntity() { + final String soql = "SELECT p FROM Person p ORDER BY p"; + final String expectedSparql = "SELECT ?x WHERE { ?x a " + strUri(Vocabulary.c_Person) + " . } ORDER BY ?x"; + parseAndAssertEquality(expectedSparql, soql); + } } From a6b1d014efe36f2b572f08c2fa1a42cc788e2e32 Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Tue, 30 Jun 2026 10:18:59 +0200 Subject: [PATCH 5/6] [SCA] Minor SCA-based fixes, Javadoc fixes. --- CHANGELOG.md | 8 +-- .../jopa/datatype/DatatypeTransformer.java | 4 +- .../cz/cvut/kbss/jopa/model/ProviderUtil.java | 4 +- .../model/annotations/OWLObjectProperty.java | 2 +- .../jopa/model/metamodel/ManagedType.java | 8 +-- .../kbss/jopa/model/metamodel/Metamodel.java | 16 +++--- .../jopa/model/metamodel/PluralAttribute.java | 2 +- .../cz/cvut/kbss/jopa/model/query/Query.java | 2 +- .../model/query/criteria/CriteriaQuery.java | 49 ++++++++++++++----- .../AmbiguousAttributeException.java | 34 ------------- .../exception/IdentifierNotSetException.java | 2 +- .../IncompatibleDatatypeException.java | 30 ------------ .../loaders/PersistenceUnitClassFinder.java | 2 +- .../EntityReconstructionException.java | 8 --- .../query/criteria/CriteriaBuilderImpl.java | 2 +- .../sessions/CollectionInstanceBuilder.java | 4 +- .../jopa/sessions/cache/CacheManager.java | 2 +- .../jopa/sessions/cache/TtlCacheManager.java | 2 +- .../change/CollectionChangeDetector.java | 2 +- .../jopa/utils/EntityPropertiesUtils.java | 10 ---- .../kbss/jopa/utils/NamespaceResolver.java | 2 +- .../kbss/jopa/utils/ThrowingConsumer.java | 2 +- .../model/MetamodelImplInheritanceTest.java | 2 +- .../kbss/jopa/oom/AxiomValueGathererTest.java | 19 +++++-- .../parameter/EntityParameterValueTest.java | 1 - .../jopa/test/environment/Generators.java | 4 -- .../environment/OntologyConnectorType.java | 8 +-- .../kbss/jopa/test/runner/BaseRunner.java | 2 +- .../cz/cvut/kbss/jopa/maven/ModelGenMojo.java | 39 ++++++++------- .../com/sun/codemodel/JAnnotationUse.java | 2 +- .../kbss/jopa/owl2java/JavaTransformer.java | 2 +- .../jopa/owl2java/OWL2JavaTransformer.java | 4 +- .../jopa/owl2java/JavaNameGeneratorTest.java | 10 ++-- .../kbss/jopa/owlapi/DatatypeTransformer.java | 2 +- modelgen/README.md | 2 +- .../jopa/modelgen/OutputFilesGenerator.java | 6 +-- .../cz/cvut/kbss/ontodriver/Closeable.java | 2 +- .../java/cz/cvut/kbss/ontodriver/Lists.java | 2 +- .../kbss/ontodriver/ReloadableDataSource.java | 2 +- .../cz/cvut/kbss/ontodriver/ResultSet.java | 2 +- .../java/cz/cvut/kbss/ontodriver/Wrapper.java | 2 +- .../config/OntoDriverProperties.java | 6 +-- .../descriptor/AbstractAxiomDescriptor.java | 2 +- .../cz/cvut/kbss/ontodriver/model/Axiom.java | 2 +- ontodriver-jena/README.md | 2 +- .../connector/AbstractStorageConnector.java | 9 ---- .../jena/connector/StorageConnector.java | 6 +-- .../jena/environment/Generator.java | 9 ---- .../ontodriver/owlapi/OwlapiTypesTest.java | 13 +++-- .../rdf4j/connector/RepoConnection.java | 2 +- .../ontodriver/rdf4j/list/ListHandler.java | 9 +--- .../rdf4j/list/ReferencedListHandler.java | 10 ++-- .../rdf4j/list/SimpleListHandler.java | 12 ++--- 53 files changed, 159 insertions(+), 233 deletions(-) delete mode 100644 jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/AmbiguousAttributeException.java delete mode 100644 jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IncompatibleDatatypeException.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 9155f64df..216f298d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -131,7 +131,7 @@ ### 2.5.1 - 2025-08-21 -- Fix an issue with translating SOQL to SPARQL when referencing a RDF container attribute (Bug #366). +- Fix an issue with translating SOQL to SPARQL when referencing an RDF container attribute (Bug #366). ### 2.5.0 - 2025-08-18 @@ -689,7 +689,7 @@ - Fixed bug SPARQL query parser which prevent the use of property paths together with variables. - Added support for setting the in-memory storage in Jena and RDF4J driver (Enhancement #32). -- Working on Github Wiki. +- Working on GitHub Wiki. ## 0.10.1 - 2018-05-20 @@ -731,7 +731,7 @@ ## 0.9.12 - 2017-12-04 -- Rewrote em.refresh to correspond to JPA behavior (Issue #17). +- Rewrote `em.refresh` to correspond to JPA behavior (Issue #17). - Upgraded to the latest RDF4J (2.2.4). - Generate class names compliant with Java naming conventions (OWL2Java). - Added support for untyped query parameters to Query API (necessary for `LIMIT` and `OFFSET` support). @@ -880,7 +880,7 @@ - Implemented support for `EntityManager.unwrap`. Using unwrap, it is possible to get a hold of for example the Sesame in-memory repository used by the Sesame driver (which is otherwise, due to the Sesame API architecture, inaccessible - through the `RepositoryProvider`. + through the `RepositoryProvider`). ## 0.7.7 - 2016-05-11 diff --git a/datatype/src/main/java/cz/cvut/kbss/jopa/datatype/DatatypeTransformer.java b/datatype/src/main/java/cz/cvut/kbss/jopa/datatype/DatatypeTransformer.java index 17ad70427..414158646 100644 --- a/datatype/src/main/java/cz/cvut/kbss/jopa/datatype/DatatypeTransformer.java +++ b/datatype/src/main/java/cz/cvut/kbss/jopa/datatype/DatatypeTransformer.java @@ -92,8 +92,8 @@ private DatatypeTransformer() { /** * Converts the specified wrapper class to its corresponding primitive class. *

- * If the class parameter is a wrapper type, the equivalent primitive type will be returned (e.g., int.class for - * Integer.class) In all other cases, the return value is null. + * If the class parameter is a wrapper type, the equivalent primitive type will be returned (e.g., {@code int.class} for + * {@code Integer.class}) In all other cases, the return value is null. * * @param cls - the class to convert * @return Optional containing the primitive type, or empty if the specified class is not a wrapper type diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/ProviderUtil.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/ProviderUtil.java index 8aa1364ec..427ff8f78 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/ProviderUtil.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/ProviderUtil.java @@ -29,7 +29,7 @@ public interface ProviderUtil { *

* If the provider determines that the entity has been provided by itself and that either entity attributes with * FetchType EAGER have not been loaded or that the state of the specified attribute has not been loaded, this - * methods returns LoadState.NOT_LOADED. + * method returns LoadState.NOT_LOADED. *

* If the provider cannot determine the load state, this method returns LoadState.UNKNOWN. *

@@ -48,7 +48,7 @@ public interface ProviderUtil { *

* If the provider determines that the entity has been provided by itself and that either entity attributes with * FetchType EAGER have not been loaded or that the state of the specified attribute has not been loaded, this - * methods returns LoadState.NOT_LOADED. + * method returns LoadState.NOT_LOADED. *

* If the provider cannot determine the load state, this method returns LoadState.UNKNOWN. *

diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/annotations/OWLObjectProperty.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/annotations/OWLObjectProperty.java index 6e29678a5..125a4adfe 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/annotations/OWLObjectProperty.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/annotations/OWLObjectProperty.java @@ -49,7 +49,7 @@ /** * (Optional) The operations that must be cascaded to the target of the association. *

- * By default no operations are cascaded. + * By default, no operations are cascaded. * * @return Cascading setting for the annotated attribute */ diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/ManagedType.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/ManagedType.java index 8982b7a57..ea50772b6 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/ManagedType.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/ManagedType.java @@ -171,16 +171,16 @@ public interface ManagedType extends Type { MapAttribute getDeclaredMap(String name, Class keyType, Class valueType); /** - * Return all multi-valued attributes (Collection-, Set-, List-, and Map-valued attributes) of the managed type. - * Returns empty set if the managed type has no multi-valued attributes. + * Return all multivalued attributes (Collection-, Set-, List-, and Map-valued attributes) of the managed type. + * Returns empty set if the managed type has no multivalued attributes. * * @return Collection-, Set-, List-, and Map-valued attributes */ Set> getPluralAttributes(); /** - * Return all multi-valued attributes (Collection-, Set-, List-, and Map-valued attributes) declared by the managed - * type. Returns empty set if the managed type has no declared multi-valued attributes. + * Return all multivalued attributes (Collection-, Set-, List-, and Map-valued attributes) declared by the managed + * type. Returns empty set if the managed type has no declared multivalued attributes. * * @return declared Collection-, Set-, List-, and Map-valued attributes */ diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/Metamodel.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/Metamodel.java index f28c7dbb0..dff995016 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/Metamodel.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/Metamodel.java @@ -23,8 +23,7 @@ import java.util.Set; /** - * Provides access to the metamodel of persistent entities in the persistence - * unit. + * Provides access to the metamodel of persistent entities in the persistence unit. */ public interface Metamodel { /** @@ -63,9 +62,8 @@ public interface Metamodel { Set> getEntities(); /** - * Get the set of classes that contain inferred attributes. These classes - * are handled specially since inferred attributes can be influenced by - * changes to any other attributes in any other entity. + * Get the set of classes that contain inferred attributes. These classes are handled specially since inferred + * attributes can be influenced by changes to any other attributes in any other entity. * * @return The set of classes with inferred attributes. */ @@ -85,11 +83,9 @@ public interface Metamodel { /** * Adds the specified URI to the module extraction signature. *

- * Note that a module including the specified URI will be created when a new - * resource level transaction is started. When that will be is - * implementation dependent. However it must be guaranteed that all - * subsequent connections provided by OntoDriver will include the URI in - * extracted modules. + * Note that a module including the specified URI will be created when a new resource level transaction is started. + * When that will be is implementation dependent. However, it must be guaranteed that all subsequent connections + * provided by OntoDriver will include the URI in extracted modules. * * @param uri The URI to add * @throws NullPointerException If {@code uri} is {@code null} diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/PluralAttribute.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/PluralAttribute.java index d7e106492..e38a375ba 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/PluralAttribute.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/metamodel/PluralAttribute.java @@ -52,7 +52,7 @@ public interface PluralAttribute extends Attribute, Bindable { default boolean isRdfContainer() {return false;} /** - * Whether this list represents a RDF + * Whether this list represents an RDF * collection. * * @return {@code true} when this list attribute is an RDF collection, {@code false} otherwise diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/Query.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/Query.java index fb5ecc8ea..da0190529 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/Query.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/Query.java @@ -54,7 +54,7 @@ public interface Query { /** * Execute a SELECT query and return the query results as an untyped java.util.stream.Stream. *

- * By default this method delegates to getResultList().stream(), however persistence provider may choose to override + * By default, this method delegates to getResultList().stream(), however persistence provider may choose to override * this method to provide additional capabilities. * * @return a stream of the results diff --git a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/criteria/CriteriaQuery.java b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/criteria/CriteriaQuery.java index 71f2121d7..667288b7d 100644 --- a/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/criteria/CriteriaQuery.java +++ b/jopa-api/src/main/java/cz/cvut/kbss/jopa/model/query/criteria/CriteriaQuery.java @@ -45,7 +45,8 @@ public interface CriteriaQuery { Root from(EntityType entity); /** - * Specify the item that is to be returned in the query result. Replaces the previously specified selection(s), if any. + * Specify the item that is to be returned in the query result. Replaces the previously specified selection(s), if + * any. * * @param selection - selection specifying the item that is to be returned in the query result * @return the modified query @@ -53,7 +54,8 @@ public interface CriteriaQuery { CriteriaQuery select(Selection selection); /** - * Modify the query to restrict the query result according to the specified boolean expression. Replaces the previously added restriction(s), if any. + * Modify the query to restrict the query result according to the specified boolean expression. Replaces the + * previously added restriction(s), if any. * * @param expression - a simple or compound boolean expression * @return the modified query @@ -61,7 +63,9 @@ public interface CriteriaQuery { CriteriaQuery where(Expression expression); /** - * Modify the query to restrict the query result according to the conjunction of the specified restriction predicates. Replaces the previously added restriction(s), if any. If no restrictions are specified, any previously added restrictions are simply removed. + * Modify the query to restrict the query result according to the conjunction of the specified restriction + * predicates. Replaces the previously added restriction(s), if any. If no restrictions are specified, any + * previously added restrictions are simply removed. * * @param predicates - zero or more restriction predicates * @return the modified query @@ -69,7 +73,9 @@ public interface CriteriaQuery { CriteriaQuery where(Predicate... predicates); /** - * Modify the query to restrict the query result according to the conjunction of the specified restriction predicates. Replaces the previously added restriction(s), if any. If no restrictions are specified, any previously added restrictions are simply removed. + * Modify the query to restrict the query result according to the conjunction of the specified restriction + * predicates. Replaces the previously added restriction(s), if any. If no restrictions are specified, any + * previously added restrictions are simply removed. * * @param predicates - list of predicates * @return the modified query @@ -79,9 +85,12 @@ public interface CriteriaQuery { Class getResultType(); /** - * Specify whether duplicate query results will be eliminated. A true value will cause duplicates to be eliminated. A false value will cause duplicates to be retained. If distinct has not been specified, duplicate results must be retained. + * Specify whether duplicate query results will be eliminated. A true value will cause duplicates to be eliminated. + * A false value will cause duplicates to be retained. If distinct has not been specified, duplicate results must be + * retained. * - * @param distinct - boolean value specifying whether duplicate results must be eliminated from the query result or whether they must be retained + * @param distinct - boolean value specifying whether duplicate results must be eliminated from the query result or + * whether they must be retained * @return the modified query */ CriteriaQuery distinct(boolean distinct); @@ -108,14 +117,17 @@ public interface CriteriaQuery { Selection getSelection(); /** - * Return the predicate that corresponds to the where clause restriction(s), or null if no restrictions have been specified. + * Return the predicate that corresponds to the where clause restriction(s), or null if no restrictions have been + * specified. * * @return where clause predicate */ Predicate getRestriction(); /** - * Specify the expressions that are used to form groups over the query results. Replaces the previous specified grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions are simply removed. + * Specify the expressions that are used to form groups over the query results. Replaces the previous specified + * grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions + * are simply removed. * * @param grouping zero or more grouping expressions * @return the modified query @@ -123,7 +135,9 @@ public interface CriteriaQuery { CriteriaQuery groupBy(Expression... grouping); /** - * Specify the expressions that are used to form groups over the query results. Replaces the previous specified grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions are simply removed. + * Specify the expressions that are used to form groups over the query results. Replaces the previous specified + * grouping expressions, if any. If no grouping expressions are specified, any previously added grouping expressions + * are simply removed. * * @param grouping list of zero or more grouping expressions * @return the modified query @@ -131,7 +145,10 @@ public interface CriteriaQuery { CriteriaQuery groupBy(List> grouping); /** - * Specify the ordering expressions that are used to order the query results. Replaces the previous ordering expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed, and results will be returned in no particular order. The left-to-right sequence of the ordering expressions determines the precedence, whereby the leftmost has highest precedence. + * Specify the ordering expressions that are used to order the query results. Replaces the previous ordering + * expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed, + * and results will be returned in no particular order. The left-to-right sequence of the ordering expressions + * determines the precedence, whereby the leftmost has the highest precedence. * * @param o list of zero or more ordering expressions * @return the modified query @@ -139,7 +156,10 @@ public interface CriteriaQuery { CriteriaQuery orderBy(List o); /** - * Specify the ordering expressions that are used to order the query results. Replaces the previous ordering expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed, and results will be returned in no particular order. The left-to-right sequence of the ordering expressions determines the precedence, whereby the leftmost has highest precedence. + * Specify the ordering expressions that are used to order the query results. Replaces the previous ordering + * expressions, if any. If no ordering expressions are specified, the previous ordering, if any, is simply removed, + * and results will be returned in no particular order. The left-to-right sequence of the ordering expressions + * determines the precedence, whereby the leftmost has the highest precedence. * * @param o zero or more ordering expressions * @return the modified query @@ -148,7 +168,8 @@ public interface CriteriaQuery { /** - * Return the ordering expressions in order of precedence. Returns empty list if no ordering expressions have been specified. + * Return the ordering expressions in order of precedence. Returns empty list if no ordering expressions have been + * specified. * * @return the list of ordering expressions */ @@ -163,7 +184,9 @@ public interface CriteriaQuery { CriteriaQuery having(Expression restriction); /** - * Specify restrictions over the groups of the query according the conjunction of the specified restriction predicates. Replaces the previously added having restriction(s), if any. If no restrictions are specified, any previously added restrictions are simply removed. + * Specify restrictions over the groups of the query according the conjunction of the specified restriction + * predicates. Replaces the previously added having restriction(s), if any. If no restrictions are specified, any + * previously added restrictions are simply removed. * * @param restrictions zero or more restriction predicates * @return the modified query diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/AmbiguousAttributeException.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/AmbiguousAttributeException.java deleted file mode 100644 index f1181fe3d..000000000 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/AmbiguousAttributeException.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * JOPA - * Copyright (C) 2026 Czech Technical University in Prague - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ -package cz.cvut.kbss.jopa.exception; - -import cz.cvut.kbss.jopa.exceptions.OWLPersistenceException; - -public class AmbiguousAttributeException extends OWLPersistenceException { - public AmbiguousAttributeException(String message, Throwable cause) { - super(message, cause); - } - - public AmbiguousAttributeException(String message) { - super(message); - } - - public AmbiguousAttributeException(Throwable cause) { - super(cause); - } -} diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IdentifierNotSetException.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IdentifierNotSetException.java index 4a6d4e6b9..75a4b11a6 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IdentifierNotSetException.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IdentifierNotSetException.java @@ -20,7 +20,7 @@ import cz.cvut.kbss.jopa.exceptions.OWLPersistenceException; /** - * Thrown when an entity is missing an identifier and it cannot be generated. + * Thrown when an entity is missing an identifier, and it cannot be generated. */ public class IdentifierNotSetException extends OWLPersistenceException { diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IncompatibleDatatypeException.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IncompatibleDatatypeException.java deleted file mode 100644 index 431fba05d..000000000 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/exception/IncompatibleDatatypeException.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * JOPA - * Copyright (C) 2026 Czech Technical University in Prague - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ -package cz.cvut.kbss.jopa.exception; - -import cz.cvut.kbss.jopa.exceptions.OWLPersistenceException; - -/** - * Indicates that an unexpected datatype has been provided for a value. - */ -public class IncompatibleDatatypeException extends OWLPersistenceException { - - public IncompatibleDatatypeException(String message) { - super(message); - } -} diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/loaders/PersistenceUnitClassFinder.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/loaders/PersistenceUnitClassFinder.java index 049ca4349..787cc63ff 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/loaders/PersistenceUnitClassFinder.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/loaders/PersistenceUnitClassFinder.java @@ -51,7 +51,7 @@ public class PersistenceUnitClassFinder { * These classes include: *

    *
  • Entities, i.e. classes annotated with {@link cz.cvut.kbss.jopa.model.annotations.OWLClass},
  • - *
  • Result result mapping classes, i.e. classes annotated with {@link cz.cvut.kbss.jopa.model.annotations.SparqlResultSetMapping} + *
  • Result mapping classes, i.e. classes annotated with {@link cz.cvut.kbss.jopa.model.annotations.SparqlResultSetMapping} * or {@link cz.cvut.kbss.jopa.model.annotations.SparqlResultSetMappings}
  • *
* diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/oom/exception/EntityReconstructionException.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/oom/exception/EntityReconstructionException.java index 7747a36dc..f69100def 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/oom/exception/EntityReconstructionException.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/oom/exception/EntityReconstructionException.java @@ -21,14 +21,6 @@ public class EntityReconstructionException extends OWLPersistenceException { - public EntityReconstructionException(String message, Throwable cause) { - super(message, cause); - } - - public EntityReconstructionException(String message) { - super(message); - } - public EntityReconstructionException(Throwable cause) { super(cause); } diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/criteria/CriteriaBuilderImpl.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/criteria/CriteriaBuilderImpl.java index 34cc8b744..a6139c56f 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/criteria/CriteriaBuilderImpl.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/query/criteria/CriteriaBuilderImpl.java @@ -348,7 +348,7 @@ public > Predicate lessThanOrEqual(Expression expression = factory.get("attributeName");} Looks like boolean expression but in * fact it is not boolean expression, so we need to fix this. diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilder.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilder.java index 969008df1..88f763bd0 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilder.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/CollectionInstanceBuilder.java @@ -41,7 +41,7 @@ import java.util.Set; /** - * Special class for cloning collections. Introduced because some Java collection have no no-argument constructor and + * Special class for cloning collections. Introduced because some Java collection have no no-argument constructor, and * thus they must be cloned specially. NOTE: This class may be removed in case a better cloning mechanisms (namely * database mappings and copy policies) is introduced. */ @@ -89,7 +89,7 @@ Object buildClone(Object cloneOwner, Field field, Object collection, CloneConfig /** * Clones the specified collection using its default zero argument constructor. If the specified collection has none - * (e. g. like SingletonList), this method returns null. + * (e.g. like SingletonList), this method returns null. * * @param container The collection to clone. * @return cloned collection diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/CacheManager.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/CacheManager.java index 3d0718939..6ae12b7d6 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/CacheManager.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/CacheManager.java @@ -43,7 +43,7 @@ public interface CacheManager extends Cache { /** * Gets entity with the specified identifier from the cache. *

- * The entity is searched for in the context specified by {@code descriptor}. Thus all three conditions - class, + * The entity is searched for in the context specified by {@code descriptor}. Thus, all three conditions - class, * identifier and descriptor must match to return a result. * * @param cls Class of the entity diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManager.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManager.java index 3c61e5e1b..70ae6267a 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManager.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/cache/TtlCacheManager.java @@ -67,7 +67,7 @@ public class TtlCacheManager implements CacheManager { private TtlCache cache; - // Each repository can have its own lock and they could be acquired by this + // Each repository can have its own lock, and they could be acquired by this // instance itself, no need to pass this burden to callers private final Lock readLock; private final Lock writeLock; diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/change/CollectionChangeDetector.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/change/CollectionChangeDetector.java index 32ab3bfbb..599d9a6dd 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/change/CollectionChangeDetector.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/sessions/change/CollectionChangeDetector.java @@ -23,7 +23,7 @@ import java.util.*; /** - * Checks for changes in a collection. By changes it is understood: + * Checks for changes in a collection. By changes, it is understood: *

  *     
    *
  • Different number of elements,
  • diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/EntityPropertiesUtils.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/EntityPropertiesUtils.java index 98788d794..3c8fe63b0 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/EntityPropertiesUtils.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/EntityPropertiesUtils.java @@ -222,14 +222,4 @@ public static boolean isFieldTransient(Field field) { final Transient transientAnnotation = field.getAnnotation(Transient.class); return transientAnnotation != null; } - - /** - * Returns true if the specified field is static. - * - * @param field The field to check - * @return True if field is static, false otherwise - */ - public static boolean isFieldStatic(Field field) { - return Modifier.isStatic(field.getModifiers()); - } } diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/NamespaceResolver.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/NamespaceResolver.java index 02de9b601..f6a68451a 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/NamespaceResolver.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/NamespaceResolver.java @@ -67,7 +67,7 @@ public void registerNamespace(String prefix, String namespace) { } /** - * Replaces prefix in the specified IRI with a full namespace IRI, if the IRI contains a prefix and it is registered + * Replaces prefix in the specified IRI with a full namespace IRI, if the IRI contains a prefix, and it is registered * in this resolver. * * @param iri The IRI to resolve diff --git a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/ThrowingConsumer.java b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/ThrowingConsumer.java index 63e52cf39..528a5e153 100644 --- a/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/ThrowingConsumer.java +++ b/jopa-impl/src/main/java/cz/cvut/kbss/jopa/utils/ThrowingConsumer.java @@ -19,7 +19,7 @@ /** * Represents an operation that accepts a single input argument and returns no result. Unlike most other functional - * interfaces, {@code ThrowingConsumer} is expected to operate via side-effects. + * interfaces, {@code ThrowingConsumer} is expected to operate via side effects. *

    * This is a functional interface whose functional method is {@link #accept(Object)}. *

    diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/MetamodelImplInheritanceTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/MetamodelImplInheritanceTest.java index 876639aaf..11ab22bd2 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/MetamodelImplInheritanceTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/model/MetamodelImplInheritanceTest.java @@ -194,7 +194,7 @@ public static class AnotherSubclass extends OWLClassS { } /** - * Ref.: https://github.com/kbss-cvut/jopa/issues/3 + * Bug #3 */ @Test void buildingMetamodelSupportsReferenceFromParentEntityToSubEntity() { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/oom/AxiomValueGathererTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/oom/AxiomValueGathererTest.java index 0261623fa..641d927d5 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/oom/AxiomValueGathererTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/oom/AxiomValueGathererTest.java @@ -32,17 +32,28 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import java.lang.reflect.Field; import java.net.URI; -import java.util.*; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import java.util.stream.IntStream; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) class AxiomValueGathererTest { diff --git a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/parameter/EntityParameterValueTest.java b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/parameter/EntityParameterValueTest.java index d1a455952..20cc8595f 100644 --- a/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/parameter/EntityParameterValueTest.java +++ b/jopa-impl/src/test/java/cz/cvut/kbss/jopa/query/parameter/EntityParameterValueTest.java @@ -27,7 +27,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; diff --git a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/Generators.java b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/Generators.java index 0707da5e9..40ae35333 100644 --- a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/Generators.java +++ b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/Generators.java @@ -94,10 +94,6 @@ public static List createListOfIdentifiers() { return createSimpleList().stream().map(OWLClassA::getUri).collect(Collectors.toList()); } - public static Set createSimpleSet() { - return createSimpleSet(randomPositiveInt(DEFAULT_MIN, DEFAULT_SIZE)); - } - public static Set createSimpleSet(int size) { assert size > 0; final Set set = new HashSet<>(size); diff --git a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/OntologyConnectorType.java b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/OntologyConnectorType.java index 86da5564f..eec315808 100644 --- a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/OntologyConnectorType.java +++ b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/environment/OntologyConnectorType.java @@ -19,19 +19,19 @@ public enum OntologyConnectorType { /** - * OWL API ontology connector. Name: owlapi + * OWL API ontology connector. Name: {@literal owlapi} */ OWLAPI("owlapi", "cz.cvut.kbss.ontodriver.owlapi.OwlapiDataSource"), /** - * Jena ontology connector. Name: jena + * Jena ontology connector. Name: {@literal jena} */ JENA("jena", "cz.cvut.kbss.ontodriver.jena.JenaDataSource"), /** - * RDF4J ontology connector. Name: rdf4j + * RDF4J ontology connector. Name: {@literal rdf4j} */ RDF4J("rdf4j", "cz.cvut.kbss.ontodriver.rdf4j.Rdf4jDataSource"), /** - * Virtuoso ontology connector. Name: virtuoso + * Virtuoso ontology connector. Name: {@literal virtuoso} */ VIRTUOSO("virtuoso", "cz.cvut.kbss.ontodriver.virtuoso.VirtuosoDataSource"); diff --git a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/runner/BaseRunner.java b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/runner/BaseRunner.java index f533a97b0..75e81b16a 100644 --- a/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/runner/BaseRunner.java +++ b/jopa-integration-tests/src/main/java/cz/cvut/kbss/jopa/test/runner/BaseRunner.java @@ -248,7 +248,7 @@ protected void transactionalThrowing(Executable action) { } /** - * Verifies that no statements with the specified individual as subject exist in the ontology any more. + * Verifies that no statements with the specified individual as subject exist in the ontology anymore. * * @param identifier Individual identifier */ diff --git a/jopa-maven-plugin/src/main/java/cz/cvut/kbss/jopa/maven/ModelGenMojo.java b/jopa-maven-plugin/src/main/java/cz/cvut/kbss/jopa/maven/ModelGenMojo.java index 3d23ed32e..66a7fb161 100644 --- a/jopa-maven-plugin/src/main/java/cz/cvut/kbss/jopa/maven/ModelGenMojo.java +++ b/jopa-maven-plugin/src/main/java/cz/cvut/kbss/jopa/maven/ModelGenMojo.java @@ -84,23 +84,7 @@ public void execute() { getLog().info(""); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); - List options = new ArrayList<>(); - options.add("-processor"); - options.add(ModelGenProcessor.class.getName()); - - final File[] classPathFiles = getClassPathFiles(); - - final String compileClassPath = join(classPathFiles, File.pathSeparator); - - options.add("-cp"); - options.add(compileClassPath); - - options.add("-d"); - File folder = new File("./target/classes"); - if (!folder.exists()) { - folder.mkdirs(); - } - options.add("./target/classes"); + List options = getAnnotationProcessorOptions(); configureAnnotationProcessor(options); @@ -125,6 +109,27 @@ public void execute() { getLog().info("------------------------------------------------------------------------"); } + private List getAnnotationProcessorOptions() { + List options = new ArrayList<>(); + options.add("-processor"); + options.add(ModelGenProcessor.class.getName()); + + final File[] classPathFiles = getClassPathFiles(); + + final String compileClassPath = join(classPathFiles, File.pathSeparator); + + options.add("-cp"); + options.add(compileClassPath); + + options.add("-d"); + File folder = new File("./target/classes"); + if (!folder.exists()) { + folder.mkdirs(); + } + options.add("./target/classes"); + return options; + } + private File[] getClassPathFiles() { final Set files = new TreeSet<>(getCurrentClassPath()); List classpathElements; diff --git a/jopa-owl2java/src/main/java/com/sun/codemodel/JAnnotationUse.java b/jopa-owl2java/src/main/java/com/sun/codemodel/JAnnotationUse.java index d71bef2a6..a28ac2085 100644 --- a/jopa-owl2java/src/main/java/com/sun/codemodel/JAnnotationUse.java +++ b/jopa-owl2java/src/main/java/com/sun/codemodel/JAnnotationUse.java @@ -210,7 +210,7 @@ public JAnnotationUse param(String name, JEnumConstant value) { /** * Adds a member value pair to this annotation *

    - * This can be used for e.g to specify + * This can be used, for example, to specify *

          *        @XmlCollectionItem(type=Integer.class);
          * 
    diff --git a/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/JavaTransformer.java b/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/JavaTransformer.java index b260c0ee4..f5000f4e3 100644 --- a/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/JavaTransformer.java +++ b/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/JavaTransformer.java @@ -287,7 +287,7 @@ private String ensureVocabularyItemUniqueIdentifier(String id) { * @param ontology Ontology from which the model/vocabulary is being generated * @param owlEntity Annotated entity * @param javaElem Element to document with Javadoc - * @return Whether the javadoc comment has been generated + * @return Whether the Javadoc comment has been generated */ private boolean generateJavadoc(OWLOntology ontology, OWLEntity owlEntity, JDocCommentable javaElem) { if (!configuration.shouldGenerateJavadoc()) { diff --git a/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/OWL2JavaTransformer.java b/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/OWL2JavaTransformer.java index ff7ea50af..d7293dbcb 100644 --- a/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/OWL2JavaTransformer.java +++ b/jopa-owl2java/src/main/java/cz/cvut/kbss/jopa/owl2java/OWL2JavaTransformer.java @@ -139,7 +139,7 @@ private List getContexts(final OWLAxiom a) { LOG.trace("Processing axiom annotation: {}", p); p.getValue().accept(v); final String icContextName = v.getName(); - LOG.trace("CONTEXT: {}", icContextName); + LOG.trace("Axiom CONTEXT: {}", icContextName); if (icContextName == null) { return; } @@ -157,7 +157,7 @@ private List getContexts(final OWLEntity entity) { LOG.trace("Processing entity annotation: {}", p); p.getValue().accept(v); final String icContextName = v.getName(); - LOG.trace("CONTEXT: {}", icContextName); + LOG.trace("Entity CONTEXT: {}", icContextName); if (icContextName == null) { return; } diff --git a/jopa-owl2java/src/test/java/cz/cvut/kbss/jopa/owl2java/JavaNameGeneratorTest.java b/jopa-owl2java/src/test/java/cz/cvut/kbss/jopa/owl2java/JavaNameGeneratorTest.java index c78e3c3e7..37000a1f6 100644 --- a/jopa-owl2java/src/test/java/cz/cvut/kbss/jopa/owl2java/JavaNameGeneratorTest.java +++ b/jopa-owl2java/src/test/java/cz/cvut/kbss/jopa/owl2java/JavaNameGeneratorTest.java @@ -51,31 +51,31 @@ void toCamelCaseNotationCamelCasesStringsSeparatedByUnderscore() { @Test void generateJavaNameForIriGeneratesValidJavaIdentifiersForIriWithNonAsciiCharacters() { final IRI iri = IRI.create(PREFIX + "navržený-pojem"); - assertEquals("navrzeny_pojem", sut.generateJavaNameForIri(iri)); + assertEquals("navrzeny_pojem", JavaNameGenerator.generateJavaNameForIri(iri)); } @Test void generateJavaNameForIriSanitizesJavaKeywords() { final IRI iri = IRI.create(PREFIX + "volatile"); - assertEquals("_volatile", sut.generateJavaNameForIri(iri)); + assertEquals("_volatile", JavaNameGenerator.generateJavaNameForIri(iri)); } @Test void generateJavaNameForIriUsesFragmentWhenIriContainsIt() { final IRI iri = IRI.create("http://onto.fel.cvut.cz/ontologies/owl2java-test#Fragment"); - assertEquals("Fragment", sut.generateJavaNameForIri(iri)); + assertEquals("Fragment", JavaNameGenerator.generateJavaNameForIri(iri)); } @Test void generateJavaNameForIriUsesPartBetweenLastHashAndFragmentWhenFragmentIsLastChar() { final IRI iri = IRI.create("http://www.w3.org/ns/activitystreams#"); - assertEquals("activitystreams", sut.generateJavaNameForIri(iri)); + assertEquals("activitystreams", JavaNameGenerator.generateJavaNameForIri(iri)); } @Test void generateJavaNameForIriUsesPartBetweenLastAndSecondToLastSlashWhenSlashIsLastChar() { final IRI iri = IRI.create("http://purl.org/vocab/vann/"); - assertEquals("vann", sut.generateJavaNameForIri(iri)); + assertEquals("vann", JavaNameGenerator.generateJavaNameForIri(iri)); } @Test diff --git a/jopa-owlapi-utils/src/main/java/cz/cvut/kbss/jopa/owlapi/DatatypeTransformer.java b/jopa-owlapi-utils/src/main/java/cz/cvut/kbss/jopa/owlapi/DatatypeTransformer.java index a412658f8..44893f364 100644 --- a/jopa-owlapi-utils/src/main/java/cz/cvut/kbss/jopa/owlapi/DatatypeTransformer.java +++ b/jopa-owlapi-utils/src/main/java/cz/cvut/kbss/jopa/owlapi/DatatypeTransformer.java @@ -48,7 +48,7 @@ public class DatatypeTransformer { /** * Mapping between {@link OWL2Datatype}s and Java types. *

    - * Note that the map is incomplete (e.g., the {@link OWL2Datatype} enum does not contain constants for {@code xsd:date} and {@code xsd:time}. + * Note that the map is incomplete (e.g., the {@link OWL2Datatype} enum does not contain constants for {@code xsd:date} and {@code xsd:time}). *

    * Also, OWL API maps {@code xsd:integer} to Java {@link Integer}, which is technically not correct, since {@code xsd:integer} is unbound * and may not fit, so {@link BigInteger} would be more appropriate. The same goes for other {@code xsd:integer} derivatives like {@code xsd:negativeInteger} etc. diff --git a/modelgen/README.md b/modelgen/README.md index eab4ac046..852c47ed2 100644 --- a/modelgen/README.md +++ b/modelgen/README.md @@ -10,7 +10,7 @@ Generator is integrated as a goal in jopa-maven-plugin. It has 4 configuration p 'additional-sources' defines path to additional sources, such as output files of OWL2Java -'source-package' if user wants tu run generator on specific package, it will be defined here and it is in format 'test.example.classesForModelGen' +'source-package' if user wants tu run generator on specific package, it will be defined here, and it is in format 'test.example.classesForModelGen' 'debug-option' controls console output of generator, default value is false diff --git a/modelgen/src/main/java/cz/cvut/kbss/jopa/modelgen/OutputFilesGenerator.java b/modelgen/src/main/java/cz/cvut/kbss/jopa/modelgen/OutputFilesGenerator.java index c4bb5180c..12b92d974 100644 --- a/modelgen/src/main/java/cz/cvut/kbss/jopa/modelgen/OutputFilesGenerator.java +++ b/modelgen/src/main/java/cz/cvut/kbss/jopa/modelgen/OutputFilesGenerator.java @@ -77,7 +77,7 @@ private void generateClassFile(MetamodelClass cls) { generateClassIriField(cls).ifPresent(content::append); generatePropertyIris(cls).ifPresent(content::append); content.append(generateAttributes(cls)); - content.append(generateClassSuffix()); + content.append('}'); try { Files.writeString(targetFile.toPath(), content.toString(), StandardOpenOption.TRUNCATE_EXISTING); } catch (IOException e) { @@ -275,8 +275,4 @@ private static String generateAttributes(MetamodelClass cls) { } return attributes.toString(); } - - private static String generateClassSuffix() { - return "}"; - } } diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Closeable.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Closeable.java index c8142ff2a..23733b56e 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Closeable.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Closeable.java @@ -27,7 +27,7 @@ public interface Closeable { /** * Closes this resource releasing any sub-resources it holds. *

    - * After closing the resource is not usable any more and calling methods on + * After closing the resource is not usable anymore and calling methods on * it (except {@code close} and {@code isOpen}) will result in * {@code IllegalStateException}. *

    diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Lists.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Lists.java index fe794a7f2..3b08256b7 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Lists.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Lists.java @@ -79,7 +79,7 @@ public interface Lists { *

    * The returned axioms should be iterable in the same order as they were put into the sequence in the ontology. * - * @param descriptor Describes list's properties, including node content assertion. Also may specify context from + * @param descriptor Describes list's properties, including node content assertion. Also, may specify context from * which the list should be loaded * @return Axioms matching the specified list descriptor * @throws OntoDriverException If an ontology access error occurs diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ReloadableDataSource.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ReloadableDataSource.java index 2643bd67d..3d97416b5 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ReloadableDataSource.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ReloadableDataSource.java @@ -30,7 +30,7 @@ public interface ReloadableDataSource extends DataSource { /** * Reloads data from the underlying storage, if possible. *

    - * Does nothing if the underlying storage does not support reloading or it is not necessary (e.g. when connected + * Does nothing if the underlying storage does not support reloading, or it is not necessary (e.g. when connected * to a remote triple store). * * @throws OntoDriverException If an error occurs when reloading data diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ResultSet.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ResultSet.java index 0c456ffb2..2d7a00a8c 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ResultSet.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/ResultSet.java @@ -419,7 +419,7 @@ public interface ResultSet extends AutoCloseable, Iterable { /** * Closes this result set releasing any sub-resources it holds. *

    - * After closing the result set is not usable any more and calling methods on it (except {@code close} and + * After closing the result set is not usable anymore and calling methods on it (except {@code close} and * {@code isOpen}) will result in {@code OntoDriverException}. *

    * Calling {@code close} on already closed resource does nothing. diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Wrapper.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Wrapper.java index 9a843e3d5..b00b736b1 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Wrapper.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/Wrapper.java @@ -30,7 +30,7 @@ public interface Wrapper { * Returns an object that implements the given interface to allow access to non-standard methods, or standard * methods not exposed by the proxy. If the receiver implements the interface then the result is the receiver or a * proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the - * result is the wrapped object or a proxy for the wrapped object. Otherwise return the the result of calling unwrap + * result is the wrapped object or a proxy for the wrapped object. Otherwise, return the result of calling unwrap * recursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not * implement the interface, then an {@link OntoDriverException} is thrown. * diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/config/OntoDriverProperties.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/config/OntoDriverProperties.java index a7fa36f8e..0c8713f97 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/config/OntoDriverProperties.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/config/OntoDriverProperties.java @@ -47,7 +47,7 @@ public final class OntoDriverProperties { * queries. *

    * If so, uncommitted changes made during transaction will be included in query evaluation, entity retrieval etc. - * Otherwise the driver will use the ontology as it was when the transaction was started and uncommitted changes + * Otherwise, the driver will use the ontology as it was when the transaction was started and uncommitted changes * will not be visible until commit. */ public static final String USE_TRANSACTIONAL_ONTOLOGY = "cz.cvut.kbss.ontodriver.use-transactional-onto"; @@ -57,14 +57,14 @@ public final class OntoDriverProperties { *

    * The module extraction signature is generated from metamodel, but * types and properties cannot be determined from the - * metamodel. Therefore it is possible to specify them using this property so that the module is complete. + * metamodel. Therefore, it is possible to specify them using this property so that the module is complete. */ public static final String MODULE_EXTRACTION_SIGNATURE = "cz.cvut.kbss.ontodriver.module-signature"; /** * Property representing module extraction signature delimiter. *

    - * I. e. URIs in module extraction signature are delimited by this string. + * I.e. URIs in module extraction signature are delimited by this string. * * @see #MODULE_EXTRACTION_SIGNATURE */ diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/descriptor/AbstractAxiomDescriptor.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/descriptor/AbstractAxiomDescriptor.java index 07ab2e6ed..fd12719cd 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/descriptor/AbstractAxiomDescriptor.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/descriptor/AbstractAxiomDescriptor.java @@ -57,7 +57,7 @@ public NamedResource getSubject() { /** * Gets the set of repository context identifiers in which this descriptor's subject may be. *

    - * The contract of this method is as follows: it must not return {@code null}, if the the subject is in the default + * The contract of this method is as follows: it must not return {@code null}, if the subject is in the default * context, an empty set is returned. * * @return Set of context identifiers diff --git a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/model/Axiom.java b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/model/Axiom.java index ee6679cd0..55f030c2f 100644 --- a/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/model/Axiom.java +++ b/ontodriver-api/src/main/java/cz/cvut/kbss/ontodriver/model/Axiom.java @@ -18,7 +18,7 @@ package cz.cvut.kbss.ontodriver.model; /** - * Represents either an OWL axiom or a RDF triple. + * Represents either an OWL axiom or an RDF triple. */ public interface Axiom { diff --git a/ontodriver-jena/README.md b/ontodriver-jena/README.md index 6496ca8d1..17251f596 100644 --- a/ontodriver-jena/README.md +++ b/ontodriver-jena/README.md @@ -38,7 +38,7 @@ into the shared connector. This puts more demand on the system memory, as the storage may be copied multiple times. However, it provides much higher level of isolation for concurrent access. -**Note:** This strategy is by default used when inference is configured. This is a must have to allow access to transactional +**Note:** This strategy is by default used when inference is configured. This is a must-have to allow access to transactional changes in the reasoning process. Therefore, whenever a `cz.cvut.jopa.reasonerFactoryClass` parameter value is passed in configuration to the driver, it automatically uses snapshot-based transaction isolation strategy, regardless of any direct configuration of the transaction isolation strategy. diff --git a/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/AbstractStorageConnector.java b/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/AbstractStorageConnector.java index 1769e471c..12ae09e35 100644 --- a/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/AbstractStorageConnector.java +++ b/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/AbstractStorageConnector.java @@ -34,15 +34,6 @@ abstract class AbstractStorageConnector implements StorageConnector { Storage storage; - /** - * Constructs this connector without using any configuration. - */ - AbstractStorageConnector() { - this.configuration = null; - initialize(); - this.open = true; - } - AbstractStorageConnector(DriverConfiguration configuration) { this.configuration = configuration; initialize(); diff --git a/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/StorageConnector.java b/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/StorageConnector.java index 67cc92171..bbb11b2a9 100644 --- a/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/StorageConnector.java +++ b/ontodriver-jena/src/main/java/cz/cvut/kbss/ontodriver/jena/connector/StorageConnector.java @@ -107,7 +107,7 @@ default boolean isReadOnly() { *

    * Requires an active transaction. *

    - * {@code context} is optional, its absence means that the statements will be added into the the default graph. + * {@code context} is optional, its absence means that the statements will be added into the default graph. * * @param statements Statements to add * @param context Target context, optional @@ -119,7 +119,7 @@ default boolean isReadOnly() { *

    * Requires an active transaction. *

    - * {@code context} is optional, its absence means that the statements will be removed from the the default graph. + * {@code context} is optional, its absence means that the statements will be removed from the default graph. * * @param statements Statements to remove * @param context Target context, optional @@ -129,7 +129,7 @@ default boolean isReadOnly() { /** * Removes statements matching the specified pattern from the specified storage context. *

    - * {@code context} is optional, its absence means that the statements will be removed from the the default graph. + * {@code context} is optional, its absence means that the statements will be removed from the default graph. * * @param subject Statement subject, optional * @param property Statement property, optional diff --git a/ontodriver-jena/src/test/java/cz/cvut/kbss/ontodriver/jena/environment/Generator.java b/ontodriver-jena/src/test/java/cz/cvut/kbss/ontodriver/jena/environment/Generator.java index e71287377..c4309d4ee 100644 --- a/ontodriver-jena/src/test/java/cz/cvut/kbss/ontodriver/jena/environment/Generator.java +++ b/ontodriver-jena/src/test/java/cz/cvut/kbss/ontodriver/jena/environment/Generator.java @@ -41,15 +41,6 @@ public static int randomInt(int max) { return RANDOM.nextInt(max); } - public static boolean randomBoolean() { - return RANDOM.nextBoolean(); - } - - // Synchronize resource creation to prevent race conditions in concurrent tests. - public static synchronized Resource generateResource() { - return ResourceFactory.createResource(generateUri().toString()); - } - // Synchronize resource creation to prevent race conditions in concurrent tests. public static synchronized Resource generateResource(String iri) { return ResourceFactory.createResource(iri); diff --git a/ontodriver-owlapi/src/test/java/cz/cvut/kbss/ontodriver/owlapi/OwlapiTypesTest.java b/ontodriver-owlapi/src/test/java/cz/cvut/kbss/ontodriver/owlapi/OwlapiTypesTest.java index 4eadcc650..4bad33ea7 100644 --- a/ontodriver-owlapi/src/test/java/cz/cvut/kbss/ontodriver/owlapi/OwlapiTypesTest.java +++ b/ontodriver-owlapi/src/test/java/cz/cvut/kbss/ontodriver/owlapi/OwlapiTypesTest.java @@ -17,13 +17,16 @@ */ package cz.cvut.kbss.ontodriver.owlapi; -import cz.cvut.kbss.ontodriver.model.*; +import cz.cvut.kbss.ontodriver.model.Assertion; +import cz.cvut.kbss.ontodriver.model.Axiom; +import cz.cvut.kbss.ontodriver.model.AxiomImpl; +import cz.cvut.kbss.ontodriver.model.NamedResource; +import cz.cvut.kbss.ontodriver.model.Value; import cz.cvut.kbss.ontodriver.owlapi.util.Procedure; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.MockitoAnnotations; import org.mockito.junit.jupiter.MockitoExtension; import java.net.URI; @@ -32,7 +35,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) public class OwlapiTypesTest { diff --git a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/connector/RepoConnection.java b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/connector/RepoConnection.java index e682b3efe..eeb483335 100644 --- a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/connector/RepoConnection.java +++ b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/connector/RepoConnection.java @@ -83,7 +83,7 @@ public interface RepoConnection extends Closeable, StatementExecutor, Wrapper { List getContexts() throws Rdf4jDriverException; /** - * Gets Rdf4j value factory. + * Gets an RDF4J value factory. * * @return {@link ValueFactory} */ diff --git a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ListHandler.java b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ListHandler.java index 39a7d4b3c..c6cf94596 100644 --- a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ListHandler.java +++ b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ListHandler.java @@ -147,13 +147,6 @@ IRI toRdf4jIri(java.net.URI uri) { } - static final class MergeResult { - final int i; - final Resource previous; - - MergeResult(int i, Resource node) { - this.i = i; - this.previous = node; - } + record MergeResult(int i, Resource previous) { } } diff --git a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ReferencedListHandler.java b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ReferencedListHandler.java index 062a1f662..579549bbf 100644 --- a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ReferencedListHandler.java +++ b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/ReferencedListHandler.java @@ -160,9 +160,9 @@ protected void mergeList(ReferencedListValueDescriptor listDescriptor) throws final ListIterator it = new ReferencedListIterator<>(listDescriptor, connector, vf); final ListHandler.MergeResult mergeResult = mergeWithOriginalList((ReferencedListValueDescriptor) listDescriptor, it); removeObsoletes(it); - assert mergeResult.i > 0; - assert mergeResult.previous != null; - if (mergeResult.i < listDescriptor.getValues().size()) { + assert mergeResult.i() > 0; + assert mergeResult.previous() != null; + if (mergeResult.i() < listDescriptor.getValues().size()) { appendNewNodes(listDescriptor, mergeResult); } } @@ -185,8 +185,8 @@ MergeResult mergeWithOriginalList(ReferencedListValueDescriptor listDescr void appendNewNodes(ReferencedListValueDescriptor listDescriptor, MergeResult mergeResult) throws Rdf4jDriverException { - int i = mergeResult.i; - Resource previous = mergeResult.previous; + int i = mergeResult.i(); + Resource previous = mergeResult.previous(); final IRI owner = owner(listDescriptor); final IRI hasNext = hasNext(listDescriptor); final IRI hasContent = hasContent(listDescriptor); diff --git a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/SimpleListHandler.java b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/SimpleListHandler.java index eff0e4e41..a487df917 100644 --- a/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/SimpleListHandler.java +++ b/ontodriver-rdf4j/src/main/java/cz/cvut/kbss/ontodriver/rdf4j/list/SimpleListHandler.java @@ -80,7 +80,7 @@ protected List createListRest(IRI head, SimpleListValueDescriptor lis } /** - * We are using this code instead of iterator.remove for performance reasons. The iterator has to reconnect the list + * We are using this code instead of {@code iterator.remove} for performance reasons. The iterator has to reconnect the list * for each removed node, which takes a lot of time. */ protected void clearList(SimpleListValueDescriptor listValueDescriptor) throws Rdf4jDriverException { @@ -106,9 +106,9 @@ protected void mergeList(SimpleListValueDescriptor listDescriptor) throws Rdf4jD final ListIterator it = iterator(listDescriptor); final ListHandler.MergeResult mergeResult = mergeWithOriginalList(listDescriptor, it); removeObsoletes(it); - assert mergeResult.i > 0; - assert mergeResult.previous != null; - if (mergeResult.i < listDescriptor.getValues().size()) { + assert mergeResult.i() > 0; + assert mergeResult.previous() != null; + if (mergeResult.i() < listDescriptor.getValues().size()) { appendNewNodes(listDescriptor, mergeResult); } } @@ -131,9 +131,9 @@ MergeResult mergeWithOriginalList(SimpleListValueDescriptor listDescriptor, List void appendNewNodes(SimpleListValueDescriptor listDescriptor, MergeResult mergeResult) throws Rdf4jDriverException { - int i = mergeResult.i; + int i = mergeResult.i(); final Collection toAdd = new ArrayList<>(listDescriptor.getValues().size() - i); - Resource previous = mergeResult.previous; + Resource previous = mergeResult.previous(); final IRI nextNode = toRdf4jIri(listDescriptor.getNextNode().getIdentifier()); final IRI context = context(listDescriptor); while (i < listDescriptor.getValues().size()) { From 52e7b76e180482c94a84381fb5d05e02fd0497f0 Mon Sep 17 00:00:00 2001 From: Martin Ledvinka Date: Tue, 30 Jun 2026 10:21:20 +0200 Subject: [PATCH 6/6] [2.10.1] Bump version, update changelog. --- CHANGELOG.md | 5 +++++ datatype/pom.xml | 2 +- jopa-api/pom.xml | 2 +- jopa-distribution/pom.xml | 2 +- jopa-impl/pom.xml | 2 +- jopa-integration-tests-jena/pom.xml | 2 +- jopa-integration-tests-owlapi/pom.xml | 2 +- jopa-integration-tests-rdf4j/pom.xml | 2 +- jopa-integration-tests-virtuoso/pom.xml | 2 +- jopa-integration-tests/pom.xml | 2 +- jopa-maven-plugin/pom.xml | 2 +- jopa-owl2java/pom.xml | 2 +- jopa-owlapi-utils/pom.xml | 2 +- modelgen/pom.xml | 2 +- ontodriver-api/pom.xml | 2 +- ontodriver-jena/pom.xml | 2 +- ontodriver-owlapi/pom.xml | 2 +- ontodriver-rdf4j/pom.xml | 2 +- ontodriver-virtuoso/pom.xml | 2 +- pom.xml | 2 +- 20 files changed, 24 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 216f298d4..479105f59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # JOPA - Change Log +### 2.10.1 - 2026-06-30 + +- Allow ordering by entity identifier in SOQL (Bug #439). +- Dependency updates: RDF4J 5.3.2. + ### 2.10.0 - 2026-05-29 - Support optimizing entity loading from query result by using [fetch graphs](https://github.com/kbss-cvut/jopa/wiki/Performance#fetch-graph-based-entity-loading) (Enhancement #425, #431, #434). diff --git a/datatype/pom.xml b/datatype/pom.xml index 7471a4449..c729a0529 100644 --- a/datatype/pom.xml +++ b/datatype/pom.xml @@ -6,7 +6,7 @@ jopa-all cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 ../pom.xml diff --git a/jopa-api/pom.xml b/jopa-api/pom.xml index de6e3cb80..26e12414a 100644 --- a/jopa-api/pom.xml +++ b/jopa-api/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/jopa-distribution/pom.xml b/jopa-distribution/pom.xml index a3a98f345..e1294828b 100644 --- a/jopa-distribution/pom.xml +++ b/jopa-distribution/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/jopa-impl/pom.xml b/jopa-impl/pom.xml index c8a8b6fce..4912214e2 100644 --- a/jopa-impl/pom.xml +++ b/jopa-impl/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/jopa-integration-tests-jena/pom.xml b/jopa-integration-tests-jena/pom.xml index 7991c944a..4fc7865f3 100644 --- a/jopa-integration-tests-jena/pom.xml +++ b/jopa-integration-tests-jena/pom.xml @@ -5,7 +5,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml 4.0.0 diff --git a/jopa-integration-tests-owlapi/pom.xml b/jopa-integration-tests-owlapi/pom.xml index 87361ee5b..5640206da 100644 --- a/jopa-integration-tests-owlapi/pom.xml +++ b/jopa-integration-tests-owlapi/pom.xml @@ -5,7 +5,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml 4.0.0 diff --git a/jopa-integration-tests-rdf4j/pom.xml b/jopa-integration-tests-rdf4j/pom.xml index 6b29370b6..6af4babe8 100644 --- a/jopa-integration-tests-rdf4j/pom.xml +++ b/jopa-integration-tests-rdf4j/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml jopa-integration-tests-rdf4j diff --git a/jopa-integration-tests-virtuoso/pom.xml b/jopa-integration-tests-virtuoso/pom.xml index 686a042f4..5dd53b300 100644 --- a/jopa-integration-tests-virtuoso/pom.xml +++ b/jopa-integration-tests-virtuoso/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 jopa-integration-tests-virtuoso diff --git a/jopa-integration-tests/pom.xml b/jopa-integration-tests/pom.xml index bd076a8d2..7221bca0f 100644 --- a/jopa-integration-tests/pom.xml +++ b/jopa-integration-tests/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml 4.0.0 diff --git a/jopa-maven-plugin/pom.xml b/jopa-maven-plugin/pom.xml index 6f127dc49..59d68d92c 100644 --- a/jopa-maven-plugin/pom.xml +++ b/jopa-maven-plugin/pom.xml @@ -5,7 +5,7 @@ jopa-all cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 ../pom.xml 4.0.0 diff --git a/jopa-owl2java/pom.xml b/jopa-owl2java/pom.xml index b422aa4d6..8978a5ea8 100644 --- a/jopa-owl2java/pom.xml +++ b/jopa-owl2java/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/jopa-owlapi-utils/pom.xml b/jopa-owlapi-utils/pom.xml index 564c64e68..a753b7ba3 100644 --- a/jopa-owlapi-utils/pom.xml +++ b/jopa-owlapi-utils/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/modelgen/pom.xml b/modelgen/pom.xml index 0b864bc15..6e1ae39fb 100644 --- a/modelgen/pom.xml +++ b/modelgen/pom.xml @@ -6,7 +6,7 @@ jopa-all cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 ../pom.xml diff --git a/ontodriver-api/pom.xml b/ontodriver-api/pom.xml index d77f3c157..08539c3a6 100644 --- a/ontodriver-api/pom.xml +++ b/ontodriver-api/pom.xml @@ -6,7 +6,7 @@ jopa-all cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 ../pom.xml diff --git a/ontodriver-jena/pom.xml b/ontodriver-jena/pom.xml index 564c7ef57..15b9d5214 100644 --- a/ontodriver-jena/pom.xml +++ b/ontodriver-jena/pom.xml @@ -8,7 +8,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/ontodriver-owlapi/pom.xml b/ontodriver-owlapi/pom.xml index b4c73de42..66cf424f1 100644 --- a/ontodriver-owlapi/pom.xml +++ b/ontodriver-owlapi/pom.xml @@ -11,7 +11,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ../pom.xml diff --git a/ontodriver-rdf4j/pom.xml b/ontodriver-rdf4j/pom.xml index 0b9af9a03..f33f27bf9 100644 --- a/ontodriver-rdf4j/pom.xml +++ b/ontodriver-rdf4j/pom.xml @@ -10,7 +10,7 @@ jopa-all cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 diff --git a/ontodriver-virtuoso/pom.xml b/ontodriver-virtuoso/pom.xml index ce5523947..3471e3294 100644 --- a/ontodriver-virtuoso/pom.xml +++ b/ontodriver-virtuoso/pom.xml @@ -6,7 +6,7 @@ cz.cvut.kbss.jopa jopa-all - 2.10.0 + 2.10.1 ontodriver-virtuoso diff --git a/pom.xml b/pom.xml index ff455fe71..6fba3aea2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 cz.cvut.kbss.jopa - 2.10.0 + 2.10.1 jopa-all pom JOPA