From ecfa1478016ac6407e6dbe09c6dc3bcdf1b7a9d7 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 6 Mar 2024 14:54:53 +0100 Subject: [PATCH] Try to repair RWT runner --- .../src/org/argeo/tool/rap/cli/RwtRunner.java | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/swt/rap/org.argeo.tool.rap.cli/src/org/argeo/tool/rap/cli/RwtRunner.java b/swt/rap/org.argeo.tool.rap.cli/src/org/argeo/tool/rap/cli/RwtRunner.java index 4cd6de135..0e20b810a 100644 --- a/swt/rap/org.argeo.tool.rap.cli/src/org/argeo/tool/rap/cli/RwtRunner.java +++ b/swt/rap/org.argeo.tool.rap.cli/src/org/argeo/tool/rap/cli/RwtRunner.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.lang.management.ManagementFactory; import java.nio.file.Files; import java.nio.file.Path; +import java.util.HashMap; import java.util.Objects; import javax.servlet.ServletContextEvent; @@ -17,10 +18,12 @@ import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.util.thread.QueuedThreadPool; +import org.eclipse.rap.rwt.application.Application; import org.eclipse.rap.rwt.application.Application.OperationMode; import org.eclipse.rap.rwt.application.ApplicationConfiguration; import org.eclipse.rap.rwt.application.ApplicationRunner; import org.eclipse.rap.rwt.application.EntryPoint; +import org.eclipse.rap.rwt.application.EntryPointFactory; import org.eclipse.rap.rwt.engine.RWTServlet; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; @@ -58,6 +61,7 @@ public class RwtRunner { // rwt-resources requires a file system try { tempDir = Files.createTempDirectory("argeo-rwtRunner"); + context.setAttribute(ApplicationConfiguration.RESOURCE_ROOT_LOCATION, tempDir.resolve("www").toString()); // FIXME we need a base directory // context.setBaseResource(new PathResource(tempDir.resolve("www"))); } catch (IOException e) { @@ -121,17 +125,27 @@ public class RwtRunner { RwtRunner rwtRunner = new RwtRunner(); String entryPoint = "app"; - ApplicationConfiguration applicationConfiguration = (application) -> { - application.setOperationMode(OperationMode.SWT_COMPATIBILITY); - application.addEntryPoint("/" + entryPoint, () -> new EntryPoint() { - @Override - public int createUI() { - MiniDesktopManager miniDesktopManager = new MiniDesktopManager(false, false); - miniDesktopManager.init(); - miniDesktopManager.run(); - return 0; - } - }, null); + ApplicationConfiguration applicationConfiguration = new ApplicationConfiguration() { + + @Override + public void configure(Application application) { + application.setOperationMode(OperationMode.SWT_COMPATIBILITY); + application.addEntryPoint("/" + entryPoint, new EntryPointFactory() { + + @Override + public EntryPoint create() { + return new EntryPoint() { + @Override + public int createUI() { + MiniDesktopManager miniDesktopManager = new MiniDesktopManager(false, false); + miniDesktopManager.init(); + miniDesktopManager.run(); + return 0; + } + }; + } + }, new HashMap<>()); + } }; rwtRunner.setApplicationConfiguration(applicationConfiguration); -- 2.30.2