WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@shawn-hurley
Copy link
Contributor

@shawn-hurley shawn-hurley commented Oct 29, 2025

Updated base image and JDT.LS version in container configurations.

Summary by CodeRabbit

  • Chores
    • Updated Java runtime to version 21 for improved compatibility.
    • Upgraded JDTLS development tools to the latest version.
    • Enhanced build infrastructure with explicit Maven support.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Oct 29, 2025

Walkthrough

Docker image configurations updated with JDTLS version bumps (1.51.0 in production, 1.50.0 in test), Java runtime upgraded from 17 to 21 in the minimal image, and explicit Maven installation added with M2_HOME configuration.

Changes

Cohort / File(s) Summary
JDTLS and Runtime Updates
Dockerfile
JDTLS upgraded from 1.38.0 to 1.51.0; Java runtime upgraded from Java 17 to Java 21 with updated JAVA_HOME; explicit Maven installation block added with M2_HOME configuration; JAVA8_HOME retained for Gradle compatibility
Test Image Configuration
Dockerfile.test
JDTLS download URL updated from 1.38.0 to 1.50.0 in jdtls-download stage

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

  • Verify JDTLS version compatibility and availability at specified URLs (1.51.0 and 1.50.0)
  • Confirm Java 21 compatibility with existing build tools and Gradle wrapper
  • Validate Maven installation steps and M2_HOME path correctness

Poem

🐰 A rabbit's ode to containers new:
JDTLS levels up, one-five-one through,
Java twenty-one brings warmth and speed,
Maven joins the build—all that we need! 🏗️✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title mentions 'Upgrade to latest JDTLS' but the actual changes show JDTLS upgraded to version 1.51.0 in Dockerfile and 1.50.0 in Dockerfile.test. The PR objectives describe adding comprehensive integration tests with CI/CD pipeline, which is completely unrelated to the file changes. The PR title and objectives do not match the actual changes (JDTLS and Java runtime updates). Clarify whether this PR is for JDTLS upgrade or integration testing, and ensure title and description accurately reflect the actual file modifications.
Docstring Coverage ⚠️ Warning Docstring coverage is 23.08% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 337aa9e and 7d05de3.

📒 Files selected for processing (2)
  • Dockerfile (2 hunks)
  • Dockerfile.test (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • Dockerfile
  • Dockerfile.test
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: JDT.LS Integration Tests (Phase 2)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 23

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
Dockerfile (1)

142-160: Kill JDT.LS if dial fails.

If jsonrpc2.Dial errors, the child process keeps running and the pipes stay open because we return without stopping c.cmd. Please terminate c.cmd (and close the pipes) on that error path to avoid orphaned servers during retries.

🧹 Nitpick comments (23)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/resources/import.sql (1)

1-5: Add a trailing newline to the file.

SQL files should end with a newline character for consistency with common practices and many linters.

Apply this change:

 INSERT INTO customers(id, username, name, surname, address, zipcode, city, country) VALUES (5, 'i_rule_scabb', 'Largo', 'LaGrande', 'Swamp Rot Inn', 'SC-002', 'Woodtick', 'Scabb Island');
+
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/CustomException.java (1)

1-21: LGTM! Clean exception implementation for testing.

The implementation is correct and follows standard Java exception patterns. The class appropriately extends Exception, includes serialVersionUID for serialization compatibility, and provides the most common constructors.

For completeness, consider adding the fourth common exception constructor:

     public CustomException(String message, Throwable cause) {
         super(message, cause);
     }
+
+    public CustomException(Throwable cause) {
+        super(cause);
+    }
 }

This would provide full coverage of standard exception construction patterns, which could be beneficial for comprehensive inheritance testing scenarios.

java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/ServletExample.java (1)

16-21: Consider adding ServletException and character encoding.

While throwing only IOException is legal, servlet methods conventionally declare both ServletException and IOException. Additionally, setting the character encoding helps avoid encoding issues.

Apply this diff to add ServletException and character encoding:

 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
-        throws IOException {
+        throws IOException, jakarta.servlet.ServletException {
+    response.setCharacterEncoding("UTF-8");
     response.setContentType("text/html");
     response.getWriter().println("<h1>Hello World</h1>");
 }
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/persistence/PureJpaService.java (1)

3-5: Consider Jakarta EE namespace for modern JPA versions.

The imports use the legacy javax.persistence namespace (JPA 2.x). Modern applications (Jakarta EE 9+) use jakarta.persistence (JPA 3.0+).

If this test project is meant to validate analyzer behavior with legacy JPA applications, the current imports are appropriate. However, consider adding a corresponding test class using jakarta.persistence to ensure the analyzer handles both the legacy and modern namespaces correctly.

java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/service/ICustomerService.java (1)

10-10: Add missing space for consistency.

Missing space between Page<Customer> and findAll. For consistency with line 8, add a space after the closing angle bracket.

Apply this diff:

-	public Page<Customer>findAll(Pageable pageable);
+	public Page<Customer> findAll(Pageable pageable);
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/controller/CustomerController.java (3)

20-21: Prefer constructor injection over field injection.

Field injection makes testing harder and prevents making dependencies final. Constructor injection is the recommended approach for Spring beans.

Apply this diff to use constructor injection:

-	@Autowired
-	private CustomerService customerService;
+	private final CustomerService customerService;
+	
+	@Autowired
+	public CustomerController(CustomerService customerService) {
+		this.customerService = customerService;
+	}

23-23: Make logger static final.

Logger fields should be declared as static final for consistency with Java conventions.

Apply this diff:

-	private static Logger logger = Logger.getLogger( CustomerController.class.getName() );
+	private static final Logger logger = Logger.getLogger(CustomerController.class.getName());

35-38: Use @GetMapping for explicit HTTP method declaration.

While @RequestMapping works, using @GetMapping makes the HTTP method explicit and improves code readability.

Apply this diff:

-	@RequestMapping
+	@GetMapping
 	public Page<Customer> findAll(Pageable pageable){
 		return customerService.findAll(pageable);
 	}
java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/RuleEntryParamsTest.java (1)

156-173: Consider documenting location value meanings.

The test validates location values 0-14, but there's no documentation explaining what these numbers represent (e.g., location types or constants). Adding a brief comment would improve maintainability.

Example:

 	@Test
 	public void testAllLocations() {
-		// Test all valid location types
+		// Test all valid location types (0-14 correspond to specific location constants)
+		// e.g., PACKAGE=0, TYPE=1, METHOD=2, etc.
 		int[] locations = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/OrderManagementAppInitializer.java (1)

18-27: Inconsistent indentation.

The indentation starting from line 18 is inconsistent with the rest of the method. Lines 18, 20, 21, 23-24, 26-27 appear to use different spacing than line 17.

Apply consistent indentation (assuming tabs or consistent spaces):

-    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
-      context.setConfigLocation("io.konveyor.demo.ordermanagement.config");
-
-      context.scan("io.konveyor.demo.ordermanagement");
-      container.addListener(new ContextLoaderListener(context));
-
-      ServletRegistration.Dynamic dispatcher = container
-        .addServlet("dispatcher", new DispatcherServlet(context));
-      
-      dispatcher.setLoadOnStartup(1);
-      dispatcher.addMapping("/");
+    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
+    context.setConfigLocation("io.konveyor.demo.ordermanagement.config");
+
+    context.scan("io.konveyor.demo.ordermanagement");
+    container.addListener(new ContextLoaderListener(context));
+
+    ServletRegistration.Dynamic dispatcher = container
+      .addServlet("dispatcher", new DispatcherServlet(context));
+    
+    dispatcher.setLoadOnStartup(1);
+    dispatcher.addMapping("/");
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/PackageDeclarationSymbolProvider.java (1)

72-74: Consider removing printStackTrace() call.

Line 74 calls printStackTrace() which can produce verbose output in logs. Since the error is already logged via logInfo() on line 73, the stack trace printing is redundant and can clutter logs.

Consider removing the printStackTrace() call or making it conditional based on a debug flag:

         } catch (Exception e) {
             logInfo("Error processing package declaration: " + e.toString());
-            e.printStackTrace();
         }
java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/SampleDelegateCommandHandlerTest.java (1)

34-249: LGTM! Good location type coverage, consider adding result validation.

The expanded test suite provides excellent coverage of various location types (method calls, constructors, annotations, inheritance, imports, packages, fields, declarations) and analysis modes. The tests successfully verify that the command handler executes without errors for each scenario.

For enhanced validation, consider adding assertions on result content in future iterations, such as:

  • Verifying expected symbol counts for known test projects
  • Checking that returned symbols have expected names or kinds
  • Validating that location information is properly populated

This would strengthen the test suite by verifying correctness beyond non-crashing behavior.

java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/query/AnnotationQueryTest.java (2)

79-177: Consider using constants for location values.

The location values (4, 10, etc.) are used throughout the tests as magic numbers. While comments clarify their meaning, defining them as constants would improve readability and maintainability.

Consider adding constants at the class level:

+	private static final int ANNOTATION_LOCATION = 4;
+	private static final int TYPE_LOCATION = 10;
+
 	@Test
 	public void testFromMapOnAnnotationLocation() {
 		Map<String, Object> annotationQueryMap = new HashMap<>();
 		annotationQueryMap.put("pattern", "javax.ejb.Stateless");
 		annotationQueryMap.put("elements", new ArrayList<>());
 
-		// Location 4 is annotation location
-		AnnotationQuery query = AnnotationQuery.fromMap("fallbackQuery", annotationQueryMap, 4);
+		AnnotationQuery query = AnnotationQuery.fromMap("fallbackQuery", annotationQueryMap, ANNOTATION_LOCATION);

212-231: Consider adding null-safety and edge-case test coverage.

The location iteration test is comprehensive, but consider adding tests for additional edge cases that aren't currently covered:

  1. Null pattern (not empty, but null) in fromMap
  2. Null input to matchesAnnotation
  3. Malformed elements in the elements list (e.g., maps missing "name" or "value" keys)

Example null-safety tests:

@Test
public void testMatchesAnnotationNullInput() {
    AnnotationQuery query = new AnnotationQuery("test.Type", new HashMap<>(), false);
    // Document expected behavior: should it throw NPE or return false?
    assertFalse(query.matchesAnnotation(null));
}

@Test
public void testFromMapNullPattern() {
    Map<String, Object> annotationQueryMap = new HashMap<>();
    annotationQueryMap.put("pattern", null);
    annotationQueryMap.put("elements", new ArrayList<>());
    
    AnnotationQuery query = AnnotationQuery.fromMap("fallbackQuery", annotationQueryMap, 10);
    // Verify behavior with null pattern
    assertNotNull(query);
    assertEquals("fallbackQuery", query.getType());
}
java-analyzer-bundle.test/projects/customers-tomcat-legacy/Dockerfile (1)

4-5: Consider removing commented-out base image references.

The commented lines 4 and 20 show the old Java 8 base images. Since this is a test project and the upgrade to Java 11 is intentional, these comments could be removed for cleaner code.

Apply this diff to remove the commented lines:

-# FROM maven:3.6-jdk-8-slim as build
 FROM maven:3.8-openjdk-11 as build

And similarly for line 20:

-# FROM tomcat:9-jdk8-openjdk-slim
 FROM tomcat:9-jdk11-openjdk-slim
Dockerfile.test (3)

3-6: Consider adding checksum verification for downloaded artifacts.

Downloading external artifacts without checksum verification can introduce security risks if the source is compromised or serves unexpected content. While this is a test image, adding SHA256 verification would improve security posture.

Example approach:

-RUN curl -s -o jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.50.0/jdt-language-server-1.50.0-202509041425.tar.gz &&\
+RUN curl -s -o jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.50.0/jdt-language-server-1.50.0-202509041425.tar.gz &&\
+	echo "EXPECTED_SHA256 jdtls.tar.gz" | sha256sum -c - &&\
 	tar -xvf jdtls.tar.gz --no-same-owner &&\

24-25: Track the TODO for periodic Maven index updates.

The TODO indicates a need for a process to update the Maven index periodically. Consider creating a tracking issue for this maintenance task.

Do you want me to open a new issue to track the periodic update of the Maven search index?


49-49: Consider pinning the Go version for reproducible builds.

Installing golang without a version specifier may lead to different Go versions across builds as the UBI9 repository is updated. For more reproducible test environments, consider specifying a version or using a Go-specific base image stage.

Example approach:

-RUN microdnf install -y golang
+RUN microdnf install -y golang-1.23

Or verify the available version matches your requirements in go.mod (go 1.23.9).

java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/BaseService.java (1)

35-38: Consider null-safety in compareTo for robustness.

The compareTo implementation assumes both this.serviceName and other.serviceName are non-null. While the constructor ensures initial non-null values, subclasses have protected access and could set serviceName to null. For defensive programming, consider adding null checks.

Example:

 @Override
 public int compareTo(BaseService other) {
+    if (this.serviceName == null && other.serviceName == null) return 0;
+    if (this.serviceName == null) return -1;
+    if (other.serviceName == null) return 1;
     return this.serviceName.compareTo(other.serviceName);
 }
java-analyzer-bundle.test/projects/customers-tomcat-legacy/Makefile (2)

16-20: Use -f flag instead of echo Y for non-interactive pruning.

The current approach using echo Y | is fragile and non-standard. Docker's image prune command supports the -f (force) flag for non-interactive execution.

Apply this diff:

 .PHONY: clean
 clean: remove
 	$(info Removing all dangling build cache)
-	echo Y | docker image prune
+	docker image prune -f

32-36: Consider adding error handling for missing images.

The docker rmi commands will fail if the specified images don't exist, which may be unexpected during cleanup. Consider ignoring errors for more robust cleanup.

Example approach:

 .PHONY: remove
 remove:	## Removes all built images
 	$(info Removing all built images...)
-	docker rmi $(REMOTE_IMAGE_NAME)
-	docker rmi $(LOCAL_IMAGE_NAME)
+	docker rmi $(REMOTE_IMAGE_NAME) || true
+	docker rmi $(LOCAL_IMAGE_NAME) || true
.github/workflows/integration-tests.yml (1)

63-65: Consider quoting the command substitution.

While generally safe in GitHub Actions, the unquoted $(pwd) could theoretically cause word splitting. Quoting is a shell best practice.

Apply this diff:

         run: |
           podman run --rm \
-            -v $(pwd)/java-analyzer-bundle.test:/tests:Z \
+            -v "$(pwd)/java-analyzer-bundle.test:/tests:Z" \
             -e WORKSPACE_DIR=/tests/projects \
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/SampleApplication.java (1)

66-71: Consider try-with-resources for FileWriter.

Switching to a try-with-resources block ensures FileWriter closes even if write throws, keeping the sample leak-free.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0d792e7 and 337aa9e.

⛔ Files ignored due to path filters (1)
  • java-analyzer-bundle.test/integration/go.sum is excluded by !**/*.sum
📒 Files selected for processing (70)
  • .github/workflows/integration-tests.yml (1 hunks)
  • .gitignore (1 hunks)
  • Dockerfile (4 hunks)
  • Dockerfile.test (1 hunks)
  • Makefile (1 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/SampleDelegateCommandHandler.java (6 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/SymbolInformationTypeRequestor.java (2 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/ConstructorCallSymbolProvider.java (3 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/CustomASTVisitor.java (7 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/EnumConstantSymbolProvider.java (1 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/PackageDeclarationSymbolProvider.java (1 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/ReturnTypeSymbolProvider.java (2 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/SymbolProviderResolver.java (1 hunks)
  • java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/VariableDeclarationSymbolProvider.java (1 hunks)
  • java-analyzer-bundle.test/README.md (1 hunks)
  • java-analyzer-bundle.test/docs/README.md (1 hunks)
  • java-analyzer-bundle.test/docs/integration-tests.md (1 hunks)
  • java-analyzer-bundle.test/docs/query-reference.md (1 hunks)
  • java-analyzer-bundle.test/docs/quick-reference.md (1 hunks)
  • java-analyzer-bundle.test/docs/test-projects.md (1 hunks)
  • java-analyzer-bundle.test/integration/client/jdtls_client.go (1 hunks)
  • java-analyzer-bundle.test/integration/go.mod (1 hunks)
  • java-analyzer-bundle.test/integration/integration_test.go (1 hunks)
  • java-analyzer-bundle.test/integration/run_local.sh (1 hunks)
  • java-analyzer-bundle.test/integration/test_helpers.go (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/.gitignore (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/Dockerfile (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/Makefile (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/pom.xml (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/OrderManagementAppInitializer.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/config/PersistenceConfig.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/config/WebConfig.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/controller/CustomerController.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/exception/ResourceNotFoundException.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/exception/handler/ExceptionHandlingController.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/model/Customer.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/repository/CustomerRepository.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/service/CustomerService.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/service/ICustomerService.java (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/resources/import.sql (1 hunks)
  • java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/resources/persistence.properties (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.classpath (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.project (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.settings/org.eclipse.core.resources.prefs (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.settings/org.eclipse.jdt.apt.core.prefs (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.settings/org.eclipse.jdt.core.prefs (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/.settings/org.eclipse.m2e.core.prefs (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/pom.xml (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/Calculator.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/EnumExample.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/SampleApplication.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/ServletExample.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/annotations/CustomAnnotation.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/annotations/DeprecatedApi.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/DataSourceConfig.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/MySQLDataSourceConfig.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/entity/Product.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/BaseService.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/CustomException.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/DataService.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/MessageProcessor.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/TopicMessageProcessor.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/persistence/AnotherMixedService.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/persistence/JdbcOnlyService.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/persistence/PureJpaService.java (1 hunks)
  • java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/persistence/ServiceWithEntityManager.java (1 hunks)
  • java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/RuleEntryParamsTest.java (1 hunks)
  • java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/SampleDelegateCommandHandlerTest.java (2 hunks)
  • java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/query/AnnotationQueryTest.java (1 hunks)
  • pom.xml (3 hunks)
🧰 Additional context used
🧬 Code graph analysis (10)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/TopicMessageProcessor.java (1)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/MessageProcessor.java (1)
  • MessageDriven (12-23)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/MySQLDataSourceConfig.java (1)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/DataSourceConfig.java (1)
  • DataSourceDefinition (9-21)
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/SymbolProviderResolver.java (2)
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/EnumConstantSymbolProvider.java (1)
  • EnumConstantSymbolProvider (19-53)
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/PackageDeclarationSymbolProvider.java (1)
  • PackageDeclarationSymbolProvider (16-84)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/exception/handler/ExceptionHandlingController.java (1)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/exception/ResourceNotFoundException.java (1)
  • ResourceNotFoundException (19-27)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/DataSourceConfig.java (1)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/config/MySQLDataSourceConfig.java (1)
  • DataSourceDefinition (9-21)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/controller/CustomerController.java (1)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/src/main/java/io/konveyor/demo/ordermanagement/exception/ResourceNotFoundException.java (1)
  • ResourceNotFoundException (19-27)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/MessageProcessor.java (1)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/jms/TopicMessageProcessor.java (1)
  • MessageDriven (12-22)
java-analyzer-bundle.test/integration/integration_test.go (1)
java-analyzer-bundle.test/integration/client/jdtls_client.go (4)
  • JDTLSClient (19-28)
  • NewJDTLSClient (87-96)
  • AnnotationQuery (252-255)
  • AnnotationElement (246-249)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/SampleApplication.java (1)
java-analyzer-bundle.test/projects/test-project/src/main/java/io/konveyor/demo/inheritance/BaseService.java (1)
  • BaseService (9-39)
java-analyzer-bundle.test/src/main/java/io/konveyor/tackle/core/internal/SampleDelegateCommandHandlerTest.java (1)
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/SampleDelegateCommandHandler.java (1)
  • SampleDelegateCommandHandler (43-427)
🪛 actionlint (1.7.8)
.github/workflows/integration-tests.yml

63-63: shellcheck reported issue in this script: SC2046:warning:2:6: Quote this to prevent word splitting

(shellcheck)

🪛 checkmake (0.2.2)
Makefile

[warning] 25-25: Target body for "help" exceeds allowed length of 5 (24).

(maxbodylength)


[warning] 115-115: Target body for "clean" exceeds allowed length of 5 (6).

(maxbodylength)

java-analyzer-bundle.test/projects/customers-tomcat-legacy/Makefile

[warning] 38-38: Missing required phony target "all"

(minphony)


[warning] 38-38: Missing required phony target "test"

(minphony)


[warning] 9-9: Target "all" should be declared PHONY.

(phonydeclared)

🪛 LanguageTool
java-analyzer-bundle.test/docs/README.md

[style] ~73-~73: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...uick-reference.md#running-tests) ### I want to understand what's tested → [Quick Refer...

(REP_WANT_TO_VB)


[style] ~77-~77: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...erence.md#tested-search-queries) ### I want to add a new test → [Integration Tests Gui...

(REP_WANT_TO_VB)


[style] ~81-~81: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ence.md#untested-query-patterns) ### I want to understand the architecture → [Integrat...

(REP_WANT_TO_VB)


[style] ~85-~85: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...integration-tests.md#components) ### I want to understand test projects → [Test Projec...

(REP_WANT_TO_VB)


[style] ~89-~89: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...est-projects.md#coverage-matrix) ### I want to add Java test code → [Test Projects - A...

(REP_WANT_TO_VB)


[style] ~95-~95: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...ration-tests.md#troubleshooting) ### I want to understand migration testing → [Query R...

(REP_WANT_TO_VB)

java-analyzer-bundle.test/docs/integration-tests.md

[grammar] ~384-~384: Use a hyphen to join words.
Context: ...: JDT.LS needs time to index projects (5 second wait in Initialize()) 2. **Build ...

(QB_NEW_EN_HYPHEN)

java-analyzer-bundle.test/docs/query-reference.md

[grammar] ~608-~608: Ensure spelling is correct
Context: ...**: ~5 seconds Per-Query Time: ~100-500ms depending on result count **Result Coun...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
java-analyzer-bundle.test/README.md

213-213: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

java-analyzer-bundle.test/docs/integration-tests.md

17-17: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


311-311: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

java-analyzer-bundle.test/docs/test-projects.md

7-7: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


44-44: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


53-53: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


206-206: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 OSV Scanner (2.2.3)
java-analyzer-bundle.test/projects/customers-tomcat-legacy/pom.xml

[CRITICAL] 1-1: ch.qos.logback:logback-classic 1.1.7: QOS.ch Logback vulnerable to Deserialization of Untrusted Data

(GHSA-vmfg-rjjm-rjrj)


[CRITICAL] 1-1: ch.qos.logback:logback-classic 1.1.7: logback serialization vulnerability

(GHSA-vmq6-5m68-f53m)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: org.postgresql:postgresql vulnerable to SQL Injection via line comment generation

(GHSA-24rp-q3w6-vc56)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: TemporaryFolder on unix-like systems does not limit access to created files

(GHSA-562r-vg33-8x8h)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: pgjdbc Arbitrary File Write Vulnerability

(GHSA-673j-qm5f-xpv8)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: Path traversal in org.postgresql:postgresql

(GHSA-727h-hrw8-jg8q)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: PostgreSQL JDBC Driver SQL Injection in ResultSet.refreshRow() with malicious column names

(GHSA-r38f-c4h4-hqq2)


[CRITICAL] 1-1: org.postgresql:postgresql 42.2.23: pgjdbc Does Not Check Class Instantiation when providing Plugin Classes

(GHSA-v7wg-cpwc-24m4)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Spring Framework DoS via conditional HTTP request

(GHSA-2rmj-mq67-h97g)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Spring Framework URL Parsing with Host Validation

(GHSA-2wrp-6fg6-hmc5)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Spring Framework DataBinder Case Sensitive Match Exception

(GHSA-4gc7-5j7h-4qph)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Pivotal Spring Framework contains unsafe Java deserialization methods

(GHSA-4wrc-f8pq-fpqp)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Spring Web vulnerable to Open Redirect or Server Side Request Forgery

(GHSA-ccgv-vj62-xf9h)


[CRITICAL] 1-1: org.springframework:spring-web 5.3.7: Spring Framework URL Parsing with Host Validation Vulnerability

(GHSA-hgjh-9rj2-g67j)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Remote Code Execution in Spring Framework

(GHSA-36p3-wjmg-h94x)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Spring Framework is vulnerable to security bypass via mvcRequestMatcher pattern mismatch

(GHSA-7phw-cxx7-q9vq)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Path traversal vulnerability in functional web frameworks

(GHSA-cx7f-g6mp-7hqm)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Spring Framework Path Traversal vulnerability

(GHSA-g5vr-rgqm-vf78)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Spring Framework MVC Applications Path Traversal Vulnerability

(GHSA-r936-gwx5-v52f)


[CRITICAL] 1-1: org.springframework:spring-webmvc 5.3.7: Spring MVC controller vulnerable to a DoS attack

(GHSA-w3c8-7r8f-9jp8)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Unit Tests (Phase 1)

@shawn-hurley shawn-hurley force-pushed the feature/upgrade-to-latest-jdtls branch from 337aa9e to 7d05de3 Compare December 2, 2025 15:56
@shawn-hurley shawn-hurley changed the title ✨ Add comprehensive integration test suite with CI/CD pipeline ✨ Upgrade to latest JDTLS Dec 2, 2025
@shawn-hurley
Copy link
Contributor Author

@coderabbitai resolve

@coderabbitai
Copy link

coderabbitai bot commented Dec 2, 2025

✅ Actions performed

Comments resolved.

@shawn-hurley
Copy link
Contributor Author

Closing in favor of @pranavgaikwad work

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