From 72b5e6d1485c111f483222c92d046b2e41d487e7 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Sat, 13 Dec 2025 11:13:19 +0000
Subject: [PATCH 1/2] Remove Jetty and related functionality from
CodenameOneDesigner
Removes the embedded Jetty server (LocalServer), related Servlets, and Maven dependencies (jetty-server, jetty-servlet) from the CodenameOneDesigner project.
Also removes the usage of LocalServer from ResourceEditorView.
---
.../com/codename1/designer/LocalServer.java | 97 -------------------
.../designer/ResourceEditorView.java | 3 -
.../src/com/codename1/server/EchoServlet.java | 31 ------
.../codename1/server/LivePreviewServlet.java | 69 -------------
maven/designer/pom.xml | 13 ---
5 files changed, 213 deletions(-)
delete mode 100644 CodenameOneDesigner/src/com/codename1/designer/LocalServer.java
delete mode 100644 CodenameOneDesigner/src/com/codename1/server/EchoServlet.java
delete mode 100644 CodenameOneDesigner/src/com/codename1/server/LivePreviewServlet.java
diff --git a/CodenameOneDesigner/src/com/codename1/designer/LocalServer.java b/CodenameOneDesigner/src/com/codename1/designer/LocalServer.java
deleted file mode 100644
index e611d4f206..0000000000
--- a/CodenameOneDesigner/src/com/codename1/designer/LocalServer.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (c) 2012, Codename One. All rights reserved.
- */
-package com.codename1.designer;
-
-import com.codename1.server.EchoServlet;
-import com.codename1.server.LivePreviewServlet;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.JComponent;
-import javax.swing.JOptionPane;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
-
-/**
- * Local HTTP server currently based on Jetty providing proxy functionality for devices
- * thus allowing faster connection without cloud round trip for devices residing within
- * the same IP range.
- *
- * @author Shai Almog
- */
-public class LocalServer {
- private static int port = -1;
-
- /**
- * Checks if the local server is supported. Jetty must be on the classpath
- * for the server to be supported.
- * @return
- */
- public static boolean isSupported() {
- try {
- // On maven, the jetty dependency isn't included
- // Since this feature isn't really used anymore, we just detect
- // whether it is available and selectively disable the server.
- LocalServer.class.getClassLoader().loadClass("org.eclipse.jetty.server.Server");
- return true;
- } catch (ClassNotFoundException cnfe) {
- return false;
- }
- }
-
- public static int getPort() {
- if(port == -1) {
- int currentPort = 9000;
- while(true) {
- ServerSocket ss = null;
- try {
- ss = new ServerSocket(currentPort);
- ss.setReuseAddress(true);
- } catch (Throwable e) {
- currentPort++;
- continue;
- } finally {
- try {
- ss.close();
- } catch (Throwable e) {
- /* should not be thrown */
- }
- }
- port = currentPort;
- break;
- }
- }
- return port;
- }
-
- private static boolean started;
- public static void startServer(final JComponent root) {
- if(started) {
- return;
- }
- started = true;
- new Thread() {
- public void run() {
- try {
- Server server = new Server(getPort());
-
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
- context.setContextPath("/");
- server.setHandler(context);
-
- context.addServlet(new ServletHolder(new EchoServlet()),"/echo");
- context.addServlet(new ServletHolder(new LivePreviewServlet()),"/preview");
-
- server.start();
- server.join();
- } catch (Throwable ex) {
- ex.printStackTrace();
- JOptionPane.showMessageDialog(root, "Error in HTTP Local Server: " + ex, "Local HTTP Server Error", JOptionPane.ERROR_MESSAGE);
- }
- }
- }.start();
- }
-}
diff --git a/CodenameOneDesigner/src/com/codename1/designer/ResourceEditorView.java b/CodenameOneDesigner/src/com/codename1/designer/ResourceEditorView.java
index 359d383033..e124a7b015 100644
--- a/CodenameOneDesigner/src/com/codename1/designer/ResourceEditorView.java
+++ b/CodenameOneDesigner/src/com/codename1/designer/ResourceEditorView.java
@@ -268,9 +268,6 @@ public void actionPerformed(ActionEvent e) {
initNativeTheme();
- if (LocalServer.isSupported()) {
- LocalServer.startServer(mainPanel);
- }
if(ResourceEditorApp.IS_MAC) {
fileMenu.remove(exitMenuItem);
fileMenu.remove(jSeparator1);
diff --git a/CodenameOneDesigner/src/com/codename1/server/EchoServlet.java b/CodenameOneDesigner/src/com/codename1/server/EchoServlet.java
deleted file mode 100644
index 6a9b8f6445..0000000000
--- a/CodenameOneDesigner/src/com/codename1/server/EchoServlet.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2012, Codename One. All rights reserved.
- */
-package com.codename1.server;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * This servlet is used by the device to try to lookup the PC
- * if the device doesn't get a response from this servlet it
- * assumes a direct connection is impossible and stops seeking
- * the PC to communicate directly with the cloud
- *
- * @author Shai Almog
- */
-public class EchoServlet extends HttpServlet {
- public EchoServlet(){}
-
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- response.setContentType("text/plain");
- response.setStatus(HttpServletResponse.SC_OK);
- PrintWriter w = response.getWriter();
- w.print("CODENAMEONE");
- w.close();
- }
-}
diff --git a/CodenameOneDesigner/src/com/codename1/server/LivePreviewServlet.java b/CodenameOneDesigner/src/com/codename1/server/LivePreviewServlet.java
deleted file mode 100644
index d9591c0b7b..0000000000
--- a/CodenameOneDesigner/src/com/codename1/server/LivePreviewServlet.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2012, Codename One. All rights reserved.
- */
-package com.codename1.server;
-
-import com.codename1.designer.LivePreview;
-import com.codename1.designer.ResourceEditorView;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * This servlet effectively returns the current resource file and settings from
- * the user for the device preview mode.
- *
- * @author Shai Almog
- */
-public class LivePreviewServlet extends HttpServlet {
-
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- response.setContentType("application/Codename-One-Designer");
- response.setStatus(HttpServletResponse.SC_OK);
- DataOutputStream d = new DataOutputStream(response.getOutputStream());
-
- String modified = request.getParameter("m");
- DataOutputStream o = new DataOutputStream(response.getOutputStream());
- String key = request.getParameter("k");
- if(!key.equals(LivePreview.getPreviewKey())) {
- o.writeInt(-1);
- return;
- }
-
- File loadedFile = ResourceEditorView.getLoadedFile();
- if(loadedFile == null || ("" + loadedFile.lastModified()).equals(modified)) {
- o.writeInt(-1);
- o.close();
- return;
- }
-
- if(("" + loadedFile.lastModified()).equals(modified)) {
- o.writeInt(0);
- o.close();
- return;
- }
- o.writeInt(1);
- o.writeUTF(LivePreview.getMainFormSelection());
- String theme = LivePreview.getThemeSelection();
- if(theme == null) {
- theme = "";
- }
- o.writeUTF(theme);
- o.writeUTF("" + loadedFile.lastModified());
- byte[] data = new byte[(int)loadedFile.length()];
- DataInputStream in = new DataInputStream(new FileInputStream(loadedFile));
- in.readFully(data);
- in.close();
- o.write(data);
- o.close();
- System.out.println("Sent response to " + request.getHeader("User-Agent"));
- System.out.println("Host " + request.getHeader("Host"));
- }
-}
diff --git a/maven/designer/pom.xml b/maven/designer/pom.xml
index d75d05d58a..20487dd185 100644
--- a/maven/designer/pom.xml
+++ b/maven/designer/pom.xml
@@ -28,12 +28,6 @@
codenameone-javase-svg
-
-
- org.eclipse.jetty
- jetty-server
- 9.4.41.v20210516
-
org.swinglabs
@@ -52,13 +46,6 @@
swingx-core
1.6.5-1
-
-
- org.eclipse.jetty
- jetty-servlet
- 8.0.4.v20111024
-
-
org.jdesktop
From 1650c331948018dd333d6c86dcdcecddc47e0aeb Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Sat, 13 Dec 2025 11:35:21 +0000
Subject: [PATCH 2/2] Remove Jetty references from NetBeans and Ant build files
Removed Jetty and Servlet API references from `CodenameOneDesigner/nbproject/project.properties` and `CodenameOneDesigner/build.xml`.
---
CodenameOneDesigner/build.xml | 9 ---------
.../nbproject/project.properties | 18 ------------------
2 files changed, 27 deletions(-)
diff --git a/CodenameOneDesigner/build.xml b/CodenameOneDesigner/build.xml
index 308158e9a5..cf821e97d0 100644
--- a/CodenameOneDesigner/build.xml
+++ b/CodenameOneDesigner/build.xml
@@ -121,17 +121,8 @@
-
-
-
-
-
-
-
-
-
diff --git a/CodenameOneDesigner/nbproject/project.properties b/CodenameOneDesigner/nbproject/project.properties
index b98fbaeecc..740b858f2e 100644
--- a/CodenameOneDesigner/nbproject/project.properties
+++ b/CodenameOneDesigner/nbproject/project.properties
@@ -52,17 +52,8 @@ file.reference.batik-transcoder.jar=../../cn1-binaries/svg/batik-transcoder.jar
file.reference.batik-util.jar=../../cn1-binaries/svg/batik-util.jar
file.reference.batik-xml.jar=../../cn1-binaries/svg/batik-xml.jar
file.reference.flute.jar=../../cn1-binaries/designer/flute.jar
-file.reference.jetty-continuation-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-continuation-8.0.4.v20111024.jar
-file.reference.jetty-http-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-http-8.0.4.v20111024.jar
-file.reference.jetty-io-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-io-8.0.4.v20111024.jar
-file.reference.jetty-security-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-security-8.0.4.v20111024.jar
-file.reference.jetty-server-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-server-8.0.4.v20111024.jar
-file.reference.jetty-servlet-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-servlet-8.0.4.v20111024.jar
-file.reference.jetty-servlets-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-servlets-8.0.4.v20111024.jar
-file.reference.jetty-util-8.0.4.v20111024.jar=../../cn1-binaries/designer/jetty-util-8.0.4.v20111024.jar
file.reference.js.jar=../../cn1-binaries/svg/js.jar
file.reference.sac-1.3.jar=../../cn1-binaries/designer/sac-1.3.jar
-file.reference.servlet-api-3.0.jar=../../cn1-binaries/designer/servlet-api-3.0.jar
file.reference.swing-layout-1.0.3.jar=../../cn1-binaries/designer/swing-layout-1.0.3.jar
file.reference.swing-layout-1.0.4.jar=../../cn1-binaries/designer/swing-layout/swing-layout-1.0.4.jar
file.reference.swing-worker-1.1.jar=../../cn1-binaries/designer/swing-app-framework/swing-worker-1.1.jar
@@ -79,15 +70,6 @@ jar.compress=false
javac.classpath=\
${reference.JavaSE.jar}:\
${file.reference.ant.jar}:\
- ${file.reference.jetty-continuation-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-http-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-io-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-security-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-server-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-servlet-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-servlets-8.0.4.v20111024.jar}:\
- ${file.reference.jetty-util-8.0.4.v20111024.jar}:\
- ${file.reference.servlet-api-3.0.jar}:\
${file.reference.swing-layout-1.0.3.jar}:\
${file.reference.swingx-beaninfo-1.6.2.jar}:\
${file.reference.swingx-core-1.6.2.jar}:\