Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
19abb90
feat: use Lyo Store in TRS Client
berezovskyi Aug 12, 2023
b4b2cd9
Merge branch 'master' into b-remove-rdf4j
berezovskyi Mar 22, 2025
2dccf52
Update pom.xml
berezovskyi Mar 22, 2025
3bbb256
Update pom.xml
berezovskyi Mar 22, 2025
05b87f0
fix: clean up imports
berezovskyi Mar 22, 2025
2c248f2
Merge branch 'master' into b-remove-rdf4j
berezovskyi Jun 18, 2025
0218b18
chore: apply spotless
berezovskyi Jun 18, 2025
0f63a0b
wip: expand tests
berezovskyi Jun 21, 2025
810557b
Merge branch 'master' into b-remove-rdf4j
berezovskyi Jul 16, 2025
2b7ca6d
fix: add StoreAccessException
berezovskyi Jul 16, 2025
a0ce090
chore: reformat
berezovskyi Jul 16, 2025
44be66f
test: fix broken
berezovskyi Jul 16, 2025
b867832
Merge branch 'master' into b-remove-rdf4j
berezovskyi Jul 21, 2025
dc84394
Merge branch 'master' into b-remove-rdf4j
berezovskyi Nov 2, 2025
6cc7741
Merge branch 'master' into b-remove-rdf4j
berezovskyi Nov 28, 2025
85f9e47
Merge branch 'master' into b-remove-rdf4j
berezovskyi Nov 28, 2025
ada772c
Merge branch 'master' into b-remove-rdf4j
berezovskyi Nov 29, 2025
3c61b4b
Merge branch 'master' into b-remove-rdf4j
berezovskyi Dec 13, 2025
a590440
Merge branch 'master' into b-remove-rdf4j
berezovskyi Dec 13, 2025
0a2e87e
Merge branch 'master' into b-remove-rdf4j
berezovskyi Dec 13, 2025
1f23a46
Merge branch 'master' into b-remove-rdf4j
berezovskyi Dec 20, 2025
ceae4cf
Merge branch 'master' into b-remove-rdf4j
berezovskyi Dec 20, 2025
985f5a8
Merge branch 'master' into b-remove-rdf4j
berezovskyi Jan 31, 2026
71b3713
Merge branch 'master' into b-remove-rdf4j
berezovskyi Jan 31, 2026
e0e2c7d
Merge branch 'master' into b-remove-rdf4j
berezovskyi Feb 6, 2026
e5668a3
Merge branch 'master' into b-remove-rdf4j
berezovskyi Feb 6, 2026
7dcacb5
Merge branch 'master' into b-remove-rdf4j
berezovskyi Feb 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 8 additions & 18 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- Lyo Validation now uses Jena's native support for SHACL instead of relying on ShaclEx
- InputStream is now the preferred interface for initializing OslcQueryResult
- RootServicesHelper can be initialized using an InputStream
- TRS Client uses Lyo Store instead of using Eclipse RDF4J directly.
- `Error` and `ExtendedError` classes now extend `AbstractResource`, implementing `IExtendedResource`. This allows setting extended properties like `dcterms:description` on OSLC error responses.
- InMemPagedTRS handles concurrency.
- When unmarshaling the RDF model, if OSLC4J_USE_BEAN_CLASS_FOR_PARSING is true, introduce a fallback mechanism to try to identify the rdf:type, if no match with the OSLC annotations is found.
Expand Down Expand Up @@ -47,34 +48,23 @@ This release does not contain security updates.

### Added

- Introducing capability to set the `servletUri` to be used by the `OAuthConfiguration`
- OSLC PROMCODE domain model and generated POJOs
- Support for additional request headers to `OslcQuery`
- Introducing capability to set the servletUri to be used by the OAuthConfiguration
- `Store.rawUpdateQuery(String)` allows making raw SPARQL UPDATE queries.

### Changed

- 🧨 Migrated from Java EE (`javax.` namespace) to Jakarta packages
- Upgrade to Jersey 3.1.5
- **JDK 17 is the new baseline for Eclipse Lyo.** The SDK and sample code has
been tested using JDK 17, 21, 23, and 24-ea.
- Kotlin 1.9.0 is used; `kotlin-stdlib-jdk8` dependency was replaced with
`kotlin-stdlib` due to
[Kotlin updates](https://kotlinlang.org/docs/whatsnew18.html#updated-jvm-compilation-target).
- Allow application to reset the OAuth token cached within the server, when it
deems that it is no longer valid
- 🧨 Corrected cardinality and range of the `oslc_config:acceptedBy` property (from
String[0..1] to Resource[0..*])
- Changed scope of dependencies in `oauth-webapp` to avoid inclusion multiple times
during runtime.
- Kotlin 1.9.0 is used; `kotlin-stdlib-jdk8` dependency was replaced with `kotlin-stdlib` due to [Kotlin updates](https://kotlinlang.org/docs/whatsnew18.html#updated-jvm-compilation-target).
- Allow application to reset the oauth token cached within the server, when it deems that it is no longer valid
- 🧨Corrected cardinality and range of the oslc_config:acceptedBy property (from String[0..1] to Resource[0..*])

### Deprecated

This release does not introduce deprecations.

### Removed

- 🧨 Support for JDK 11 (and all versions below 17) is removed.
- 🧨 Support for Java EE and Jakarta EE 8 is removed.
- 🧨 Support for JDK 11 (and all versions below 17) is removed. **JDK 17 is the new baseline for Eclipse Lyo.** The SDK and sample code has been tested using JDK 17, 20, and 21-ea.
- TRS Client no longer depends on Eclipse RDF4J. Helper methods for RDF4J were also removed.

### Fixed

Expand Down
83 changes: 56 additions & 27 deletions store/store-core/src/main/java/org/eclipse/lyo/store/Store.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
package org.eclipse.lyo.store;

import java.net.URI;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;

import org.apache.jena.arq.querybuilder.SelectBuilder;

/*
* Copyright (c) 2020 Contributors to the Eclipse Foundation
*
Expand All @@ -22,7 +11,15 @@
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
package org.eclipse.lyo.store;

import java.net.URI;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
import org.apache.jena.arq.querybuilder.SelectBuilder;
import org.apache.jena.rdf.model.Model;
import org.eclipse.lyo.oslc4j.core.model.IResource;

Expand Down Expand Up @@ -106,8 +103,7 @@ boolean insertResources(URI namedGraphUri, final Object... resources)
/**
* Retrieve a Jena {@link Model} for triples under the given subject from the corresponding named graph.
*/
Model getJenaModelForSubject(URI namedGraphUri, URI subject)
throws NoSuchElementException;
Model getJenaModelForSubject(URI namedGraphUri, URI subject) throws NoSuchElementException;

/**
* Retrieve the collection of {@link IResource} instances specified by the concrete
Expand Down Expand Up @@ -147,8 +143,9 @@ <T extends IResource> List<T> getResources(URI namedGraphUri, final Class<T> cla
* @throws ModelUnmarshallingException if the classes cannot be instantiated or another error
* occurred when working with Jena model.
*/
<T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz, int limit,
int offset) throws StoreAccessException, ModelUnmarshallingException;
<T extends IResource> List<T> getResources(
URI namedGraphUri, Class<T> clazz, int limit, int offset)
throws StoreAccessException, ModelUnmarshallingException;

/**
* Alternative to {@link Store#getResources(URI, Class)} with paging on the OSLC resource level.
Expand All @@ -168,9 +165,15 @@ <T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz, in
* @throws ModelUnmarshallingException if the classes cannot be instantiated or another error
* occurred when working with Jena model.
*/
<T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz,
String prefixes, String where, String searchTerms,
int limit, int offset) throws StoreAccessException, ModelUnmarshallingException;
<T extends IResource> List<T> getResources(
URI namedGraphUri,
Class<T> clazz,
String prefixes,
String where,
String searchTerms,
int limit,
int offset)
throws StoreAccessException, ModelUnmarshallingException;

/**
* Alternative to {@link Store#getResources(URI, Class, String, String, String, int, int)} with additional parameters for inlined resources.
Expand Down Expand Up @@ -219,10 +222,17 @@ <T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz,
* @param additionalDistinctVars
* @param additionalQueryFilter
*/
<T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz,
String prefixes, String where, String searchTerms,
int limit, int offset,
List<String> additionalDistinctVars, SelectBuilder additionalQueryFilter) throws StoreAccessException, ModelUnmarshallingException;
<T extends IResource> List<T> getResources(
URI namedGraphUri,
Class<T> clazz,
String prefixes,
String where,
String searchTerms,
int limit,
int offset,
List<String> additionalDistinctVars,
SelectBuilder additionalQueryFilter)
throws StoreAccessException, ModelUnmarshallingException;

/**
* Retrieve a Jena model that satisfies the given where parameter as defined in the OSLC Query
Expand Down Expand Up @@ -268,19 +278,31 @@ <T extends IResource> List<T> getResources(URI namedGraphUri, Class<T> clazz,
* @return a Jena {@link Model} with the less than or equal to {@code limit} resources.
*
*/
Model getResources(URI namedGraph, String prefixes, String where, String searchTerms, int limit, int offset);

Model getResources(
URI namedGraph,
String prefixes,
String where,
String searchTerms,
int limit,
int offset);

/**
* Alternative to {@link Store#getResources(URI, String, String, String, int, int)} with
* additional parameters for inlined resources.
*
* See {@link Store#getResources(URI, Class, String, String, String, int, int, List, SelectBuilder)}
* for an explanation of these additional parameters.

*
*/
Model getResources(URI namedGraph, String prefixes, String where, String searchTerms, int limit, int offset,
List<String> additionalDistinctVars, SelectBuilder additionalQueryFilter);
Model getResources(
URI namedGraph,
String prefixes,
String where,
String searchTerms,
int limit,
int offset,
List<String> additionalDistinctVars,
SelectBuilder additionalQueryFilter);

/**
* Retrieve a single {@link IResource} instance specified by the concrete
Expand Down Expand Up @@ -398,4 +420,11 @@ default <T extends IResource> boolean appendResource(URI namedGraphUri, final T
* @since 4.1.0
*/
void close();

/**
* Execute a raw SPARQL query against the UPDATE endpoint.
*
* @param finalQueryString
*/
void rawUpdateQuery(String finalQueryString) throws StoreAccessException;
}
Loading
Loading