Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.x Eclipse Store integration #8269

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

hrstoyanov
Copy link
Contributor

@hrstoyanov hrstoyanov commented Jan 19, 2024

Description

Add Eclipse Store support to Helidon.

Eclipse Store is the successor of Microstream, both of which will be available in Helidon 4.x (once this request is merged) enabling smooth transition.

This pull request targets Eclipse Store 1.2.0 and upgrades Microstream to 08.01.02-MS-GA

Documentation

The official Eclipse Store documentation can be found here.

If no doc impact: None

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Jan 19, 2024
@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Jan 19, 2024

@fh-ms @zdenek-jonas - this is the DRFAT merge request. ^^^^

Question for the Helidon team:
If Eclipse Store 1.1.0 is released in about 2 weeks, in which version of Helidon 4.x will you be able to merge this extension in?

@hrstoyanov hrstoyanov changed the title [DRAFT] Eclipse store integration [DRAFT] Helidon 4.x Eclipse store integration Jan 24, 2024
@fh-ms
Copy link

fh-ms commented Jan 26, 2024

EclipseStore 1.1.0 is available.

@hg-ms and I did a code review. Looks good for us.

@hrstoyanov hrstoyanov changed the title [DRAFT] Helidon 4.x Eclipse store integration Helidon 4.x Eclipse store integration Jan 26, 2024
@hrstoyanov
Copy link
Contributor Author

Thank you @fh-ms and @hg-ms for reviewing the code! The only additional commit I did was to change the versions to 1.1.0
from 1.1.0-SNAPSHOT, as per the Eclipse Store/Serializer official releases.

@tjquinno @ljnelson @barchetta
This pull request is now ready for your consideration - I removed [DRAFT] from the title and changed the description a bit.

Any clue in which Helidon version it could be included, assuming we missed the 4.0.4 train?

@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Feb 3, 2024

@fh-ms
Please review the latest commit:

  • deprecate MicroStream, invite users to switch to Eclipse Store.
  • better module definitions.
  • compiler warnings addressed.

@hrstoyanov hrstoyanov changed the title Helidon 4.x Eclipse store integration 4.x Eclipse store integration Feb 7, 2024
@hrstoyanov hrstoyanov changed the title 4.x Eclipse store integration 4.x Eclipse Store integration Feb 23, 2024
@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Feb 23, 2024

@fh-ms @zdenek-jonas. Please review the latest Eclipse Store 1.2.0 upgrade to this pull request.

A couple of things:

  • I added @Aot to the metadata in the module definitions (same as @Aot(true)) to signify that in a GraalVM compile of an Helidon app, it is safe to include Exclipe Store 1.2.0. If EclipseStore 1.2.0 is not aot-compile safe, we need to set it back to @Aot(false) in the ES integrations module definitions.

  • I wonder what is the value of Eclipse Store Cache integration - javax.cache API has not even been moved to jakarta namespace, neither has anyone bothered to modularize it, doubt anyone uses it. It causes compiler warning due to automatic modules, etc.

@hg-ms
Copy link
Contributor

hg-ms commented Feb 29, 2024

@fh-ms @zdenek-jonas. Please review the latest Eclipse Store 1.2.0 upgrade to this pull request.

I did a review of the EclipseStore specific parts, everything is ok from our side.

Regarding Aot support: it should work but requires additional user actions because all user defined classes that are going to be persisted must be accessible by reflections. I’d suggest to add a description to @aot documenting this.

As we don’t have a replacement for the javax.cache API we need to live with that.

@hrstoyanov

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

@romain-grecourt

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

@romain-grecourt

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

@romain-grecourt

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

@romain-grecourt

This comment was marked as resolved.

@hrstoyanov

This comment was marked as resolved.

Copy link
Contributor

@romain-grecourt romain-grecourt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add an example ?

import static org.hamcrest.MatcherAssert.assertThat;

// TODO disabled
@Disabled
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this test disabled ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The equivalent Microstream test was disabled om 9/5/2023 by Tim Quinn. I will test if it can be re-enabled .

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will add examples, but a bit later tonight

@hrstoyanov
Copy link
Contributor Author

@romain-grecourt plese review the new commits/ run the pipeline.

@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Mar 19, 2024

@romain-grecourt assuming we square away all little things today, what is a realistic date where this merge can be relased as part of an official Helidon - 4.0.7? 4.1.0? This pull request is 3 months old already.

@tomas-langer
Copy link
Member

Thanks for this contribution. We are now making some decisions regarding the timing. I want to spend some time on this to use our new Builder APIs and do a bit of Helidon alignment, will let you know asap

@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Mar 20, 2024

@tomas-langer thanks! Depending on my time availability (mostly my free time), I would also be making some final code review for this contribution (particularly whether I implemented correctly all ES 1.2.0 config options), so no rush ...

@hrstoyanov
Copy link
Contributor Author

hrstoyanov commented Mar 20, 2024

@fh-ms @zdenek-jonas - I noticed that EclipseStore 1.3.1 came out yesterday. And siince this pull request is still not approved yet, maybe it is better to upgrade it to EclipseStore 1.3.1 anyway?

I also noticed that EclipseStore 1.3.1 provides CDI4 integration now "out-of-the-box". This potentially means that Helidon MicroProfile (MP) will no longer need the CDI and Cache modules, and they can be removed - do you agree? My only gripe with the new ES 1.3.1 CDI and Cache code is that it is missing module-info.java - any chance that can be fixed quickly?

@romain-grecourt @tomas-langer - please refrain from merging this pull request just yet, until we hear from the Microstream team - at the very least we need to upgrade from 1.2.0 to 1.3.1

@fh-ms
Copy link

fh-ms commented Mar 21, 2024

An update to 1.3.1 makes sense due to an adjustment for Java 22.

We still have to test the CDI stuff with Helidon properly, and maybe we find a way to add the module-infos there, so we should wait until we remove the modules.

@tomas-langer
Copy link
Member

Regarding CDI integration - I think the Helidon MP integration is not "just" CDI, but it should also support MP Config as a source of configuration data. If that is the case, it may still be useful. If not, then I agree it can be removed and we can use the built-in CDI integration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Verified All contributors have signed the Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants