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

TCK Proposal for Jakarta NoSQL #164

Open
otaviojava opened this issue May 16, 2023 · 0 comments
Open

TCK Proposal for Jakarta NoSQL #164

otaviojava opened this issue May 16, 2023 · 0 comments
Labels

Comments

@otaviojava
Copy link
Contributor

otaviojava commented May 16, 2023

Context

TCK is an acronym for Technology Compatibility Kit, which comprises a series of tests that ensure a particular technology implementation is consistent with the corresponding specification. We aim to develop a TCK proposal design for Jakarta NoSQL, a Jakarta EE specification.

Challenges

  • Create a straightforward TCK to test with the Jakarta EE environment.
  • It is considering that the focus is on integrating Java/Spec and Data. That has considerable complexity, such as BASE vs. ACID, besides different types of NoSQL and particular behaviors.

Proposal:

  • What I have on my mind is to create a super simple TCK that needs feel requirements such as Jupiter and AssertJ.
  • Split the DI complexity out, using SPI instead of exploring inversion of Control as a supplier. Focus on Data-Driven design; once we're talking about mostly database integration with Jakarta EE.
  • Once we have four APIs (core, Key-value, column, document), it is easier for the user to do the same, thus including the TCK that it needs.
  • We'll explore the test guide that already does exist.
public void shouldInsert(Book book, Template template) {

assertThat(template.find(Book.class, book.id())).isEmpty();
template.insert(book);
assertThat(template.find(Book.class, book.id())).isPresent();
//more code here
}
}
@otaviojava otaviojava added the TCK label May 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant