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
11 changes: 11 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ jobs:

windows:
name: Build Windows x64 backend
env:
# The plugin must run without a separately installed VC++ runtime.
RUSTFLAGS: -C target-feature=+crt-static
runs-on: windows-latest
timeout-minutes: 30
steps:
Expand Down Expand Up @@ -96,6 +99,14 @@ jobs:
for arch in arm64 x86_64; do
scripts/build-package.sh --arch "$arch"
done
- name: Verify Windows runtime dependencies
run: |
set -euo pipefail
/usr/bin/objdump -p .artifacts/windows-backend/lithe-java-backend.exe > "$RUNNER_TEMP/windows-imports.txt"
if grep -Ei 'DLL Name:.*(VCRUNTIME|MSVCP|libgcc|libstdc|libwinpthread)' "$RUNNER_TEMP/windows-imports.txt"; then
echo "::error::Windows backend depends on a separately installed compiler runtime"
exit 1
fi
- name: Assemble the Windows archive
run: |
set -euo pipefail
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Java Support for Lithe

> **Viva 预览版 Java 支持(1.1.0)**:清单已迁到当前契约 0,后端使用 Core
> **Viva 预览版 Java 支持(1.1.1)**:清单已迁到当前契约 0,后端使用 Core
> `65cf82343c5e315aae2e335b2e8f0217b703e89a` 中的 Rust SDK 0.4.0(尚无对应发布标签)。
> 本轮验证含第三方 JAR 依赖的普通 Maven 工程:JDT 补全、Maven 编译、main 运行和断点调试,包含变量读取、继续和退出。
> 需要同时包含 Lithe 客户端的动作注册解码、动作刷新与首次调试加载修复;未修改这些行为的旧 preview 不能直接使用本包。
Expand All @@ -24,7 +24,7 @@
> SDK. Maven and Gradle import settings come from the Maven and Gradle plugins through a function interface that
> Lithe Core relays between plugins.

1.1.0 面向包含主仓库 [#1884](https://github.com/1lck/Lithe-IDEA/pull/1884) 的配套 Viva preview(客户端修订 `607f00967d70a7017d49805183d0d2e6ffdf1c0d` 或更新版本)。API / 能力与传输版本以 `plugin.json`、`sdk.lock.json`
1.1.1 面向包含主仓库 [#1884](https://github.com/1lck/Lithe-IDEA/pull/1884) 的配套 Viva preview(客户端修订 `607f00967d70a7017d49805183d0d2e6ffdf1c0d` 或更新版本)。API / 能力与传输版本以 `plugin.json`、`sdk.lock.json`
和固定 Core 中的[插件资料](https://github.com/Lithe-IDEA/Lithe-core-rust/tree/65cf82343c5e315aae2e335b2e8f0217b703e89a/shared/plugins)为准。
`MIGRATION.md` 保留迁移历史,不能用其中旧宿主、旧 API 数字推断当前兼容性。

Expand Down Expand Up @@ -269,7 +269,7 @@ node scripts/package/build-windows.mjs /path/to/lithe-java-backend.exe
```

脚本验证 x64 PE 与锁定 JDK 的 SHA-256,复用 JDT 构建入口,写入 `.artifacts/` 并清理组装临时目录。
发布工作流在 Windows 从同一标签构建并测试 x64 后端,再通过此入口组装 ZIP;本地验证复用相同入口。包不带发布者签名,不含安装器,打包成功也不能代替 Windows 运行验收。
发布工作流在 Windows 从同一标签构建并测试 x64 后端,静态链接编译器运行库,再通过此入口组装 ZIP;本地验证复用相同入口。发布前用成熟的 PE 检查工具拒绝额外的 VC++/MinGW 运行库 DLL 依赖,保持后端无需另装编译器运行库。包不带发布者签名,不含安装器,打包成功也不能代替 Windows 运行验收。

## 发布新版本

Expand Down
2 changes: 2 additions & 0 deletions docs/releases/v1.1.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Maven 项目配合 Maven 0.0.1;Gradle 项目配合 Gradle 1.0.0。构建工具
### 更新

- 跑通普通 Maven、Gradle 和普通 Java 目录的补全、编译、运行及断点调试,Java 8 项目保留正确的编译目标。
- Windows 后端静态链接编译器运行库,发布检查拒绝额外的 VC++/MinGW 运行库依赖。
- 修复 Windows 可执行路径、中文/UNC 文件 URI、Lombok 加载及过长 classpath;退出后清理临时 classpath JAR。
- 冷索引暂时无法返回运行动作时,在索引任务完成后有界恢复,不增加后台轮询。
- 已在 macOS 与 Windows 无头验证断点变量、继续/停止、编译错误阻止运行旧 class、暂停时关闭及插件安装目录只读。
Expand Down Expand Up @@ -40,6 +41,7 @@ Use Maven 0.0.1 for Maven projects and Gradle 1.0.0 for Gradle projects. Supply
### Changes

- Validated completion, compilation, execution and breakpoint debugging for ordinary Maven, Gradle and plain Java projects, preserving Java 8 compilation targets.
- The Windows backend statically links compiler runtimes; release checks reject extra VC++/MinGW runtime DLL dependencies.
- Fixed Windows executable paths, Unicode/UNC file URIs, Lombok loading and long classpaths; temporary classpath JARs are removed after execution.
- Recover run actions after cold-index jobs finish, with bounded retries and no background polling.
- Headless macOS and Windows workflows cover breakpoint locals, continue/stop, refusal to run stale classes after compilation errors, closing paused sessions and read-only installed packages.
Expand Down
53 changes: 53 additions & 0 deletions docs/releases/v1.1.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
## 中文

Java Support 1.1.1 为配套 Viva 预览版提供 Java 项目支持。本版本是预发布,插件包不带发布者签名。

### 下载与安装

下载本页对应系统的 ZIP:macOS Apple Silicon(`darwin-arm64`)、macOS Intel(`darwin-x64`)或 Windows x64(`windows-x64`)。在兼容 Viva 客户端的插件设置中选择从文件安装 ZIP。

需要包含 [Lithe #1884](https://github.com/1lck/Lithe-IDEA/pull/1884) 的客户端(修订 `607f00967d70a7017d49805183d0d2e6ffdf1c0d` 或更新版本)及 Core #29。旧版 macOS Lithe 和未包含这些修复的 Viva preview 不受支持。插件使用契约/API/能力版本 0;语言服务器使用随包 Temurin 21,项目运行仍使用用户选择的 JDK。

Maven 项目配合 Maven 0.0.1;Gradle 项目配合 Gradle 1.0.0。构建工具由用户安装或由项目 Wrapper 提供。

### 更新

- 跑通普通 Maven、Gradle 和普通 Java 目录的补全、编译、运行及断点调试,Java 8 项目保留正确的编译目标。
- Windows 后端静态链接编译器运行库,发布检查拒绝额外的 VC++/MinGW 运行库依赖。
- 修复 Windows 可执行路径、中文/UNC 文件 URI、Lombok 加载及过长 classpath;退出后清理临时 classpath JAR。
- 冷索引暂时无法返回运行动作时,在索引任务完成后有界恢复,不增加后台轮询。
- 已在 macOS 与 Windows 无头验证断点变量、继续/停止、编译错误阻止运行旧 class、暂停时关闭及插件安装目录只读。

### 兼容性与已知限制

尚未完整验收原生窗口、全部日志/取消路径、JUnit/TestNG 行内运行器和 Spring/MyBatis。JSP HTTP/Servlet 调试通过不代表 JSP 源码补全或 JSP 断点;Ant 源码布局不代表执行 Ant target。Java 5/7 源码级别、长 module-path、JavaCC 生成模型、多版本 JAR 和部分旧泛型项目仍有限制,详见 README 与主仓库 #1881–1883。

实测 JDT 内存与补全延迟没有显著改善,本版本不宣称整体性能提升。Windows 的真实工作流在 ARM Windows 上使用 x64 工具验证,其耗时不代表原生 AMD64 性能。

---

## English

Java Support 1.1.1 targets the matching Viva preview. This is a prerelease with unsigned plugin archives.

### Download and installation

Choose the ZIP for macOS Apple Silicon (`darwin-arm64`), macOS Intel (`darwin-x64`), or Windows x64 (`windows-x64`), then install it from a file in the compatible Viva client's plugin settings.

The client must include [Lithe #1884](https://github.com/1lck/Lithe-IDEA/pull/1884), revision `607f00967d70a7017d49805183d0d2e6ffdf1c0d` or newer, and Core #29. Legacy macOS Lithe and earlier Viva previews are unsupported. Contract, API and capability versions are 0. Bundled Temurin 21 runs the language server; project execution uses the selected project JDK.

Use Maven 0.0.1 for Maven projects and Gradle 1.0.0 for Gradle projects. Supply the build tool yourself or through the project's wrapper.

### Changes

- Validated completion, compilation, execution and breakpoint debugging for ordinary Maven, Gradle and plain Java projects, preserving Java 8 compilation targets.
- The Windows backend statically links compiler runtimes; release checks reject extra VC++/MinGW runtime DLL dependencies.
- Fixed Windows executable paths, Unicode/UNC file URIs, Lombok loading and long classpaths; temporary classpath JARs are removed after execution.
- Recover run actions after cold-index jobs finish, with bounded retries and no background polling.
- Headless macOS and Windows workflows cover breakpoint locals, continue/stop, refusal to run stale classes after compilation errors, closing paused sessions and read-only installed packages.

### Compatibility and known limitations

Native windows, all logging/cancellation paths, inline JUnit/TestNG and Spring/MyBatis have not been fully accepted. JSP HTTP/Servlet debugging does not cover JSP-source completion or JSP breakpoints; Ant source layouts do not cover Ant targets. Java 5/7 source levels, long module-paths, JavaCC models, multi-release JARs and some older generic code remain limited; see README and Lithe #1881–1883.

Measurements found no significant JDT memory or completion-latency improvement. Windows workflows used x64 tools on ARM Windows, so their timings do not represent native AMD64 performance.
2 changes: 1 addition & 1 deletion io.github.lithe-idea.java-support/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"schemaVersion": 0,
"id": "io.github.lithe-idea.java-support",
"displayName": "Java Support",
"version": "1.1.0",
"version": "1.1.1",
"pluginAPIVersion": 0,
"requires": {"backend": 0, "debugAdapters": 0, "languages": 0, "languageServers": 0, "pluginFunctions": 0, "settings": 0, "projectGenerators": 0, "toolDefinitions": 0},
"requiresTools": ["java"],
Expand Down
Loading