]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - swt/rap/org.argeo.tool.rap.cli/src/org/argeo/tool/rap/cli/RwtRunner.java
Try to repair RWT runner
[gpl/argeo-slc.git] / swt / rap / org.argeo.tool.rap.cli / src / org / argeo / tool / rap / cli / RwtRunner.java
index 0974a779ede2fe46ea96163e95eae9a690ca07e9..0e20b810a06f07c62000c11b3759766fadfe6bc6 100644 (file)
@@ -4,24 +4,26 @@ 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;
 import javax.servlet.ServletContextListener;
 
 import org.argeo.minidesktop.MiniDesktopManager;
+import org.eclipse.jetty.ee8.servlet.DefaultServlet;
+import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee8.servlet.ServletHolder;
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.servlet.DefaultServlet;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-import org.eclipse.jetty.util.resource.Resource;
 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.Application.OperationMode;
+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;
@@ -59,7 +61,9 @@ public class RwtRunner {
                // rwt-resources requires a file system
                try {
                        tempDir = Files.createTempDirectory("argeo-rwtRunner");
-                       context.setBaseResource(Resource.newResource(tempDir.resolve("www").toString()));
+                       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) {
                        throw new IllegalStateException("Cannot create temporary directory", 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);