Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
cache: maven

Expand All @@ -43,7 +43,7 @@ jobs:
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'
cache: maven

Expand Down
36 changes: 16 additions & 20 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,32 +1,29 @@
FROM registry.access.redhat.com/ubi9/ubi AS jdtls-download
WORKDIR /jdtls
RUN curl -s -o jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.38.0/jdt-language-server-1.38.0-202408011337.tar.gz &&\
RUN curl -s -o jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.51.0/jdt-language-server-1.51.0-202510022025.tar.gz &&\
tar -xvf jdtls.tar.gz --no-same-owner &&\
chmod 755 /jdtls/bin/jdtls &&\
rm -rf jdtls.tar.gz
Comment on lines 1 to 6
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

🧩 Analysis chain

🌐 Web query:

JDTLS Eclipse 1.51.0 download checksums signature

💡 Result:

The 1.51.0 milestone artifacts are hosted on Eclipse's download site and include a .sha256 checksum file for jdt-language-server-1.51.0-202510022025.tar.gz (see the directory listing). I don't see a separate GPG/.asc signature listed for that file in the same directory. [1][2]

Links:

  • Directory showing jdt-language-server-1.51.0-202510022025.tar.gz and jdt-language-server-1.51.0-202510022025.tar.gz.sha256. [1]
  • JDTLS download root listing. [2]

If you want, I can fetch the .sha256 contents and/or walk you through verifying the checksum (sha256sum) and checking for a signature.


🌐 Web query:

curl -fsSL flags behavior fail fast error handling

💡 Result:

Summary of flags and their fail-fast / error effects:

  • -f / --fail: treat HTTP 4xx/5xx as errors — curl exits non‑zero and (by default) does not write the HTTP body to stdout. Useful so scripts detect HTTP error responses. [1][2]

  • -s / --silent: suppress progress meter and most messages. It also hides error messages unless combined with --show-error. Use in scripts to avoid noisy progress output. [2]

  • -S / --show-error: when used with --silent, still print error messages to stderr on failure (so you get useful diagnostics while keeping the progress bar hidden). [2][3]

  • -L / --location: follow HTTP redirects (up to curl’s max redirects). Without it curl will not follow 3xx Location responses. Redirects can change method/credentials behavior unless you use --location-trusted or related flags. [4][5]

  • --fail-early: when requesting multiple URLs, return immediately on the first transfer failure so later transfers aren’t attempted. This is global and different from --fail (which concerns HTTP status codes). [6]

Notes on combined usage (e.g. curl -fsSL):

  • Typical pattern for script downloads: -f (fail on HTTP error) + -sS (silent but show errors) + -L (follow redirects). This makes curl “fail fast” on HTTP errors, stay quiet on success, still print errors, and follow redirects to reach the final resource. [2][4]

Exit codes / behavior:

  • curl returns nonzero on network/transfer errors and (with --fail) for HTTP error status codes; historically HTTP error with --fail produces exit code 22. Check $? for script logic. [1][7]

If you want I can give a minimal example script showing robust error handling and retries using these flags.

Sources:
[1] curl manpage (Ubuntu).
[2] "Correct cURL" guide (dotboris.io).
[3] alexwlchan: using --silent/--show-error and --write-out.
[4] Warp / tutorials on -L and max-redirs.
[5] Redirect notes and --location-trusted.
[6] curl --fail-early documentation (manpage).
[7] gist showing exit code behavior for --fail.


🌐 Web query:

Eclipse JDT Language Server 1.51.0 stable download URL

💡 Result:

Direct download (tar.gz):
https://download.eclipse.org/jdtls/milestones/1.51.0/jdt-language-server-1.51.0-202510022025.tar.gz. [1]

SHA256 file:
https://download.eclipse.org/jdtls/milestones/1.51.0/jdt-language-server-1.51.0-202510022025.tar.gz.sha256. [1]

(These files are listed on the Eclipse JDT LS milestones page.) [1]


Harden downloads and verify checksums for the JDTLS tarball.

The curl -s flag masks HTTP errors (4xx/5xx responses can be written to the output file without detection). Use -f to fail on HTTP errors, -S to show errors despite -s, and -L to follow redirects:

-RUN curl -s -o jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.51.0/jdt-language-server-1.51.0-202510022025.tar.gz &&\
+RUN curl -fsSLo jdtls.tar.gz https://download.eclipse.org/jdtls/milestones/1.51.0/jdt-language-server-1.51.0-202510022025.tar.gz &&\
 	tar -xvf jdtls.tar.gz --no-same-owner &&\
 	chmod 755 /jdtls/bin/jdtls &&\
         rm -rf jdtls.tar.gz

Additionally, a .sha256 checksum file is available at the same location (jdt-language-server-1.51.0-202510022025.tar.gz.sha256). Verify the checksum after download:

sha256sum -c jdt-language-server-1.51.0-202510022025.tar.gz.sha256

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In Dockerfile around lines 1 to 6, the curl invocation silently allows HTTP
errors and the downloaded tarball is not integrity-checked; update the RUN step
to use curl with flags -fSL so it fails on HTTP errors and follows redirects,
download the matching .sha256 file alongside the tarball, verify the tarball
with sha256sum -c against that .sha256 file and fail the build if verification
fails, then proceed to extract only after successful verification and clean up
the checksum file; ensure the Dockerfile exits non-zero on any failure (e.g.,
keep the RUN command's commands chained so a failed checksum aborts the build).


COPY jdtls-bin-override/jdtls.py /jdtls/bin/jdtls.py

FROM registry.access.redhat.com/ubi9/ubi AS maven-index
COPY hack/maven.default.index /maven.default.index

FROM registry.access.redhat.com/ubi9/ubi AS fernflower
RUN dnf install -y maven-openjdk17 wget --setopt=install_weak_deps=False && dnf clean all && rm -rf /var/cache/dnf
RUN wget --quiet https://github.com/JetBrains/intellij-community/archive/refs/tags/idea/231.9011.34.tar.gz -O intellij-community.tar && tar xf intellij-community.tar intellij-community-idea-231.9011.34/plugins/java-decompiler/engine && rm -rf intellij-community.tar
WORKDIR /intellij-community-idea-231.9011.34/plugins/java-decompiler/engine
RUN export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
RUN ./gradlew build -x test && rm -rf /root/.gradle
RUN mkdir /output && cp ./build/libs/fernflower.jar /output

FROM registry.access.redhat.com/ubi9/ubi AS addon-build
RUN dnf install -y maven-openjdk17 && dnf clean all && rm -rf /var/cache/dnf
RUN dnf install -y java-21-openjdk-devel wget zip --nodocs --setopt=install_weak_deps=0 && dnf clean all && rm -rf /var/cache/dnf
RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz && \
tar -xzf /tmp/apache-maven.tar.gz -C /usr/local/ && \
rm /tmp/apache-maven.tar.gz
Comment on lines +19 to +21
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Verify the Maven download with a checksum.

The Maven download uses proper curl flags but lacks integrity verification. Apache Maven releases include SHA512 checksums that should be verified before extraction.

🔎 Apply this diff to add checksum verification
-RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz && \
+RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz && \
+    curl -fsSL -o /tmp/apache-maven.tar.gz.sha512 https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz.sha512 && \
+    cd /tmp && sha512sum -c apache-maven.tar.gz.sha512 && \
     tar -xzf /tmp/apache-maven.tar.gz -C /usr/local/ && \
-    rm /tmp/apache-maven.tar.gz
+    rm /tmp/apache-maven.tar.gz /tmp/apache-maven.tar.gz.sha512
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz && \
tar -xzf /tmp/apache-maven.tar.gz -C /usr/local/ && \
rm /tmp/apache-maven.tar.gz
RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz && \
curl -fsSL -o /tmp/apache-maven.tar.gz.sha512 https://dlcdn.apache.org/maven/maven-3/3.9.12/binaries/apache-maven-3.9.12-bin.tar.gz.sha512 && \
cd /tmp && sha512sum -c apache-maven.tar.gz.sha512 && \
tar -xzf /tmp/apache-maven.tar.gz -C /usr/local/ && \
rm /tmp/apache-maven.tar.gz /tmp/apache-maven.tar.gz.sha512
🤖 Prompt for AI Agents
In Dockerfile around lines 19 to 21, the Apache Maven tarball is downloaded but
not integrity-checked; download the corresponding SHA512 checksum file for the
exact Maven version, verify the tarball with sha512sum (or an equivalent
verification command) before extracting, fail the build if the checksum does not
match, and clean up checksum and archive files afterward to avoid leaving
sensitive artifacts.

WORKDIR /app
COPY ./ /app/
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk
RUN mvn clean install -DskipTests=true

FROM registry.access.redhat.com/ubi9/ubi-minimal AS index-download
RUN microdnf install -y wget zip && microdnf clean all && rm -rf /var/cache/dnf
ENV JAVA_HOME /usr/lib/jvm/java-21-openjdk
RUN /usr/local/apache-maven-3.9.12/bin/mvn clean install -DskipTests=true
# Download maven index data
WORKDIR /maven-index-data
RUN DOWNLOAD_URL=$(wget --quiet -O - https://api.github.com/repos/konveyor/maven-search-index/releases/latest | grep '"browser_download_url".*maven-index-data.*\.zip' | sed -E 's/.*"browser_download_url": "([^"]+)".*/\1/') && \
wget --quiet ${DOWNLOAD_URL} -O maven-index-data.zip && \
Expand All @@ -35,27 +32,26 @@ RUN DOWNLOAD_URL=$(wget --quiet -O - https://api.github.com/repos/konveyor/maven

FROM registry.access.redhat.com/ubi9/ubi-minimal
# Java 1.8 is required for backwards compatibility with older versions of Gradle
RUN microdnf install -y python39 java-1.8.0-openjdk-devel java-17-openjdk-devel tar gzip zip --nodocs --setopt=install_weak_deps=0 && microdnf clean all && rm -rf /var/cache/dnf
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk
RUN microdnf install -y python39 java-1.8.0-openjdk-devel java-21-openjdk-devel tar gzip zip --nodocs --setopt=install_weak_deps=0 && microdnf clean all && rm -rf /var/cache/dnf
ENV JAVA_HOME /usr/lib/jvm/java-21-openjdk
# Specify Java 1.8 home for usage with gradle wrappers
ENV JAVA8_HOME /usr/lib/jvm/java-1.8.0-openjdk
RUN curl -fsSL -o /tmp/apache-maven.tar.gz https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz && \
tar -xzf /tmp/apache-maven.tar.gz -C /usr/local/ && \
ln -s /usr/local/apache-maven-3.9.11/bin/mvn /usr/bin/mvn && \
rm /tmp/apache-maven.tar.gz
ENV M2_HOME /usr/local/apache-maven-3.9.11
ENV M2_HOME /usr/local/apache-maven-3.9.12

# Copy "download sources" gradle task. This is needed to download project sources.
RUN mkdir /root/.gradle
COPY ./gradle/build.gradle /usr/local/etc/task.gradle
COPY ./gradle/build-v9.gradle /usr/local/etc/task-v9.gradle
# Copy the maven index text file used to filter out open source libraries
COPY hack/maven.default.index /usr/local/etc/maven.default.index

COPY --from=jdtls-download /jdtls /jdtls/
COPY --from=addon-build /usr/local/apache-maven-3.9.12/ /usr/local/apache-maven-3.9.12/
RUN ln -s /usr/local/apache-maven-3.9.12/bin/mvn /usr/bin/mvn
COPY --from=addon-build /root/.m2/repository/io/konveyor/tackle/java-analyzer-bundle.core/1.0.0-SNAPSHOT/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar /jdtls/plugins/
COPY --from=addon-build /root/.m2/repository/io/konveyor/tackle/java-analyzer-bundle.core/1.0.0-SNAPSHOT/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar /jdtls/java-analyzer-bundle/java-analyzer-bundle.core/target/java-analyzer-bundle.core-1.0.0-SNAPSHOT.jar
COPY --from=fernflower /output/fernflower.jar /bin/fernflower.jar
COPY --from=maven-index /maven.default.index /usr/local/etc/maven.default.index
COPY --from=index-download /maven-index-data/central.archive-metadata.txt /usr/local/etc/maven-index.txt
COPY --from=addon-build /maven-index-data/central.archive-metadata.txt /usr/local/etc/maven-index.txt

RUN ln -sf /root/.m2 /.m2 && chgrp -R 0 /root && chmod -R g=u /root
CMD [ "/jdtls/bin/jdtls" ]
2 changes: 1 addition & 1 deletion java-analyzer-bundle.core/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.lsp4j,
org.eclipse.m2e.jdt
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public void acceptSearchMatch(SearchMatch match) throws CoreException {
((WithMaxResults) symbolProvider).setMaxResultes(this.maxResults);
}

logInfo("getting match: " + match + "with provider: " + symbolProvider);
logInfo("getting match: " + match + "with provider: " + symbolProvider + " for query: " + this.query);
List<SymbolInformation> symbols = Optional.ofNullable(symbolProvider.get(match)).orElse(new ArrayList<>());
this.symbols.addAll(symbols);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,10 @@ public List<SymbolInformation> get(SearchMatch match) throws CoreException {
}
}
if (unit != null && unit.isWorkingCopy()) {
unit.discardWorkingCopy();
unit.close();
synchronized (SymbolProvider.LOCATION_LOCK) {
unit.discardWorkingCopy();
unit.close();
}
}
} else {
if (annotationQuery != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,16 @@ public List<SymbolInformation> get(SearchMatch match) throws CoreException {
CompilationUnit cu = (CompilationUnit) astParser.createAST(null);
CustomASTVisitor visitor = new CustomASTVisitor(query, match, QueryLocation.CONSTRUCTOR_CALL);
// Under tests, resolveConstructorBinding will return null if there are problems
cu.accept(visitor);
if (visitor.symbolMatches()) {
symbols.add(symbol);
cu.accept(visitor);
if (visitor.symbolMatches()) {
symbols.add(symbol);
}
if (unit != null && unit.isWorkingCopy()) {
synchronized (SymbolProvider.LOCATION_LOCK) {
unit.discardWorkingCopy();
unit.close();
}
unit.discardWorkingCopy();
unit.close();
}
} else {
symbols.add(symbol);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ public List<SymbolInformation> get(SearchMatch match) throws CoreException {
if (specificSymbols == null || specificSymbols.isEmpty()) {
continue;
}

symbols.addAll(specificSymbols);
logInfo("got Symbols: " + symbols.size());
logInfo("got Symbols: " + specificSymbols.size());
// Have to handle here, the search matches can not ballon
// for now this will be fine
if (this.maxResults != 0 && symbols.size() >= this.maxResults) {
return symbols;
}
break; // break here to avoid Type and IMPORT providers returning duplicate matches
}
return symbols;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,12 @@ public List<SymbolInformation> get(SearchMatch match) {
symbols.add(symbol);
}
}
unit.discardWorkingCopy();
unit.close();
if (unit != null) {
synchronized (SymbolProvider.LOCATION_LOCK) {
unit.discardWorkingCopy();
unit.close();
}
}
} else {
symbols.add(symbol);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.eclipse.lsp4j.SymbolKind;
public interface SymbolProvider {
public static final int MAX_PROBLEMS_TO_LOG = 10;
Object LOCATION_LOCK = new Object();

Comment on lines 32 to 35
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Avoid a publicly exposed lock object (interface field).

LOCATION_LOCK in an interface is implicitly public static final, so any downstream code can synchronize on it (or block it), creating avoidable deadlock/latency risk. Prefer moving this lock to a package-private final class (or an internal implementation class) so it’s not part of the public API surface.

 public interface SymbolProvider {
     public static final int MAX_PROBLEMS_TO_LOG = 10;
-    Object LOCATION_LOCK = new Object();
+    // NOTE: keep interface free of shared lock objects; prefer SymbolProviderLocks.LOCATION_LOCK.
+    @Deprecated(forRemoval = false)
+    Object LOCATION_LOCK = SymbolProviderLocks.LOCATION_LOCK;
// new file in same package
final class SymbolProviderLocks {
  static final Object LOCATION_LOCK = new Object();
  private SymbolProviderLocks() {}
}
🤖 Prompt for AI Agents
In
java-analyzer-bundle.core/src/main/java/io/konveyor/tackle/core/internal/symbol/SymbolProvider.java
around lines 32 to 35, the public LOCATION_LOCK field should be removed from the
interface and relocated to a package-private final holder class; create a new
final class in the same package (e.g., SymbolProviderLocks) with a static final
Object LOCATION_LOCK and a private constructor, update all references to use
SymbolProviderLocks.LOCATION_LOCK, and keep SymbolProvider free of any public
lock fields to avoid exposing synchronization primitives in the API.

List<SymbolInformation> get(SearchMatch match) throws CoreException;

Expand Down Expand Up @@ -98,7 +99,11 @@ default Location getLocation(IJavaElement element, SearchMatch match) throws Jav
ICompilationUnit compilationUnit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT);
if (compilationUnit != null) {
logInfo("found compliation unit for match: " + match);
return JDTUtils.toLocation(compilationUnit, match.getOffset(), match.getLength());
synchronized (LOCATION_LOCK) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do we need to sync on this now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@jmle there is a race condition where we might be working on the same compilation unit in two places, that causes intermittent failure in location resolution causing issues with line number 0. This fixes that. I can't find the issue about it (there is one somewhere), but I saw it in rulesets runs intermittently.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am absolutely open to doing this the right / idiomatic way btw. This is all I could think of.

Copy link
Contributor

Choose a reason for hiding this comment

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

Can we get a copy of hte Compliation unit before working on it?

Copy link
Contributor Author

@pranavgaikwad pranavgaikwad Dec 17, 2025

Choose a reason for hiding this comment

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

@shawn-hurley there's only one call in the api getWorkingCopy() which gets you whatevers open in the index at the time. I am not sure how to make a deep copy of it.

Location location = JDTUtils.toLocation(compilationUnit, match.getOffset(), match.getLength());
logInfo("Returning location: " + location + " for match: " + match);
return location;
}
}
IClassFile cf = (IClassFile) element.getAncestor(IJavaElement.CLASS_FILE);
if (cf != null) {
Expand Down Expand Up @@ -131,7 +136,9 @@ default Location getLocation(IJavaElement element, SearchMatch match) throws Jav
}
Range range = null;
try {
range = toRange(cf, match.getOffset(), match.getLength());
synchronized (LOCATION_LOCK) {
range = toRange(cf, match.getOffset(), match.getLength());
}
} catch (Exception e) {
JavaLanguageServerPlugin.logException("Error generating range for class ", e);
return null;
Expand All @@ -143,7 +150,9 @@ default Location getLocation(IJavaElement element, SearchMatch match) throws Jav
try {
// This casting is safe or is assumed to be safer because the ToString on SearchMatch does it
logInfo("defaulting to regular toLocation for match: " + match);
return JDTUtils.toLocation(element);
synchronized (LOCATION_LOCK) {
return JDTUtils.toLocation(element);
}
} catch (Exception e) {
JavaLanguageServerPlugin.logException("Unable to determine location for the element " + element, e);
return null;
Expand Down Expand Up @@ -198,7 +207,7 @@ default boolean queryQualificationMatches(String query, IJavaElement matchedElem
// should consider parameter here
// e.g. java.nio.file.Paths.get(String)/java.nio.file.Paths.get(*) -> java.nio.file.Paths.get
// Remove any parentheses and their contents
query = query.replaceAll("\\(.*\\)", "");
query = query.replaceAll("\\([^|]*\\)", "");
query = query.replaceAll("(?<!\\.)\\*", ".*");
String queryQualification = "";
int dotIndex = query.lastIndexOf('.');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,12 @@ public List<SymbolInformation> get(SearchMatch match) {
}
}
}
compilationUnit.discardWorkingCopy();
compilationUnit.close();
if (compilationUnit != null) {
synchronized (SymbolProvider.LOCATION_LOCK) {
compilationUnit.discardWorkingCopy();
compilationUnit.close();
}
}
if (!isAccurate) {
return null;
}
Expand Down
12 changes: 6 additions & 6 deletions java-analyzer-bundle.site/category.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<site>
<bundle id="java-rule-addon.core" version="0.0.0">
<bundle id="java-analyzer-bundle.core" version="0.0.0">
<category name="core"/>
</bundle>
<bundle id="java-rule-addon.test" version="0.0.0">
<bundle id="java-analyzer-bundle.test" version="0.0.0">
<category name="sdk" />
</bundle>
<bundle id="java-rule-addon.core.source" version="0.0.0">
<bundle id="java-analyzer-bundle.core.source" version="0.0.0">
<category name="sdk" />
</bundle>
<bundle id="java-rule-addon.test.source" version="0.0.0">
<bundle id="java-analyzer-bundle.test.source" version="0.0.0">
<category name="sdk" />
</bundle>
<category-def name="core" label="java-rule-addon extension"/>
<category-def name="sdk" label="java-rule-addon extension (Developer Resources)"/>
<category-def name="core" label="java-analyzer-bundle extension"/>
<category-def name="sdk" label="java-analyzer-bundle extension (Developer Resources)"/>
</site>
2 changes: 1 addition & 1 deletion java-analyzer-bundle.test/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Bundle-Name: java-analyzer-bundle Test Fragment
Bundle-SymbolicName: java-analyzer-bundle.test
Bundle-Version: 1.0.0.qualifier
Fragment-Host: java-analyzer-bundle.core;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-RequiredExecutionEnvironment: JavaSE-21
Require-Bundle: org.eclipse.jdt.junit4.runtime;bundle-version="1.1.0",
org.apache.commons.io,
org.apache.commons.lang3,
Expand Down
10 changes: 5 additions & 5 deletions java-analyzer-bundle.tp/java-analyzer-bundle.target
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<?pde version="3.8"?>
<target name="Java Analyzer Target Platform">
<locations>
<!-- 1st: pick up JDT.LS bits (1.35.0)
<!-- 1st: pick up JDT.LS bits (1.51.0)
-->
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner"
includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.jdt.ls.core" version="0.0.0" />
<repository location="https://download.eclipse.org/jdtls/milestones/1.35.0/repository"/>
<repository location="https://download.eclipse.org/jdtls/milestones/1.51.0/repository"/>
</location>


Expand Down Expand Up @@ -56,21 +56,21 @@
<unit id="org.eclipse.jdt.source.feature.group" version="0.0.0"/>
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
<unit id="org.mockito.mockito-core" version="0.0.0"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.30"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.34"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.xtend.sdk.feature.group" version="0.0.0"/>
<unit id="org.eclipse.xtext.sdk.feature.group" version="0.0.0"/>
<repository location="https://download.eclipse.org/releases/2021-09/202109151000/"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="https://download.eclipse.org/lsp4j/updates/releases/0.22.0/"/>
<repository location="https://download.eclipse.org/lsp4j/updates/releases/0.23.0/"/>
<unit id="org.eclipse.lsp4j.sdk.feature.group" version="0.0.0"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="https://download.eclipse.org/modeling/tmf/xtext/updates/releases/2.34.0/"/>
<unit id="org.eclipse.xtext.xbase.lib" version="0.0.0"/>
</location>
</locations>
<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-21"/>
</target>
9 changes: 3 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<tycho.version>3.0.1</tycho.version>
<tycho.extras.version>3.0.1</tycho.extras.version>
<tycho.version>4.0.7</tycho.version>
<tycho.extras.version>4.0.7</tycho.extras.version>
<tycho.scmUrl>scm:git:https://github.com/konveyor/java-analyzer-bundle.git</tycho.scmUrl>
<tycho.generateSourceReferences>true</tycho.generateSourceReferences>
<tycho.test.platformArgs />
Expand All @@ -41,10 +41,7 @@
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<executionEnvironment>JavaSE-17</executionEnvironment>
<resolver>p2</resolver>
<pomDependencies>consider</pomDependencies>
<ignoreTychoRepositories>true</ignoreTychoRepositories>
<executionEnvironment>JavaSE-21</executionEnvironment>
<target>
<artifact>
<groupId>io.konveyor.tackle</groupId>
Expand Down
Loading