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

Merge jnosql-communication-driver and jnosql-mapping-extension repositories into a single module[Proposal] #353

Closed
otaviojava opened this issue Mar 29, 2023 · 5 comments

Comments

@otaviojava
Copy link
Member

This issue combines each database's communication and mapping layer into a single maven module.

Current Scenario:

Currently, JNoSQL has two repositories, jnosql-mapping-extension, and jnosql-communication-driver. Users must add two dependencies to their project to use both layers, which requires breaking the bounded context. Additionally, having separate repositories causes code design synchronization issues.

<dependency>
  <groupId>org.eclipse.jnosql.mapping</groupId>
  <artifactId>jnosql-mongodb-extension</artifactId>
  <version>1.0.0-b6</version>
</dependency>
<dependency>
  <groupId>org.eclipse.jnosql.communication</groupId>
  <artifactId>jnosql-mongodb-driver</artifactId>
  <version>1.0.0-b6</version>
</dependency>

Proposal:

We propose merging the two repositories into a single maven project so that the driver will have communication and mapping layers. This change will require users to add only one dependency instead of two, making it easier for them to use the framework. Additionally, we will add integration tests to both layers, and every time we modify the driver, we will adjust the mapping once both are on the same maven project. From the code perspective, it should be fine for the final user, as we will keep the same package name. However, it will impact the maven dependency perspective.

From this new perspective, the user will only need one:

<dependency>
  <groupId>org.eclipse.jnosql.databases</groupId>
  <artifactId>jnosql-mongodb</artifactId>
  <version>1.0.0-b6</version>
</dependency>

Impact:

We must also rename the driver repository to something generic, such as "jnosql-databases." This change will require updating the documentation and notifying users of the breaking change. The most significant impact of this change will be on the code design perspective for the engineering team and the maven dependency change.

Task:

To make the change easier to manage, we propose moving extension by extension to the driver instead of making a considerable pull request. Additionally, we must update and bring the documentation to the same repository. After the final merge, we will leave only the metamodel module on the JNoSQL extension. We will also update the breaking change documentation and request to rename the driver repository to something more generic.

⚠️ this won't impact the spec; it is only to the implementation.

@dearrudam
Copy link
Contributor

@otaviojava, IMHO, sounds like a good plan! I'm in! 👍

@mpredli01
Copy link
Contributor

This sounds good to me, @otaviojava!

@dearrudam
Copy link
Contributor

@otaviojava, may I help you with it?

@otaviojava
Copy link
Member Author

Yes, you can, Max.
I'll wait until today, March 31. If there is not an objection, we can move it forward.

@otaviojava
Copy link
Member Author

Once there is no objection, let's start.
I'll create an Issue task for this proposal.

@otaviojava otaviojava changed the title Merge jnosql-communication-driver and jnosql-mapping-extension repositories into a single module Merge jnosql-communication-driver and jnosql-mapping-extension repositories into a single module[Proposal] Apr 1, 2023
@otaviojava otaviojava added this to the 1.0.0-b7 milestone Apr 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants