- 🔒️ Apache Jena dependency was updated from v4.8 to v4.10. Some changes have a breaking nature. Addresses CVE CVE-2023-32200
- Apache Commons Lang 1 dependency was removed in favour of Apache Commons Lang 3. Addresses CVE-2025-48924
- Extended properties on resources now support arrays and any iterables as well as Link objects.
- Reified statements on extended properties are deserialized into a data structure that holds all reified statements.
- OSLC RDF graphs may now be deserialized into raw Jena Models (
Model.class) instead of Lyo POJOs for OSLC shapes. Store.rawUpdateQuery(String)allows making raw SPARQL UPDATE queries.
- 🧨 Migrated to Jena 6. JDK 21 is the baseline requirement. JSON-LD 1.1 is used instead of JSON-LD 1.0.
- 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.
ErrorandExtendedErrorclasses now extendAbstractResource, implementingIExtendedResource. This allows setting extended properties likedcterms:descriptionon 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.
- More stable construction of return URLs when approving OAuth 1 consumer keys
- Deprecate OslcQueryResult constructors that take a Response object. Use the new constructor accepting an InputStream instead.
- 🧨 Support for JDK 17 was removed. JDK 21 is the new baseline.
- 🧨
lyo-validationcould not be migrated to Jena 5 due to a dependency on SHACLex and was removed from the build. - Dependency to deprecated oslc4j-json4j-provider
- TRS Client no longer depends on Eclipse RDF4J. Helper methods for RDF4J were also removed.
- Any mentions of
lyo-releasesorlyo-snapshots. Use Maven Central only.
- Prevent stack overflow in JenaModelHelper when resource graph contains loops (#827, thanks to Benjamin Röhl and PTC for the contribution!)
- Client now picks the correct ResponseInfo object when an OSLC Query response contains multiple ResponseInfo objects.
- Lyo object-graph mapping (OGM) framework no longer registers duplicate classes when doing recursive scans.
This release does not contain security updates.
- Introducing capability to set the
servletUrito be used by theOAuthConfiguration - OSLC PROMCODE domain model and generated POJOs
- Support for additional request headers to
OslcQuery
- 🧨 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-jdk8dependency was replaced withkotlin-stdlibdue to Kotlin updates. - 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:acceptedByproperty (from String[0..1] to Resource[0..*]) - Changed scope of dependencies in
oauth-webappto avoid inclusion multiple times during runtime.
This release does not introduce deprecations.
- 🧨 Support for JDK 11 (and all versions below 17) is removed.
- 🧨 Support for Java EE and Jakarta EE 8 is removed.
This release does not contain bug fixes.
- The OSLC Config domain model was expanded.
- An
OSLC4JUtils::isWellFormedmethod was added to help check the validity of strings as valid XML literals when the inputs are supposed to be used on properties of therdf:XMLLiteraltype. Warning: this method is quite slow, especially if a resource contains 10s or 100s of such values. We recommend to use this method only in tests.
- Consistently save Credentials, Connector & admin_session values under session attribute, in the oauth-core AbstractAdapterCredentialsFilter class.
- Apache Jena depency was updated from 4.5.0 to 4.8.0 due to CVE-2023-22665.
- OSLC Domains are based on latest LyoDesigner, and for
lyoVersion="5.0.1-SNAPSHOT". - The
oslc4j-coreartifact (grouporg.eclipse.lyo.oslc4j.core) was refactored, extracting some essential model classes intolyo-core-modeland legacy Wink-dependent code intooslc4j-core-wink. This allows to eliminate all dependencies on Wink. Also, applications that don't needoslc4j-core, can eliminate the dependency on JAX-RS by replacing your dependency onoslc4j-corewithlyo-core-model. No breaking changes were made. JenaModelHelperwas moved tooslc4j-core, whileJsonHelperwas moved tooslc4j-core-wink. No breaking changes were made, old package names were kept. See #292OSLC4JConstantsandOSLC4JUtilswere extracted fromoslc4j-coretoorg.eclipse.lyo.oslc4j.server:lyo-core-settingsas they are only useful in the JAX-RS server-side scenarios. No breaking changes were made, becauseoslc4j-corestill depends on the newly introduced artifact.
- The newly refactored artifact
oslc4j-core-winkis deprecated.
- A regression is fixed where
org.eclipse.lyo.oslc4j.provider.jena.OslcRdfXmlProvidercould try to unmarshal an Array or a Collection, which would interfere with the application of the suitable providers when the RDF input is correct. - PR 260 fixed the bug in
ResourcePackages.getMostConcreteClassOfthat could trigger the error "Multiple classes, not in the same inheritance tree, are annotated to map the same RDF:type".
The release was yanked due to a problem with the publication of release artifacts to Maven Central. Please use 5.1.1.Final instead.
- LyoStore: Providing a system property
OSLC4JUtils.hasLyoStorePagingPreciseLimit()to allow the application to check whether query paging should return an exact number of elements in a paged query, or not (OSLC4JConstants.LYO_STORE_PAGING_PRECISE_LIMIT). - SRI hashes for JS libraries.
- Addresses a security vulnerability (CVE-2021-41042), which could lead to external resource loading using a maliciously crafted RDF/XML input.
- 🧨 Lyo is now built using JDK 11
- 🧨 Jena is upgraded to 4.5.0 (addresses CVE-2022-28890)
- Jena renamed
RDFReader/RDFWritertoRDFReaderI/RDFWriterI
- Jena renamed
- 🧨 TRS now uses BigInteger instead of 32-bit ints for
trs:orderproperties, in line with the spec. - LyoStore: Ordering resources by their subject IDs when doing a query to store. This ordering can be disabled with a call to
OSLC4JUtils.setLyoStorePagingUnsafe(true) - LyoStore:
OSLC4JUtils.hasLyoStorePagingPreciseLimit()will return true by default. CallOSLC4JUtils.setLyoStorePagingPreciseLimit(false)to restore the old behavior. oslc4j-json4j-provideruseswink-json4jversion 1.4 instead of 1.2.1-incubating. -oauth - allow for the possibility to set the official servlet URL for all oauth requests being made. This is important to set correctly to compute the digital signature.OslcQueryResultwill now rethrow any encountered exceptions wrapped in aLyoModelExceptioninstead of throwing a blankedIllegalStateException.
IQueryGeneratoris deprecated and will be removed in Lyo 6
- 🧨 Support for JDK 8 was removed
- 🧨
oslc-java-clientwas removed lyo-validationtemporarily removed from the buildoslc4j-winkwas removedoslc4j-registrywas removed- Store support for direct TDB1 backend was removed. You can still create a SPARQL query executor over an in-mem TDB1 dataset:
new DatasetQueryExecutorImpl(TDBFactory.createDataset()). TrsUtil.historyDataToChangeEvent(deprecated since 4.0) was removed and replaced withchangeEventToHistoryData. Despite the name, thehistoryDataToChangeEventwas doing round-tripping betweenHistoryDataandChangeEventin both directions.
- Stack traces are no longer printed from OAuth services.
- [Core] Add a oslc:name and dcterms:description attributes to the ResourceShape class so that such information can appear in the shape documentation.
- [Core] Allow a resource shape to have a property to be represented as "inlined".
- [Domains] Add
org.eclipse.lyo.domains:ui-classesmodule with POJOs needed by lyo.oslc-ui. - [UI] Support for displaying inlined properties as links.
- [Store] Add interface support for closing the Store cleanly and releasing underlying connections.
- [Store] SparqlStoreImpl can now be set up with a custom query executor.
- [Store] For update requests, avoid creating a String out of the SPARQL query. This is very inefficient for large queries.
- [Validation] Update SHaclEX from 0.0.87 to 0.1.102 (mainly due to Bintray shutdown; breaking change but should not affect the consumers of Lyo Validation).
- SHaclEX 0.1.102 depends on Jena 3.16, which requires us to upgrade.
- Lyo Validation returns more messages in the reports. Make sure your code logic scans all messages the report if you are looking for a specific error.
- Update Kotlin from 1.4.20 to 1.5.10
- Update Eclipse Paho from 1.2.1 to 1.2.5 due to a potential security vulnerability.
- Pin libthrift version to 0.14.1 due to a vulnerability.
- Pin httpclient version to 4.5.13 due to a vulnerability.
- Pin embedded Tomcat version (pulled in by Jena) to 8.5.66 due to CVE-2021-25329.
N/A
- All references to HTTP-only repos due to a change in Maven 3.8.1
- [Client] Support for Configuration Management was first added in 2.4 and was accidentally removed during the monorepo migration and the 4.0 release. PR #205 adds this support back. Thanks to @isccarrasco!
- [TRS] Fix a few issues around rdf:nil handling in the TRS Client.
- Make sure every Lyo dependency uses the same version of Guava (30.0).
See changelog summary under https://github.com/eclipse/lyo/releases/tag/v4.0.0
- [Core] Support for abstract types by @neormx.
- [Client] Constants for OSLC version (
OSLCConstants#OSLC{2_0,2_1,3_0}) and a ctor argument for the newOslcClient. - [TRS/Server] Unit tests are added based on the Jersey test library and Grizzly embedded server.
- [Core] 🧨 Switch to JAX-RS 2.
- [Core] Only arrays returned from JAX-RS methods annotated with
@OslcQueryCapabilitywill be automatically treated as OSLC Query results unless the returned array type is annotated with the@OslcNotQueryResult(#88). - [Core] A checked
LyoJenaModelExceptionwas replaced with an uncheckedLyoModelException. - [Server]
HTTPConstantsis no longer a public class - [Server]
ServletListenerwas renamed toOAuthServletListener - [TRS/Server]
ChangeHistorieshas been extracted to thePagedTrsinterface and the implementing class has been renamed toInmemPagedTrs. - [TRS/Server]
TrackedResourceSetServiceis no longer abstract (still extendable).TrackedResourceSetServicesupports constructor dependency injection of theIChangeHistoriesinstance.- You can still extend it and override
getChangeHistories()returning an instance ofSimpleChangeHistoriesto get the same behaviour as in the earlier release.
- [TRS/Server]
TrackedResourceSetServicealways has a@Path("/trs")(because it's hardcoded in other places).
- [Core] JSON4J has been deprecated in 2.x but is kept to maintain backwards compatibility. Jena provider is recommended together with the JSON-LD to serve JSON to OSLC Clients.
- [Store]
JenaTdbStoreImplhas been lagging behind in functionality and will be deprecated in this release.StoreFactory#inMemoryandStoreFactory#onDiskare also deprecated as they rely on this implementation. UseSparqlStoreImpl#SparqlStoreImpl(JenaQueryExecutor)to pass aDatasetQueryExecutorImplinstance instead.
- [Core] Extra MIME type restrictions on top of the ones enforced by the JAX-RS framework (#22)
- [Core] Retired Apache Wink components.
- [Core] regression when
pathParameterValuesare not used (#66) - [Client] JEEFormAuthenticator catches ProcessingException when closing the connection from last redirect
Where is Lyo 3.0? There was a Lyo 3.0.0-SNAPSHOT development effort long time ago (after 2.1.0 but before 2.2.0), which has been since abandoned and merged into Lyo 2.2. Furthermore, next version of OSLC will be OSLC 3 and Lyo 3 might mislead users that it adds OSLC 3 support.
See release notes for further details.
- Update Apache Jena dependency to v3.6.0
- 🧨 Update Apache Jena dependency to v3.0.1. Breaking change in Jena package naming
com.hp.hpl.jena => org.apache.jena[JENA-192]
- Update Apache Jena dependency to v2.13.0
- Java 8 support
Not all components were released on Maven properly.
Initial release. Used Apache Jena 2.7.1
Template
This release does not contain security updates.
This release does not contain new features.
This release does not contain other significant changes.
This release does not introduce deprecations.
This release does not remove any features.
This release does not contain bug fixes.
See https://keepachangelog.com/en/1.0.0/ for more info.