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

Move RSocketFactory implementation to core sub-package to avoid dependencies from top-level package #770

Merged
merged 2 commits into from
Apr 9, 2020

Conversation

rstoyanchev
Copy link
Contributor

The top-level io.rsocket package is at the center of a large package cycle because it contains both high level abstractions, accessed by everything, and also core protocol implementations classes that access everything:

before

This change extracts interfaces for ClientRSocketFactory, ServerRSocketFactory, and ConnectionSetupPayload, and moves the core implementations into a sub-package without references to it from the top-level package. After the changes:

after

This isn't the end of it but it helps quite a bit while keeping the refactoring functionally neutral and backwards compatible.

@OlegDokuka OlegDokuka added this to the 1.0 milestone Apr 8, 2020
Copy link
Member

@OlegDokuka OlegDokuka left a comment

Choose a reason for hiding this comment

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

In general LGTM.

Proposed a couple of API Changes since we rework that.
Also, let's remove the deprecated API.

Also found in headers 2002-2020 but should be 2015-2020

rstoyanchev added a commit to rstoyanchev/rsocket-java that referenced this pull request Apr 9, 2020
See rsocketgh-770

Signed-off-by: Rossen Stoyanchev <[email protected]>
This commit extracts interfaces for ClientRSocketFactory,
ServerRSocketFactory, and ConnectionSetupPayload, and moves the
implementations into a sub-package with no references to it from the
top-level package.

This removes a large package cycle with io.rsocket at the center
of everything since it currently contains both high level
abstractions that (accessed by everything), as well as core protocol
implementations classes (accessing everything).

The refactoring is functionally neutral and backwards compatible.

Signed-off-by: Rossen Stoyanchev <[email protected]>
See rsocketgh-770

Signed-off-by: Rossen Stoyanchev <[email protected]>
@OlegDokuka OlegDokuka added refactorings Changes that does not affect API and behaviour and removed enhancement labels Apr 9, 2020
Copy link
Member

@OlegDokuka OlegDokuka left a comment

Choose a reason for hiding this comment

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

LGTM

@OlegDokuka OlegDokuka merged commit 29cd7bc into rsocket:develop Apr 9, 2020
@rstoyanchev rstoyanchev deleted the core-package branch April 9, 2020 11:38
@rstoyanchev rstoyanchev modified the milestones: 1.0, 1.0.0-RC7 Apr 17, 2020
@rstoyanchev rstoyanchev changed the title Reduce top-level package dependencies Move RSocketFactory implementation to core sub-package to avoid dependencies from top-level package Apr 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactorings Changes that does not affect API and behaviour
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants