Skip to content

Comments

Rework jetty server implementation#2301

Merged
ihrasko merged 1 commit intoPANTHEONtech:mainfrom
Tobianas:reworkCommunityRestConfFix
Aug 8, 2025
Merged

Rework jetty server implementation#2301
ihrasko merged 1 commit intoPANTHEONtech:mainfrom
Tobianas:reworkCommunityRestConfFix

Conversation

@Tobianas
Copy link
Contributor

@Tobianas Tobianas commented Aug 6, 2025

Having a separate provider for https and http2 jetty server made no sense, also creating and then removing connector for https and http2 connection made even less sense.

This patch changes the logic how we create and provide the jetty server throughout the application by having abstract server where everything common is located and then having separate classes which provide https/http2 connection.

JIRA: LIGHTY-329

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @Tobianas, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

I've refactored the Jetty server implementation to improve modularity and eliminate redundant code for HTTP, HTTPS, and HTTP/2 server provisioning. This change centralizes server creation logic by introducing an abstract base class and dedicated concrete implementations for each protocol. The LightyJettyServerProvider now intelligently selects and instantiates the appropriate server type based on configuration, simplifying the overall server setup and management within the application.

Highlights

  • Abstracting Jetty Web Server: I've introduced an AbstractLightyWebServer class, which serves as a common base for all Jetty web server implementations. This abstracts away common server setup while allowing for specific protocol configurations.
  • Dedicated Web Server Implementations: I've created three new concrete implementations: HttpLightyJettyWebServer, HttpsLightyJettyWebServer, and Http2LightyJettyWebServer. Each of these classes now encapsulates the specific Jetty configuration required for its respective protocol (HTTP, HTTPS, or HTTP/2).
  • Consolidated Server Provisioning: The LightyJettyServerProvider has been refactored to centralize the server provisioning logic. It now takes a LightyServerConfig and dynamically instantiates the correct AbstractLightyWebServer subclass (HTTP, HTTPS, or HTTP/2) based on the configuration, eliminating the need for separate provider classes.
  • Removal of Redundant Providers: The previously separate Http2LightyServerProvider and HttpsLightyServerProvider classes have been removed. Their functionality is now integrated directly into the LightyJettyServerProvider and the new dedicated web server classes, streamlining the codebase and reducing redundancy.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request provides a solid refactoring of the Jetty server implementation. The introduction of an abstract base class AbstractLightyWebServer with concrete implementations for HTTP, HTTPS, and HTTP/2 simplifies the server provider logic and eliminates the previous inefficient approach of creating and then replacing connectors. This greatly improves the design, making it more modular and maintainable. My review includes a suggestion to further reduce code duplication within the new server implementation classes, which will enhance maintainability.

@Tobianas Tobianas force-pushed the reworkCommunityRestConfFix branch 2 times, most recently from 937b03f to e5d98bb Compare August 6, 2025 10:11
@Tobianas Tobianas force-pushed the reworkCommunityRestConfFix branch 2 times, most recently from e089588 to 26c576d Compare August 8, 2025 09:18
Having a separate provider for https and http2 jetty server
made no sense, also creating and then removing connector
for https and http2 connection made even less sense.

This patch changes the logic how we create and provide the
jetty server throughout the application by having abstract
server where everything common is located and then having
separate classes which provide https/http2 connection.

JIRA: LIGHTY-329
Signed-off-by: tobias.pobocik <[email protected]>
@Tobianas Tobianas force-pushed the reworkCommunityRestConfFix branch from 26c576d to d821214 Compare August 8, 2025 09:42
@ihrasko ihrasko self-requested a review August 8, 2025 14:13
@ihrasko ihrasko merged commit 3299553 into PANTHEONtech:main Aug 8, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants