Skip to content
Open
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
2 changes: 0 additions & 2 deletions enterprise/web.monitor/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
destdir="build/server-classes"
deprecation="${build.compiler.deprecation}"
debug="${build.compiler.debug}"
source="${javac.source}"
release="8"
includeantruntime="false"
>
Expand Down Expand Up @@ -64,7 +63,6 @@
destdir="build/server-jakarta-classes"
deprecation="${build.compiler.deprecation}"
debug="${build.compiler.debug}"
source="${javac.source}"
release="8"
includeantruntime="false">
<classpath>
Expand Down
3 changes: 2 additions & 1 deletion enterprise/web.monitor/nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
# under the License.

javac.compilerargs=-Xlint -Xlint:-serial
javac.source=1.8
#must be as low as possible since org.netbeans.modules.web.monitor.data is used in the servlet filter
javac.release=8
server.cp.extra=${schema2beans.dir}/modules/org-netbeans-modules-schema2beans.jar:${nb_all}/enterprise/web.monitor/external/servlet-api-6.0.53.jar
server.cp.extra.jakarta=${schema2beans.dir}/modules/org-netbeans-modules-schema2beans.jar:${nb_all}/enterprise/web.monitor/external/tomcat-servlet-api-11.0.7.jar
extra.module.files=modules/ext/org-netbeans-modules-web-httpmonitor.jar,modules/ext/org-netbeans-modules-web-httpmonitor-jakarta.jar
3 changes: 2 additions & 1 deletion enterprise/web.monitor/nbproject/project.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<release-version>1</release-version>
<release-version>2</release-version>
<specification-version>2.0</specification-version>
</run-dependency>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import java.util.Hashtable;
import javax.servlet.http.HttpUtils;
import java.util.Map;
import org.openide.util.NbBundle;
import org.netbeans.modules.web.monitor.data.*;

Expand Down Expand Up @@ -165,8 +164,7 @@ public void tableChanged(TableModelEvent evt) {
try {
String queryString =
rd.getAttributeValue("queryString"); //NOI18N
Hashtable ht =
HttpUtils.parseQueryString(queryString);
Map<String, String[]> ht = Util.parseQueryString(queryString);
rd.setAttributeValue("queryString", ""); //NOI18N
}
catch(Exception ex) { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@
import java.io.StringWriter;
import java.net.URLDecoder;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.swing.SwingUtilities;

import org.openide.filesystems.FileAlreadyLockedException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@
package org.netbeans.modules.web.monitor.client;


import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
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;
import org.netbeans.modules.web.monitor.data.MonitorData;
import org.openide.filesystems.FileObject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,17 @@

package org.netbeans.modules.web.monitor.client;

import java.util.*;
import javax.servlet.http.HttpUtils;
import org.netbeans.modules.web.monitor.data.*;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
import org.netbeans.modules.web.monitor.data.Headers;
import org.netbeans.modules.web.monitor.data.MonitorData;
import org.netbeans.modules.web.monitor.data.Param;
import org.netbeans.modules.web.monitor.data.RequestData;


/**
Expand Down Expand Up @@ -58,7 +66,7 @@ public static void composeQueryString(RequestData rd) {
if(rd.sizeParam() == 0) return;

Param[] params = rd.getParam();
StringBuffer buf = new StringBuffer(512);
StringBuilder buf = new StringBuilder(512);
String name, value;

for(int i=0; i < params.length; i++) {
Expand Down Expand Up @@ -99,22 +107,19 @@ static boolean removeParametersFromQuery(RequestData rd) {
rd.getAttributeValue("queryString"); //NOI18N

// MULTIBYTE - I think this isn't working...
Hashtable ht = null;
Map<String, String[]> ht = null;
try {
ht = HttpUtils.parseQueryString(queryString);
ht = parseQueryString(queryString);
}
catch(IllegalArgumentException iae) {
// do nothing, that's OK
return false;
}
if(ht == null || ht.isEmpty()) return false;

Enumeration<String> e = ht.keys();

while(e.hasMoreElements()) {
String name = e.nextElement();
for (String name : ht.keySet()) {
try {
String[] value = (String[])(ht.get(name));
String[] value = ht.get(name);
for(int i=0; i<value.length; ++i) {
if(debug) System.out.println("Removing " + //NOI18N
name + " " + //NOI18N
Expand All @@ -131,18 +136,16 @@ static boolean removeParametersFromQuery(RequestData rd) {

static void addParametersToQuery(RequestData rd) {

Hashtable ht = null;
Map<String, String[]> ht = null;
String queryString = rd.getAttributeValue("queryString"); //NOI18N
try {
ht = HttpUtils.parseQueryString(queryString);
ht = parseQueryString(queryString);
}
catch(Exception ex) { }

if(ht != null && ht.size() > 0) {
Enumeration<String> e = ht.keys();
while(e.hasMoreElements()) {
String name = e.nextElement();
String[] value = (String[])(ht.get(name));
for (String name : ht.keySet()) {
String[] value = ht.get(name);
for(int i=0; i<value.length; ++i) {
if(debug)
System.out.println("Adding " + name + //NOI18N
Expand Down Expand Up @@ -173,7 +176,7 @@ public static void setSessionCookieHeader(MonitorData md) {

boolean sessionCookie = false;
Param[] params = headers.getParam();
StringBuffer cookiesOut = new StringBuffer(""); //NOI18N
StringBuilder cookiesOut = new StringBuilder(""); //NOI18N

for(int i=0; i<numParams; ++i) {

Expand Down Expand Up @@ -237,4 +240,34 @@ public static Param findParam(Param [] myParams, String name,
}
return null;
}


public static Map<String, String[]> parseQueryString(String queryString) {
Map<String, List<String>> resultPrep = new HashMap<>();
StringTokenizer st = new StringTokenizer(queryString, "&");
while (st.hasMoreTokens()) {
String pair = st.nextToken();
int pos = pair.indexOf('=');

String key;
String val;
try {
if (pos >= 0) {
key = URLDecoder.decode(pair.substring(0, pos), "UTF-8");
val = URLDecoder.decode(pair.substring(pos + 1, pair.length()), "UTF-8");
} else {
key = URLDecoder.decode(pair, "UTF-8");
val = "";
}
resultPrep.computeIfAbsent(key, k -> new ArrayList<>()).add(val);
} catch (UnsupportedEncodingException ignore) {}
}
Map<String, String[]> result = new HashMap<>();
for (String key : resultPrep.keySet()) {
result.put(key, (String[]) resultPrep.get(key).toArray());
}
return result;
}


}
4 changes: 2 additions & 2 deletions ide/httpserver/external/binaries-list
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.

6E0C2F4053E116D67FCE53B73EEC0891547564EB org.apache.tomcat:tomcat-annotations-api:9.0.120
5CD45B75D11191DA4AF66A1AE05667822A4C6647 org.apache.tomcat.embed:tomcat-embed-core:9.0.120
6FF6CAC3EE4DAF6B7C76ADBEED0F2F7A37F7CB9B org.apache.tomcat:tomcat-annotations-api:11.0.25
D4F3C448998C6CF8267FB5077B7EEEB0980CD37D org.apache.tomcat.embed:tomcat-embed-core:11.0.25
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: Apache Tomcat (Annotations Package)
Version: 9.0.120
Version: 11.0.25
License: Apache-2.0
Description: Annotations used in Apache Tomcat
Origin: http://tomcat.apache.org
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Apache Tomcat
Copyright 1999-2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: Apache Tomcat (embedded)
Version: 9.0.120
Version: 11.0.25
License: Apache-2.0-tomcat
Description: Apache Tomcat (embedded) is a library version of the Apache Tomcat servlet container, which can be used to create embedded servlet containers in other applications.
Origin: http://tomcat.apache.org
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
Apache Tomcat
Copyright 1999-2023 The Apache Software Foundation
Copyright 1999-2026 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

The original XML Schemas for Java EE Deployment Descriptors:
- javaee_5.xsd
Expand Down
4 changes: 2 additions & 2 deletions ide/httpserver/nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
javac.compilerargs=-Xlint
javac.release=17
spec.version.base=2.70.0
release.external/tomcat-embed-core-9.0.120.jar=modules/ext/webserver.jar
release.external/tomcat-annotations-api-9.0.120.jar=modules/ext/webserver-annotations.jar
release.external/tomcat-embed-core-11.0.25.jar=modules/ext/webserver.jar
release.external/tomcat-annotations-api-11.0.25.jar=modules/ext/webserver-annotations.jar
test-unit-sys-prop.xtest.data=${nb_all}/ide/httpserver/test/unit/testfs
test.unit.data.dir=${nb_all}/ide/httpserver/test/unit/testfs

Expand Down
7 changes: 4 additions & 3 deletions ide/httpserver/nbproject/project.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@
<build-prerequisite/>
<compile-dependency/>
<run-dependency>
<release-version>1</release-version>
<release-version>2</release-version>
<specification-version>2.0</specification-version>
</run-dependency>
</dependency>
<dependency>
Expand Down Expand Up @@ -162,11 +163,11 @@
<public-packages/>
<class-path-extension>
<runtime-relative-path>ext/webserver.jar</runtime-relative-path>
<binary-origin>external/tomcat-embed-core-9.0.120.jar</binary-origin>
<binary-origin>external/tomcat-embed-core-11.0.25.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/webserver-annotations.jar</runtime-relative-path>
<binary-origin>external/tomcat-annotations-api-9.0.120.jar</binary-origin>
<binary-origin>external/tomcat-annotations-api-11.0.25.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,18 @@

package org.netbeans.modules.httpserver;

import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.rmi.ServerException;
import java.util.Set;
import javax.servlet.*;
import javax.servlet.http.*;
import org.openide.util.Exceptions;
import org.openide.util.NbBundle;

Expand Down Expand Up @@ -65,7 +70,7 @@ protected boolean checkAccess(HttpServletRequest request) throws IOException {
if (settings.getHostProperty ().getHost ().equals(HttpServerSettings.ANYHOST))
return true;

Set hs = settings.getGrantedAddressesSet();
Set<String> hs = settings.getGrantedAddressesSet();

if (hs.contains(request.getRemoteAddr().trim()))
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,18 @@

package org.netbeans.modules.httpserver;

import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.Externalizable;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,22 @@

package org.netbeans.modules.httpserver;

import java.io.InputStream;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.*;

import org.openide.filesystems.FileObject;
import org.openide.filesystems.URLMapper;
import org.openide.util.NbBundle;

import javax.servlet.ServletOutputStream;

/**
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

package org.netbeans.modules.httpserver;

import java.io.DataInputStream;
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import org.netbeans.junit.NbTestCase;

Expand All @@ -43,8 +43,9 @@ public void testServletExecution() throws Exception {
assertTrue("HTTP server has to run", settings.isRunning());
URL url = new URL("http", "localhost", settings.getPort(), "/servlet/org.netbeans.modules.servlettest.ModuleServlet");
log("Connecting to "+url.toExternalForm());
InputStream is = url.openStream();
log(new DataInputStream(is).readLine());
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()))) {
log(reader.readLine());
}
}

}
Loading