mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-16 19:33:11 +02:00
removal of old java desktop + workspace change in tauri (#5459)
# Description of Changes <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
This commit is contained in:
@@ -199,7 +199,6 @@ return useToolOperation({
|
|||||||
|
|
||||||
- **Java Version**: Minimum JDK 17, supports and recommends JDK 21
|
- **Java Version**: Minimum JDK 17, supports and recommends JDK 21
|
||||||
- **Lombok**: Used extensively - ensure IDE plugin is installed
|
- **Lombok**: Used extensively - ensure IDE plugin is installed
|
||||||
- **Desktop Mode**: Set `STIRLING_PDF_DESKTOP_UI=true` for desktop application mode
|
|
||||||
- **File Persistence**:
|
- **File Persistence**:
|
||||||
- **Backend**: Designed to be stateless - files are processed in memory/temp locations only
|
- **Backend**: Designed to be stateless - files are processed in memory/temp locations only
|
||||||
- **Frontend**: Uses IndexedDB for client-side file storage and caching (with thumbnails)
|
- **Frontend**: Uses IndexedDB for client-side file storage and caching (with thumbnails)
|
||||||
|
|||||||
-24
@@ -1,8 +1,6 @@
|
|||||||
package stirling.software.common.configuration;
|
package stirling.software.common.configuration;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -61,28 +59,6 @@ public class InstallationPathConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String initializeBasePath() {
|
private static String initializeBasePath() {
|
||||||
if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) {
|
|
||||||
String os = System.getProperty("os.name").toLowerCase(Locale.ROOT);
|
|
||||||
if (os.contains("win")) {
|
|
||||||
return Paths.get(
|
|
||||||
System.getenv("APPDATA"), // parent path
|
|
||||||
"Stirling-PDF")
|
|
||||||
+ File.separator;
|
|
||||||
} else if (os.contains("mac")) {
|
|
||||||
return Paths.get(
|
|
||||||
System.getProperty("user.home"),
|
|
||||||
"Library",
|
|
||||||
"Application Support",
|
|
||||||
"Stirling-PDF")
|
|
||||||
+ File.separator;
|
|
||||||
} else {
|
|
||||||
return Paths.get(
|
|
||||||
System.getProperty("user.home"), // parent path
|
|
||||||
".config",
|
|
||||||
"Stirling-PDF")
|
|
||||||
+ File.separator;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "." + File.separator;
|
return "." + File.separator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,13 +38,6 @@ spotless {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
if (System.getenv('STIRLING_PDF_DESKTOP_UI') != 'false'
|
|
||||||
|| (project.hasProperty('STIRLING_PDF_DESKTOP_UI')
|
|
||||||
&& project.getProperty('STIRLING_PDF_DESKTOP_UI') != 'false')) {
|
|
||||||
implementation 'org.openjfx:javafx-controls:21'
|
|
||||||
implementation 'org.openjfx:javafx-swing:21'
|
|
||||||
}
|
|
||||||
|
|
||||||
if (System.getenv('DISABLE_ADDITIONAL_FEATURES') != 'true'
|
if (System.getenv('DISABLE_ADDITIONAL_FEATURES') != 'true'
|
||||||
|| (project.hasProperty('DISABLE_ADDITIONAL_FEATURES')
|
|| (project.hasProperty('DISABLE_ADDITIONAL_FEATURES')
|
||||||
&& System.getProperty('DISABLE_ADDITIONAL_FEATURES') != 'true')) {
|
&& System.getProperty('DISABLE_ADDITIONAL_FEATURES') != 'true')) {
|
||||||
@@ -115,19 +108,8 @@ sourceSets {
|
|||||||
resources {
|
resources {
|
||||||
srcDirs += ['../configs']
|
srcDirs += ['../configs']
|
||||||
}
|
}
|
||||||
java {
|
|
||||||
if (System.getenv('STIRLING_PDF_DESKTOP_UI') == 'false') {
|
|
||||||
exclude 'stirling/software/SPDF/UI/impl/**'
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
test {
|
test {
|
||||||
java {
|
|
||||||
if (System.getenv('STIRLING_PDF_DESKTOP_UI') == 'false') {
|
|
||||||
exclude 'stirling/software/SPDF/UI/impl/**'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
|||||||
import io.github.pixee.security.SystemCommand;
|
import io.github.pixee.security.SystemCommand;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.annotation.PreDestroy;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -28,7 +27,6 @@ import stirling.software.common.configuration.AppConfig;
|
|||||||
import stirling.software.common.configuration.ConfigInitializer;
|
import stirling.software.common.configuration.ConfigInitializer;
|
||||||
import stirling.software.common.configuration.InstallationPathConfig;
|
import stirling.software.common.configuration.InstallationPathConfig;
|
||||||
import stirling.software.common.model.ApplicationProperties;
|
import stirling.software.common.model.ApplicationProperties;
|
||||||
import stirling.software.common.util.UrlUtils;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
@@ -60,19 +58,6 @@ public class SPDFApplication {
|
|||||||
|
|
||||||
Properties props = new Properties();
|
Properties props = new Properties();
|
||||||
|
|
||||||
if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) {
|
|
||||||
System.setProperty("java.awt.headless", "false");
|
|
||||||
app.setHeadless(false);
|
|
||||||
props.put("java.awt.headless", "false");
|
|
||||||
props.put("spring.main.web-application-type", "servlet");
|
|
||||||
|
|
||||||
int desiredPort = 8080;
|
|
||||||
String port = UrlUtils.findAvailablePort(desiredPort);
|
|
||||||
props.put("server.port", port);
|
|
||||||
System.setProperty("server.port", port);
|
|
||||||
log.info("Desktop UI mode: Using port {}", port);
|
|
||||||
}
|
|
||||||
|
|
||||||
app.setAdditionalProfiles(getActiveProfile(args));
|
app.setAdditionalProfiles(getActiveProfile(args));
|
||||||
|
|
||||||
ConfigInitializer initializer = new ConfigInitializer();
|
ConfigInitializer initializer = new ConfigInitializer();
|
||||||
@@ -153,13 +138,6 @@ public class SPDFApplication {
|
|||||||
"Running in Tauri mode. Parent process PID: {}",
|
"Running in Tauri mode. Parent process PID: {}",
|
||||||
parentPid != null ? parentPid : "not set");
|
parentPid != null ? parentPid : "not set");
|
||||||
}
|
}
|
||||||
// Desktop UI initialization removed - webBrowser dependency eliminated
|
|
||||||
// Keep backwards compatibility for STIRLING_PDF_DESKTOP_UI system property
|
|
||||||
if (Boolean.parseBoolean(System.getProperty("STIRLING_PDF_DESKTOP_UI", "false"))) {
|
|
||||||
log.info("Desktop UI mode enabled, but WebBrowser functionality has been removed");
|
|
||||||
// webBrowser.initWebUI(url); // Removed - desktop UI eliminated
|
|
||||||
}
|
|
||||||
|
|
||||||
// Standard browser opening logic
|
// Standard browser opening logic
|
||||||
String browserOpenEnv = env.getProperty("BROWSER_OPEN");
|
String browserOpenEnv = env.getProperty("BROWSER_OPEN");
|
||||||
boolean browserOpen = browserOpenEnv != null && "true".equalsIgnoreCase(browserOpenEnv);
|
boolean browserOpen = browserOpenEnv != null && "true".equalsIgnoreCase(browserOpenEnv);
|
||||||
@@ -192,14 +170,6 @@ public class SPDFApplication {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
|
||||||
public void cleanup() {
|
|
||||||
// webBrowser cleanup removed - desktop UI eliminated
|
|
||||||
// if (webBrowser != null) {
|
|
||||||
// webBrowser.cleanup();
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventListener
|
@EventListener
|
||||||
public void onWebServerInitialized(WebServerInitializedEvent event) {
|
public void onWebServerInitialized(WebServerInitializedEvent event) {
|
||||||
int actualPort = event.getWebServer().getPort();
|
int actualPort = event.getWebServer().getPort();
|
||||||
|
|||||||
@@ -1596,30 +1596,6 @@
|
|||||||
"moduleLicense": "Mozilla Public License, Version 2.0",
|
"moduleLicense": "Mozilla Public License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.mozilla.org/MPL/2.0/index.txt"
|
"moduleLicenseUrl": "http://www.mozilla.org/MPL/2.0/index.txt"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "org.openjfx:javafx-base",
|
|
||||||
"moduleVersion": "21",
|
|
||||||
"moduleLicense": "GPLv2+CE",
|
|
||||||
"moduleLicenseUrl": "https://openjdk.java.net/legal/gplv2+ce.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.openjfx:javafx-controls",
|
|
||||||
"moduleVersion": "21",
|
|
||||||
"moduleLicense": "GPLv2+CE",
|
|
||||||
"moduleLicenseUrl": "https://openjdk.java.net/legal/gplv2+ce.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.openjfx:javafx-graphics",
|
|
||||||
"moduleVersion": "21",
|
|
||||||
"moduleLicense": "GPLv2+CE",
|
|
||||||
"moduleLicenseUrl": "https://openjdk.java.net/legal/gplv2+ce.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.openjfx:javafx-swing",
|
|
||||||
"moduleVersion": "21",
|
|
||||||
"moduleLicense": "GPLv2+CE",
|
|
||||||
"moduleLicenseUrl": "https://openjdk.java.net/legal/gplv2+ce.html"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "org.opensaml:opensaml-core",
|
"moduleName": "org.opensaml:opensaml-core",
|
||||||
"moduleVersion": "4.3.2",
|
"moduleVersion": "4.3.2",
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build server-only JAR (no frontend, includes security features controlled by DOCKER_ENABLE_SECURITY at runtime)
|
# Build server-only JAR (no frontend, includes security features controlled by DOCKER_ENABLE_SECURITY at runtime)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Stage 3: Final unified image
|
# Stage 3: Final unified image
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ WORKDIR /app
|
|||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Stage 3: Final unified ultra-lite image
|
# Stage 3: Final unified ultra-lite image
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build the application (server-only JAR - no UI, includes security features controlled at runtime)
|
# Build the application (server-only JAR - no UI, includes security features controlled at runtime)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build the application (server-only JAR - no UI, includes security features controlled at runtime)
|
# Build the application (server-only JAR - no UI, includes security features controlled at runtime)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build the application with DISABLE_ADDITIONAL_FEATURES=true
|
# Build the application with DISABLE_ADDITIONAL_FEATURES=true
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# ========================================
|
# ========================================
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build JAR with embedded frontend (includes security features controlled at runtime)
|
# Build JAR with embedded frontend (includes security features controlled at runtime)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Stage 2: Runtime image based on Debian stable-slim
|
# Stage 2: Runtime image based on Debian stable-slim
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build JAR with embedded frontend (includes security features controlled at runtime)
|
# Build JAR with embedded frontend (includes security features controlled at runtime)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
RUN DISABLE_ADDITIONAL_FEATURES=false \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Stage 2: Runtime image based on Debian stable-slim
|
# Stage 2: Runtime image based on Debian stable-slim
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ COPY . .
|
|||||||
|
|
||||||
# Build ultra-lite JAR with embedded frontend (minimal features)
|
# Build ultra-lite JAR with embedded frontend (minimal features)
|
||||||
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
RUN DISABLE_ADDITIONAL_FEATURES=true \
|
||||||
STIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
./gradlew clean build -PbuildWithFrontend=true -x spotlessApply -x spotlessCheck -x test -x sonarqube
|
||||||
|
|
||||||
# Stage 2: Runtime image
|
# Stage 2: Runtime image
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use tauri_plugin_shell::ShellExt;
|
use tauri_plugin_shell::ShellExt;
|
||||||
use tauri::Manager;
|
use tauri::Manager;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use std::path::PathBuf;
|
use std::path::{Path, PathBuf};
|
||||||
use crate::utils::add_log;
|
use crate::utils::add_log;
|
||||||
use crate::state::connection_state::{AppConnectionState, ConnectionMode};
|
use crate::state::connection_state::{AppConnectionState, ConnectionMode};
|
||||||
|
|
||||||
@@ -126,6 +126,45 @@ fn normalize_path(path: &PathBuf) -> PathBuf {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn migrate_legacy_workspace(legacy_dir: &PathBuf, target_root: &PathBuf) -> std::io::Result<()> {
|
||||||
|
for entry in std::fs::read_dir(legacy_dir)? {
|
||||||
|
let entry = entry?;
|
||||||
|
let file_type = entry.file_type()?;
|
||||||
|
let src_path = entry.path();
|
||||||
|
let dest_path = target_root.join(entry.file_name());
|
||||||
|
|
||||||
|
if file_type.is_dir() {
|
||||||
|
copy_dir_recursive(&src_path, &dest_path)?;
|
||||||
|
} else if file_type.is_file() {
|
||||||
|
if let Some(parent) = dest_path.parent() {
|
||||||
|
std::fs::create_dir_all(parent)?;
|
||||||
|
}
|
||||||
|
std::fs::copy(&src_path, &dest_path)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn copy_dir_recursive(src: &Path, dest: &Path) -> std::io::Result<()> {
|
||||||
|
std::fs::create_dir_all(dest)?;
|
||||||
|
|
||||||
|
for entry in std::fs::read_dir(src)? {
|
||||||
|
let entry = entry?;
|
||||||
|
let file_type = entry.file_type()?;
|
||||||
|
let src_path = entry.path();
|
||||||
|
let dest_path = dest.join(entry.file_name());
|
||||||
|
|
||||||
|
if file_type.is_dir() {
|
||||||
|
copy_dir_recursive(&src_path, &dest_path)?;
|
||||||
|
} else if file_type.is_file() {
|
||||||
|
std::fs::copy(&src_path, &dest_path)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
// Create, configure and run the Java command to run Stirling-PDF JAR
|
// Create, configure and run the Java command to run Stirling-PDF JAR
|
||||||
fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &PathBuf) -> Result<(), String> {
|
fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &PathBuf) -> Result<(), String> {
|
||||||
// Get platform-specific application data directory for Tauri mode
|
// Get platform-specific application data directory for Tauri mode
|
||||||
@@ -143,7 +182,8 @@ fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &
|
|||||||
// Create subdirectories for different purposes
|
// Create subdirectories for different purposes
|
||||||
let config_dir = app_data_dir.join("configs");
|
let config_dir = app_data_dir.join("configs");
|
||||||
let log_dir = app_data_dir.join("logs");
|
let log_dir = app_data_dir.join("logs");
|
||||||
let work_dir = app_data_dir.join("workspace");
|
let work_dir = app_data_dir.clone();
|
||||||
|
let legacy_work_dir = app_data_dir.join("workspace");
|
||||||
|
|
||||||
// Create all necessary directories
|
// Create all necessary directories
|
||||||
std::fs::create_dir_all(&app_data_dir).ok();
|
std::fs::create_dir_all(&app_data_dir).ok();
|
||||||
@@ -151,6 +191,19 @@ fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &
|
|||||||
std::fs::create_dir_all(&work_dir).ok();
|
std::fs::create_dir_all(&work_dir).ok();
|
||||||
std::fs::create_dir_all(&config_dir).ok();
|
std::fs::create_dir_all(&config_dir).ok();
|
||||||
|
|
||||||
|
// Migrate legacy workspace content into the app data root before launch.
|
||||||
|
if legacy_work_dir.exists() {
|
||||||
|
add_log(format!("📦 Migrating legacy workspace from {}", legacy_work_dir.display()));
|
||||||
|
if let Err(err) = migrate_legacy_workspace(&legacy_work_dir, &app_data_dir) {
|
||||||
|
add_log(format!("⚠️ Failed to migrate legacy workspace: {}", err));
|
||||||
|
} else {
|
||||||
|
match std::fs::remove_dir_all(&legacy_work_dir) {
|
||||||
|
Ok(_) => add_log("✅ Removed legacy workspace directory after migration".to_string()),
|
||||||
|
Err(err) => add_log(format!("⚠️ Failed to remove legacy workspace: {}", err)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
add_log(format!("📁 App data directory: {}", app_data_dir.display()));
|
add_log(format!("📁 App data directory: {}", app_data_dir.display()));
|
||||||
add_log(format!("📁 Log directory: {}", log_dir.display()));
|
add_log(format!("📁 Log directory: {}", log_dir.display()));
|
||||||
add_log(format!("📁 Working directory: {}", work_dir.display()));
|
add_log(format!("📁 Working directory: {}", work_dir.display()));
|
||||||
@@ -162,7 +215,6 @@ fn run_stirling_pdf_jar(app: &tauri::AppHandle, java_path: &PathBuf, jar_path: &
|
|||||||
let java_options = vec![
|
let java_options = vec![
|
||||||
"-Xmx2g",
|
"-Xmx2g",
|
||||||
"-DBROWSER_OPEN=false",
|
"-DBROWSER_OPEN=false",
|
||||||
"-DSTIRLING_PDF_DESKTOP_UI=false",
|
|
||||||
"-DSTIRLING_PDF_TAURI_MODE=true",
|
"-DSTIRLING_PDF_TAURI_MODE=true",
|
||||||
&log_path_option,
|
&log_path_option,
|
||||||
"-Dlogging.file.name=stirling-pdf.log",
|
"-Dlogging.file.name=stirling-pdf.log",
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ echo REM Launch with bundled JRE >> "frontend\src-tauri\runtime\launch-stirling.
|
|||||||
echo "%%JRE_DIR%%\bin\java.exe" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
echo "%%JRE_DIR%%\bin\java.exe" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
||||||
echo -Xmx2g ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
echo -Xmx2g ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
||||||
echo -DBROWSER_OPEN=true ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
echo -DBROWSER_OPEN=true ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
||||||
echo -DSTIRLING_PDF_DESKTOP_UI=false ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
|
||||||
echo -jar "%%STIRLING_JAR%%" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
echo -jar "%%STIRLING_JAR%%" ^^ >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
||||||
echo %%* >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
echo %%* >> "frontend\src-tauri\runtime\launch-stirling.bat"
|
||||||
|
|
||||||
|
|||||||
@@ -159,7 +159,6 @@ fi
|
|||||||
"$JRE_DIR/bin/java" \
|
"$JRE_DIR/bin/java" \
|
||||||
-Xmx2g \
|
-Xmx2g \
|
||||||
-DBROWSER_OPEN=true \
|
-DBROWSER_OPEN=true \
|
||||||
-DSTIRLING_PDF_DESKTOP_UI=false \
|
|
||||||
-jar "$STIRLING_JAR" \
|
-jar "$STIRLING_JAR" \
|
||||||
"$@"
|
"$@"
|
||||||
EOF
|
EOF
|
||||||
@@ -188,7 +187,6 @@ REM Launch with bundled JRE
|
|||||||
"%JRE_DIR%\bin\java.exe" ^
|
"%JRE_DIR%\bin\java.exe" ^
|
||||||
-Xmx2g ^
|
-Xmx2g ^
|
||||||
-DBROWSER_OPEN=true ^
|
-DBROWSER_OPEN=true ^
|
||||||
-DSTIRLING_PDF_DESKTOP_UI=false ^
|
|
||||||
-jar "%STIRLING_JAR%" ^
|
-jar "%STIRLING_JAR%" ^
|
||||||
%*
|
%*
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user