Skip to content

Releases: kit-data-manager/ro-crate-java

v2.1.0-rc2

22 May 10:27
cde7c63
Compare
Choose a tag to compare
v2.1.0-rc2 Pre-release
Pre-release

Highlights 🚀

While we avoid breaking the API except for major versions, you may notice that you may need to do some little changes this time. This is because of fixes which inherently required this. But the fix on your side should be easy. In most cases you'll need to catch a possible exception when reading or writing crates and it should work again. Please tell us soon if something does not work for you!

  • Support .ELN-style crates in all zip readers and writers by @Pfeil in #258
    • 📓We now support zip files which contain the crate not directly, but have a subfolder instead. This is one of the properties of the .ELN specification.
    • 🤐 Our Zip (and ZipStream) reader will search for this implicitly, so nothing has to be changed from your side to make it work. For readers, we think this makes reading simply more reliable. Note that we do not search the whole zip file for a crate but just in the first hierarchy of subfolders. We expect only one subfolder, but to work with edge cases, ro-crate-java will consider a few more. This works around hidden thumbnail folders and other unexpected properties.
    • ✍🏼 Our Zip (and ZipStream) writer strategies have according configuration methods to make them create such files: usingElnStyle() and withRootSubdirectory() do the exact same thing, just with different naming. Some may search for ELN functionality, others just want a subfolder. For ro-crate-java this is currently the same thing.
  • Make specification examples (from readme) executable by @Pfeil in #256
    • 📄✅ Some of the examples in our guide did not work properly any more. To avoid this in future, we moved them to unit tests, where they are executable and tested. The readme now points to these examples.
  • 🔧 Note, we also fixed a few bugs (see below). See if you are affected and consider updating to the release candidate to validate the fixes! 💛

Other

  • chore(deps): update jacksonversion to v2.19.0 by @renovate in #248
  • chore(deps): update dependency gradle to v8.14 by @renovate in #250
  • chore(deps): update dependency gg.jte:jte to v3.2.1 by @renovate in #249
  • Fix adding id property duplicates by @Pfeil in #257
  • fix: enforce correct subfolder name for additional files in StaticPreview.saveAllToStream by @Pfeil in #261
  • Next Version (v2.1.0-rc2) by @Pfeil in #255

Full Changelog: v2.1.0-rc1...v2.1.0-rc2

v2.1.0-rc1

29 Apr 19:03
Compare
Choose a tag to compare
v2.1.0-rc1 Pre-release
Pre-release

Highlights

These highlights are the reason for the release candidate. Please give feedback if you experience something unexpected (and also if it works fine for you, if you like). Thanks!

Generalize reading and writing crates by @Pfeil (based on the work of @ThomasJejkal) in #247

We deprecated the old interfaces in favour of newer, generic ones. You are now able to implement readers which read/write from/to any type of location/destination. As an example, we also provide a ZipStreamReader (and Writer) which targets streams, so you do not need to store your crate on disk before sending it around!

Fix renaming of data set entities by @Pfeil in #253

We noticed there was a bug in the Zip export of DataSetEntity if you set an ID different to the file's filename. If this makes you feel you might have been affected, have a look at #254. It is now fixed, and all Writers are tested for correctness (not only the folder writer) in the same way.

All Changes

  • Point to latest release in README by @fpotier in #234
  • chore(deps): update dependency com.github.fslev:json-compare to v7 by @renovate in #236
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.13.1 by @renovate in #235
  • chore(deps): update dependency font-awesome to v6 by @renovate in #239
  • chore(deps): update dependency font-awesome to v6 by @renovate in #240
  • chore(deps): update dependency org.junit:junit-bom to v5.12.2 by @renovate in #243
  • chore(deps): update dependency commons-io:commons-io to v2.19.0 by @renovate in #244
  • Fix #241: Getting key value pairs from the context by @Pfeil in #245
  • Generalize reading and writing crates by @Pfeil (based on the work of @ThomasJejkal) in #247
  • Fix renaming of data set entities by @Pfeil in #253
  • Version 2.1.0 by @Pfeil in #233

Full Changelog: v2.0.2...v2.1.0-rc1

v2.0.2

14 Mar 17:58
e124705
Compare
Choose a tag to compare

This is a maintenance and bugfix release.

A big thank you to @fpotier for reporting issues and contributing to the code!

Fixes

  • Fix addEntities() and addFromCollection() generic parameter by @fpotier in #225
  • Fix #226 allow arrays of literals as property values by @Pfeil in #231

Dependencies

  • chore(deps): update dependency jacoco to v0.8.12 by @renovate in #202
  • chore(deps): update dependency gradle to v8.10.2 by @renovate in #203
  • chore(deps): update dependency gradle to v8.11 by @renovate in #205
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.11 by @renovate in #207
  • chore(deps): update dependency commons-io:commons-io to v2.18.0 by @renovate in #209
  • chore(deps): update dependency gradle to v8.11.1 by @renovate in #208
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.4 by @renovate in #210
  • chore(deps): update jacksonversion to v2.18.2 by @renovate in #211
  • chore(deps): update dependency gradle to v8.12 by @renovate in #213
  • chore(deps): update dependency org.junit:junit-bom to v5.11.4 by @renovate in #212
  • chore(deps): update plugin net.researchgate.release to v3.1.0 by @renovate in #214
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.5 by @renovate in #217
  • chore(deps): update dependency org.slf4j:slf4j-jdk14 to v2.0.17 by @renovate in #224
  • chore(deps): update dependency org.junit:junit-bom to v5.12.0 by @renovate in #223
  • chore(deps): update dependency com.networknt:json-schema-validator to v1.5.6 by @renovate in #222
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.5.0 by @renovate in #220
  • chore(deps): update dependency gradle to v8.13 by @renovate in #219
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.12.2 by @renovate in #218
  • chore(deps): update dependency org.junit:junit-bom to v5.12.1 by @renovate in #232
  • chore(deps): update jacksonversion to v2.18.3 by @renovate in #227
  • chore(deps): update plugin io.freefair.maven-publish-java to v8.13 by @renovate in #228
  • chore(deps): update dependency com.apicatalog:titanium-json-ld to v1.6.0 by @renovate in #229
  • PR for v2.0.2 by @ThomasJejkal in #204

New Contributors

Full Changelog: v2.0.1...v2.0.2

v2.0.1

04 Nov 15:56
Compare
Choose a tag to compare

Maintenance release.

What's Changed

  • build(deps): bump com.networknt:json-schema-validator from 1.5.1 to 1.5.2 by @dependabot in #192
  • build(deps): bump commons-io:commons-io from 2.16.1 to 2.17.0 by @dependabot in #191
  • build(deps): bump com.github.fslev:json-compare from 6.15 to 6.16 by @dependabot in #190
  • build(deps): bump org.junit:junit-bom from 5.11.0 to 5.11.1 by @dependabot in #195
  • build(deps): bump com.github.fslev:json-compare from 6.16 to 6.18 by @dependabot in #193
  • build(deps): bump jacksonVersion from 2.17.2 to 2.18.0 by @dependabot in #194
  • build(deps): bump io.freefair.maven-publish-java from 8.10 to 8.10.2 by @dependabot in #196
  • build(deps): bump org.junit:junit-bom from 5.11.1 to 5.11.2 by @dependabot in #197
  • fix: adjust expected data to changed external data by @Pfeil in #201
  • build(deps): bump com.networknt:json-schema-validator from 1.5.2 to 1.5.3 by @dependabot in #200
  • build(deps): bump jacksonVersion from 2.18.0 to 2.18.1 by @dependabot in #199
  • build(deps): bump org.junit:junit-bom from 5.11.2 to 5.11.3 by @dependabot in #198

Full Changelog: v2.0.0...v2.0.1

v2.0.0

13 Sep 14:06
Compare
Choose a tag to compare

With this major release, it will be easier to describe your data in some cases. The integration of ro-crate-java into your application will be easier if you use the ZipReader. Some APIs have slightly changed in order to avoid the accidental creation of invalid crates in some cases. All known bugs are now fixed and everything complies, to our knowledge, to the specification. Here are some changes we want to highlight in order to help with migration. Please refer to the Javadoc for details.

Highlights 🚀

The ZipReader is now customizable

The ZipReader unpacks the zip file into a temporary folder in order to access the files inside. This folder is, by default, located in the location where the application using ro-crate-java runs in. This can now be customized using a new ZipReader constructor. The default path also changed slightly in order to avoid collisions.

By default, the temporary folders are being removed if the Java Virtual Machine stops running. If you have a long-running application or want to manage space manually, you can now get all information to do this using getter-Methods within the ZipReader class.

Take a look into the ZipReader documentation for details.

Avoid false-positive warnings if a term is not defined in the context

We do now support full URIs which do not need to be defined in the context, as well as the @id and @json values for the @type attribute. This way you should in practice get less warnings which you could have ignored anyway.

Detect all data entities as such

When adding a data entity using ro-crate-java, we implicitly connect it to the root data entity using the hasPart property. It is up to the user to make more connections, but this is one we currently enforce, to ensure this is recognized as a data entity. If you have the need to handle this differently, please open an issue. When reading crates, we made the same assumption: that the crate will have all data entities in the hasPart property. In practice, this may not be the case. We now traverse the graph consisting of hasPart (and isPartOf) properties in order to find all data entities. When you now use crate.getAllDataEntities() and crate.getAllContextEntities(), you may get slightly different (meaning correct) results.

Encoded file paths now work as defined in the specification

We now support encoded file paths and encode them for you without any additional line of code on your side. We used the examples from the specification to ensure maintaining readability, if possible, and only fully encode when all our heuristics did not work out. This will usually keep most characters readable, like Kanji and others.

Easier provenance descriptions using the ActionEntityBuilder

We now provide an ActionEntityBuilder in order to make it easy to describe the provenance of your data.

Transition guide: renamed addContent to setLocation

The function addContent for data entities has been modified and renamed. The new name is setLocation and setLocationWithExceptions:

  • The "set" prefix implies that calling the function a second time will override the first call.
  • The "Location" instead of "Content" reflects that the input is a pointer to the content location.
  • The function takes only one parameter, which is the location. The id parameter has been dropped. If no ID is present in beforehand, it will be derived from the file name within the given path. If not, it remains unchanged. See the documentation for details. To set the ID explicitly before or after the call, you can use setId as before. This change was to remove redundant functionality.

If you have any feedback for this or other changes, feel free to open an issue.

What's Changed

  • fix: RootDataEntity identifier is not allowed for other entities. by @Pfeil in #185
  • Fix handling of possible loops in data graphs by @Pfeil in #187
  • Fix invalid context check warnings by @Pfeil in #188
  • Unpack zipped crates into unique temporary folder by @Code42Cate in #83

Full Changelog (since v2.0.0-rc4): v2.0.0-rc4...v2.0.0

Full Changelog (since v1.1.0): v1.1.0...v2.0.0

v2.0.0-rc4

04 Sep 14:59
Compare
Choose a tag to compare
v2.0.0-rc4 Pre-release
Pre-release

Another small set of breaking changes. Please try it out and crate an issue if it works for you.

What's Changed

⚡ Highlights

  • More ergonomic and consistent ActionEntityBuilder by @Pfeil in #178
  • Avoid the use of lists in APIs and replace them with appropriate interfaces. by @Pfeil in #183
  • Avoid adding dataEntities which are not being added to the root data entity by @Pfeil in #184

