Skip to content

Update of the RCP example#60

Merged
vogella merged 2 commits into
mainfrom
update2
Feb 22, 2026
Merged

Update of the RCP example#60
vogella merged 2 commits into
mainfrom
update2

Conversation

@vogella
Copy link
Copy Markdown
Member

@vogella vogella commented Feb 22, 2026

No description provided.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @vogella, 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!

This pull request focuses on modernizing the build infrastructure, enhancing the user experience with new notification features, and expanding the testing framework. It includes an upgrade of the Tycho build system, the addition of a dedicated UI test project utilizing JUnit 5, and a refinement of the task editor to support multiple open instances. These changes collectively aim to improve the application's maintainability, testability, and overall responsiveness.

Highlights

  • Build System Update: The Tycho build version has been updated from 5.0.0 to 5.0.1 across the project, ensuring the use of the latest build tooling.
  • New UI Test Project: A new project, com.vogella.tasks.ui.tests, has been introduced to house UI-related tests, configured with JUnit 5 and its platform suite dependencies.
  • Enhanced Task Editor Functionality: The TaskEditorPart in the Eclipse RCP application has been configured to allow multiple instances, improving user workflow for managing several tasks simultaneously.
  • User Notifications for New Tasks: Desktop notifications using org.eclipse.jface.notifications have been implemented to provide immediate feedback to the user upon the successful creation of a new task.
  • README Documentation Update: The README.adoc file has been updated with a corrected URL for the Eclipse Rich Client Platform book.
Changelog
  • .mvn/extensions.xml
    • Updated the Tycho build extension version to 5.0.1.
  • README.adoc
    • Updated the URL for the Eclipse Rich Client Platform book.
    • Added a newline character at the end of the file.
  • com.vogella.tasks.ui.tests/.classpath
    • Added the classpath configuration for the new UI test project.
  • com.vogella.tasks.ui.tests/.project
    • Added the project definition for the new UI test project, including build commands and natures.
  • com.vogella.tasks.ui.tests/.settings/org.eclipse.core.resources.prefs
    • Added resource preferences for the new UI test project, setting UTF-8 encoding.
  • com.vogella.tasks.ui.tests/.settings/org.eclipse.jdt.core.prefs
    • Added Java compiler settings for the new UI test project, targeting JavaSE-21.
  • com.vogella.tasks.ui.tests/.settings/org.eclipse.m2e.core.prefs
    • Added Maven integration preferences for the new UI test project.
  • com.vogella.tasks.ui.tests/META-INF/MANIFEST.MF
    • Added the OSGi manifest for the new UI test bundle, declaring it as a fragment host for com.vogella.tasks.ui and importing JUnit Jupiter.
  • com.vogella.tasks.ui.tests/build.properties
    • Added build properties for the new UI test project, specifying source and output folders.
  • com.vogella.tasks.ui.tests/src/com/vogella/tasks/ui/tests/ExampleTest.java
    • Added an initial example JUnit 5 test class with a basic assertion.
  • com.vogella.tasks.ui/Application.e4xmi
    • Modified the TaskEditorPart descriptor to allow multiple instances by setting allowMultiple="true".
  • com.vogella.tasks.ui/META-INF/MANIFEST.MF
    • Added org.eclipse.jface.notifications as a required bundle with version 0.7.400.
  • com.vogella.tasks.ui/src/com/vogella/tasks/ui/handlers/NewTaskHandler.java
    • Imported NotificationPopup for displaying desktop notifications.
    • Implemented code to display a notification popup after a new task is successfully created.
  • pom.xml
    • Updated the tycho.version property to 5.0.1.
    • Added com.vogella.tasks.ui.tests as a new module to the project build.
  • target-platform/target-platform.target
    • Removed direct P2 repository inclusion for junit-jupiter-api and junit-jupiter-engine.
    • Added multiple JUnit Platform suite dependencies (engine, API, launcher, commons) via Maven to the target platform.
Activity
  • No human activity has been recorded on this pull request yet.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

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.

@vogella
Copy link
Copy Markdown
Member Author

vogella commented Feb 22, 2026

/gemini review

Copy link
Copy Markdown

@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

The pull request updates the Eclipse RCP example with Tycho 5.0.1, adds a test fragment, and integrates JFace notifications. Key improvements include using version ranges in OSGi manifests for better compatibility and ensuring the target platform remains self-contained by re-enabling the JRE location. Some minor indentation inconsistencies were also noted.

Bundle-SymbolicName: com.vogella.tasks.ui.tests
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: VOGELLA
Fragment-Host: com.vogella.tasks.ui;bundle-version="1.0.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

In OSGi, it is best practice to use version ranges for the Fragment-Host to ensure compatibility with future minor or service updates of the host bundle.

Fragment-Host: com.vogella.tasks.ui;bundle-version="[1.0.0, 2.0.0)"

Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: VOGELLA
Fragment-Host: com.vogella.tasks.ui;bundle-version="1.0.0"
Import-Package: org.junit.jupiter.api;version="5.14.1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Using a fixed version for Import-Package is too restrictive. It is recommended to use a version range to allow for minor updates of the dependency without breaking the bundle resolution.

Import-Package: org.junit.jupiter.api;version="[5.14.1, 6.0.0)"

org.osgi.service.event,
org.eclipse.nebula.widgets.chips;bundle-version="2.0.0"
org.eclipse.nebula.widgets.chips;bundle-version="2.0.0",
org.eclipse.jface.notifications;bundle-version="0.7.400"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Consider using a version range for the org.eclipse.jface.notifications dependency to allow for future updates within the same major version.

 org.eclipse.jface.notifications;bundle-version="[0.7.400, 1.0.0)"

taskService.update(task);
// show notification
NotificationPopup.forShell(shell)
.title("Created a new task", true)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Inconsistent indentation: this line uses a tab character while the rest of the block uses spaces. Please use spaces for consistency.

Suggested change
.title("Created a new task", true)
.title("Created a new task", true)

Comment on lines +17 to +21
<!-- <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="https://download.eclipse.org/justj/jres/21/updates/release/latest"/>
<unit id="org.eclipse.justj.openjdk.hotspot.jre.minimal.feature.group"/>
</location>
-->
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Commenting out the JRE location in the target platform can lead to resolution issues in environments where the required Java version is not locally configured. It is safer to keep it enabled for a consistent build experience.

		<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
			<repository location="https://download.eclipse.org/justj/jres/21/updates/release/latest"/>
			<unit id="org.eclipse.justj.openjdk.hotspot.jre.minimal.feature.group"/>
		</location>

Copy link
Copy Markdown

@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

The pull request updates the Tycho version, adds a new UI test project, and integrates a notification popup for new task creation. It also updates the README.adoc with a corrected link and modifies the Application.e4xmi to allow multiple editors. The changes are generally well-structured and address the stated objective of updating the RCP example.

@vogella vogella merged commit 7826da5 into main Feb 22, 2026
1 check passed
@vogella vogella deleted the update2 branch February 23, 2026 16:49
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.

1 participant