🛠️ Maintenance

  • build(deps): bump com.networknt:json-schema-validator from 1.1.0 to 1.5.1 by @dependabot in #165
  • build(deps): bump gradle/wrapper-validation-action from 1 to 3 by @dependabot in #166
  • build(deps): bump jacksonVersion from 2.16.1 to 2.17.2 by @dependabot in #167
  • build(deps): bump com.apicatalog:titanium-json-ld from 1.3.3 to 1.4.1 by @dependabot in #168
  • build(deps): bump org.slf4j:slf4j-jdk14 from 2.0.9 to 2.0.13 by @dependabot in #169
  • build(deps): bump org.junit:junit-bom from 5.9.1 to 5.10.3 by @dependabot in #170
  • build(deps): bump gradle/gradle-build-action from 2 to 3 by @dependabot in #149
  • build(deps): bump com.github.fslev:json-compare from 6.13 to 6.15 by @dependabot in #175
  • build(deps): bump gradle/actions from 3 to 4 by @dependabot in #176
  • build(deps): bump org.junit.jupiter:junit-jupiter-params from 5.0.0-M4 to 5.11.0-RC1 by @dependabot in #172
  • build(deps): bump commons-validator:commons-validator from 1.8.0 to 1.9.0 by @dependabot in #173
  • build(deps): bump commons-io:commons-io from 2.15.1 to 2.16.1 by @dependabot in #174
  • Review identifier encoding by @Pfeil in #171
  • build(deps): bump io.freefair.maven-publish-java from 8.6 to 8.7.1 by @dependabot in #180
  • build(deps): bump org.junit:junit-bom from 5.10.3 to 5.11.0 by @dependabot in #181
  • build(deps): bump org.slf4j:slf4j-jdk14 from 2.0.13 to 2.0.16 by @dependabot in #179
  • build(deps): bump io.freefair.maven-publish-java from 8.7.1 to 8.10 by @dependabot in #182

Full Changelog: v2.0.0-rc3...v2.0.0-rc4

v2.0.0-rc3

11 Jul 08:04
16f82e3
Compare
Choose a tag to compare
v2.0.0-rc3 Pre-release
Pre-release

Highlight 🚀

This release contains some fixes.

What's Changed

  • Fix in ZIP Reader

v2.0.0-rc2

19 Jun 11:13
Compare
Choose a tag to compare
v2.0.0-rc2 Pre-release
Pre-release

Highlight 🚀

This release contains some fixes. Refactoring is also done.

What's Changed

  • Fix #6 : both properties license and datePublish are added to the root data entity
  • Fix #5 : encoding and decoding of file paths are fixed.
  • setId() and setSource() methods are no more available. The new method addContent() is implemented to add content (files, directories, urls,..) to a data entity.
  • Appropriate tests are fixed
  • Added support for provenance entities
  • Added removeProperty functionality

v2.0.0-rc1

25 Mar 13:57
Compare
Choose a tag to compare
v2.0.0-rc1 Pre-release
Pre-release

Highlight 🚀

This release contains some fixes. Refactoring is also done.

What's Changed

  • Fix #4 : both properties license and datePublish are added to the root data entity
  • Fix #5 : encoding and decoding of file paths are fixed.
  • setId() and setSource() methods are no more available. The new method addContent() is implemented to add content (files, directories, urls,..) to a data entity.
  • Appropriate tests are fixed.

v1.1.0

25 Jul 10:30
Compare
Choose a tag to compare

Highlight 🚀

This release is the stabilization of the release candidate, where we added an initial support for a feature of the 1.2-DRAFT specification of RO-Crate. It allows adding further profiles / specifications to the crate and reading/writing crates using this feature already.

While reading works basically like before, there is a new builder for functionalities which are not in a released specification yet, called the RoCrate.BuilderWithDraftFeatures. If you use a feature of 1.2-DRAFT, the version will be set internally accordingly. Besides this, everything should work as before, as our test coverage should ensure.

What's Changed

  • Fix #105: "multiple conformsTo values" by @Pfeil in #111
  • build(deps): bump com.networknt:json-schema-validator from 1.0.84 to 1.0.85 by @dependabot in #120
  • build(deps): bump com.networknt:json-schema-validator from 1.0.85 to 1.0.86 by @dependabot in #121
  • build(deps): bump org.junit:junit-bom from 5.9.3 to 5.10.0 by @dependabot in #123

Full Changelog: v1.0.7...v1.1.0