diff --git a/README.md b/README.md index 74b57d287438a5c3b095cbbe024ca93a83293453..7ad014f2863fec37c98ce6b4452be4471e4ab83d 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,11 @@ # smart-servlet -smart-servlet 是一款实现了Servlet 3.1规范,支持多应用隔离部署的的 Web 容器。 -除此之外,smart-servlet 还是一款插件化容器,基于内置的沙箱环境确保 smart-servlet 拥有最精简的运行能力,用户还可以通过自定义插件扩展容器的服务能力。 +smart-servlet是目前 Gitee、Github 平台上首款,也是唯一款全栈核心技术自研的国产开源的Servlet容器项目。 +本项目遵循Servlet 3.1规范,支持多应用隔离部署的的 Web 容器。 - -## Part 1. 项目概述 + -smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了 Servlet 规范。这意味着任何 smart-http 服务都可以通过单独引入 smart-servlet 核心包的方式,将普通的 http 应用改造成 servlet 应用,而且这个成本是极低的。 - -![](https://foruda.gitee.com/images/1666446010203449163/fca34841_351975.png) **产品特色** - 国产血统:核心技术 100% 全栈自研。 @@ -17,81 +13,12 @@ smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了 - 安全可靠:严格遵循协议规范;支持加密传输方式。 - 简洁易用:支持 War 包、springboot、maven-plugin等多种运行模式,使用体验100%兼容 Tomcat。 -### 工程模块 - -- smart-servlet 【工程主目录】 - - servlet-core【servlet规范实现核心包】 - - plugins【容器可扩展插件】 - - dispatcher【RequestDispatcher插件,**必选**】 - - session【HttpSession插件,**可选**】 - - websocket【 JSR 356 规范插件,**可选**】 - - smart-servlet-maven-plugin【业务系统通过pom.xml集成本地开发环境】 - - spring-boot-start【springboot业务系统通过pom.xml集成本地开发环境】 - -## Part 2. 操作手册 - - -### 2.1 示例演示 - -1. 下载最新版发行包:https://gitee.com/smartboot/smart-servlet/releases - -2. 解压安装包,启动服务:`smart-servlet-bin-x.x.x/bin/start.sh` - -3. 若启动过程无任何异常,打开浏览器访问 [http://127.0.0.1:8080/](http:127.0.0.1:8080/)。 - - - -### 2.2 业务系统集成smart-servlet - -根据业务工程实际情况选择相应的集成方式。 - -- maven plugin - - 适用于传统的 Servlet 或者 Spring MVC 工程,且必须是 maven 工程。需要在 web 模块所在的 pom.xml 中加入以下配置,若存在端口冲突自行调整。完成配置后通过:`mvn smart-servlet:run` 启动服务。 - ```xml - - - - - - org.smartboot.servlet - smart-servlet-maven-plugin - 0.4 - - 8080 - - - - - - ``` +![](https://foruda.gitee.com/images/1666446010203449163/fca34841_351975.png) -- springboot starter +> 本项目可用于个人学习,未经授权不得用于商业场景。 - 对于 Springboot 提供的集成方式,替换原 spring-boot-starter-web 默认绑定的 Servlet 容器。 - ```xml - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-tomcat - - - - - org.smartboot.servlet - smart-servlet-spring-boot-starter - 0.4 - - - - ``` +**[《使用手册》](https://smartboot.tech/smart-servlet/quickstart.html)** ### 代码贡献者 @@ -101,4 +28,6 @@ smart-servlet 在 smart-http 的架构之上,通过继承 HttpHandle 实现了 - [smart-socket](https://gitee.com/smartboot/smart-socket) 极简、易用、高性能的AIO通信框架,5G时代的通信微内核,适用于IM、RPC、IoT等诸多领域 - [smart-http](https://gitee.com/smartboot/smart-http) - 基于smart-socket实现的轻量级http服务器 \ No newline at end of file + 基于smart-socket实现的轻量级http服务器 +- [smart-mqtt](https://gitee.com/smartboot/smart-mqtt) + 基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。 \ No newline at end of file diff --git a/pom.xml b/pom.xml index ee2ce2d8b4dfd7848af8e068b3ee6da04af77d8e..138a2ee9550dd59da83a5b69daa72d6869b98e5a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ pom - 1.2.7 + 1.3.1 0.4 4.0.1 @@ -38,25 +38,22 @@ ${smartservlet.version} - - javax.servlet - javax.servlet-api - ${servlet.version} - jakarta.servlet jakarta.servlet-api 5.0.0 + - javax.annotation - javax.annotation-api - ${javax.annotation.version} + jakarta.annotation + jakarta.annotation-api + 2.0.0 + - javax.websocket - javax.websocket-api - 1.1 + jakarta.websocket + jakarta.websocket-api + 2.0.0 @@ -120,8 +117,8 @@ org.apache.maven.plugins maven-compiler-plugin - 1.8 - 1.8 + 21 + 21 UTF-8 @@ -150,24 +147,24 @@ - - org.apache.maven.plugins - maven-javadoc-plugin - - - true - public - -Xdoclint:none - - - - attach-javadocs - - jar - - - - + + + + + + + + + + + + + + + + + + org.apache.maven.plugins maven-gpg-plugin @@ -198,7 +195,7 @@ org.apache.maven.plugins maven-plugin-plugin - 3.6.4 + 3.9.0 org.apache.maven.plugins @@ -234,11 +231,11 @@ - - - - - + + alimaven + aliyun maven + http://mirrors.cloud.tencent.com/nexus/repository/maven-public + sonatype-nexus-snapshots Sonatype Nexus Snapshots diff --git a/servlet-core/pom.xml b/servlet-core/pom.xml index d4c22ff053c62ddb623030c32a9f8502ca600baf..dd09a1bde80c91fb1a6c8ee3956550eebf4c2065 100644 --- a/servlet-core/pom.xml +++ b/servlet-core/pom.xml @@ -25,25 +25,27 @@ - - javax.servlet - javax.servlet-api - jakarta.servlet jakarta.servlet-api - javax.annotation - javax.annotation-api + jakarta.annotation + jakarta.annotation-api org.smartboot.http smart-http-server - javax.websocket - javax.websocket-api + jakarta.websocket + jakarta.websocket-api + + + + org.mortbay.jasper + apache-jsp + 10.1.5 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/AnnotationsLoader.java b/servlet-core/src/main/java/org/smartboot/servlet/AnnotationsLoader.java index d7e6fd5b506fd5379063fd6c2124313c9b8f958e..f564c0e14e86736c0b5606d2a3f13d45e2207247 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/AnnotationsLoader.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/AnnotationsLoader.java @@ -18,11 +18,11 @@ import org.smartboot.servlet.third.bcel.classfile.ClassParser; import org.smartboot.servlet.third.bcel.classfile.JavaClass; import org.smartboot.servlet.util.CollectionUtils; -import javax.servlet.ServletContainerInitializer; -import javax.servlet.annotation.HandlesTypes; -import javax.servlet.annotation.WebInitParam; -import javax.servlet.annotation.WebListener; -import javax.servlet.annotation.WebServlet; +import jakarta.servlet.ServletContainerInitializer; +import jakarta.servlet.annotation.HandlesTypes; +import jakarta.servlet.annotation.WebInitParam; +import jakarta.servlet.annotation.WebListener; +import jakarta.servlet.annotation.WebServlet; import java.io.File; import java.io.FileInputStream; import java.io.IOException; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java b/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java index ecfbdb19f64fa68727df372ab61b2cddacabbe7d..c37b8b8fdc9fb2bfcb4f9d753f65612a65fab225 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/ContainerRuntime.java @@ -10,6 +10,9 @@ package org.smartboot.servlet; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.ServletContainerInitializer; +import jakarta.servlet.ServletResponse; import org.smartboot.http.common.logging.Logger; import org.smartboot.http.common.logging.LoggerFactory; import org.smartboot.http.common.utils.StringUtils; @@ -33,9 +36,6 @@ import org.smartboot.servlet.impl.HttpServletResponseImpl; import org.smartboot.servlet.impl.ServletContextImpl; import org.smartboot.servlet.plugins.Plugin; -import javax.servlet.DispatcherType; -import javax.servlet.ServletContainerInitializer; -import javax.servlet.ServletResponse; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -115,8 +115,6 @@ public class ContainerRuntime { for (ServletContextRuntime runtime : runtimes) { runtime.start(); } - - } /** @@ -221,12 +219,9 @@ public class ContainerRuntime { ServletContextImpl servletContext = runtime.getServletContext(); Thread.currentThread().setContextClassLoader(servletContext.getClassLoader()); runtime.getWebsocketProvider().doHandle(runtime, request, response); - } catch (Exception e) { - throw new WrappedRuntimeException(e); } finally { Thread.currentThread().setContextClassLoader(classLoader); } - } /** diff --git a/servlet-core/src/main/java/org/smartboot/servlet/DefaultServlet.java b/servlet-core/src/main/java/org/smartboot/servlet/DefaultServlet.java index e1776e580d20f7ed9dae1e53ebbebbe64fb69952..2db171f85a06d0be1425a6802bf458ee097ffe00 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/DefaultServlet.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/DefaultServlet.java @@ -11,6 +11,13 @@ package org.smartboot.servlet; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.smartboot.http.common.enums.HeaderNameEnum; import org.smartboot.http.common.enums.HttpMethodEnum; import org.smartboot.http.common.enums.HttpStatus; @@ -18,15 +25,9 @@ import org.smartboot.http.common.logging.Logger; import org.smartboot.http.common.logging.LoggerFactory; import org.smartboot.http.common.utils.Mimetypes; import org.smartboot.http.common.utils.StringUtils; +import org.smartboot.servlet.conf.DeploymentInfo; import org.smartboot.servlet.exception.WrappedRuntimeException; -import javax.servlet.DispatcherType; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -38,10 +39,8 @@ import java.net.URL; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.text.SimpleDateFormat; -import java.util.Collections; import java.util.Date; import java.util.Enumeration; -import java.util.List; import java.util.Locale; /** @@ -69,15 +68,11 @@ class DefaultServlet extends HttpServlet { /** * 默认页面 */ - private final List welcomeFiles; private long faviconModifyTime; + private DeploymentInfo deploymentInfo; - public DefaultServlet() { - this.welcomeFiles = Collections.emptyList(); - } - - public DefaultServlet(List welcomeFiles) { - this.welcomeFiles = welcomeFiles; + public DefaultServlet(DeploymentInfo deploymentInfo) { + this.deploymentInfo = deploymentInfo; } @Override @@ -187,33 +182,33 @@ class DefaultServlet extends HttpServlet { */ private void forwardWelcome(HttpServletRequest request, HttpServletResponse response, String method) throws URISyntaxException, IOException, ServletException { String welcome = matchForwardWelcome(request); + if (StringUtils.isNotBlank(welcome)) { + //找到有效welcome file,执行服务端跳转 + LOGGER.info("执行 welcome 服务端跳转..."); + request.getRequestDispatcher(welcome).forward(request, response); + return; + } // 404 - if (welcome == null) { - LOGGER.info("file:" + request.getRequestURI() + " not found!"); - //《Servlet3.1规范中文版》9.3 include 方法 - //如果默认的 servlet 是 RequestDispatch.include()的目标 servlet, - // 而且请求的资源不存在,那么默认的 servlet 必须抛出 FileNotFoundException 异常。 - // 如果这个异常没有被捕获和处理,以及响应还未􏰀交,则响应状态 码必须被设置为 500。 - if (request.getDispatcherType() == DispatcherType.INCLUDE) { - response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value(), HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase()); - throw new FileNotFoundException(); - } - response.sendError(HttpStatus.NOT_FOUND.value(), HttpStatus.NOT_FOUND.getReasonPhrase()); - response.setHeader(HeaderNameEnum.CONTENT_TYPE.getName(), "text/html; charset=utf-8"); + LOGGER.info("file:" + request.getRequestURI() + " not found!"); + //《Servlet3.1规范中文版》9.3 include 方法 + //如果默认的 servlet 是 RequestDispatch.include()的目标 servlet, + // 而且请求的资源不存在,那么默认的 servlet 必须抛出 FileNotFoundException 异常。 + // 如果这个异常没有被捕获和处理,以及响应还未􏰀交,则响应状态 码必须被设置为 500。 + if (request.getDispatcherType() == DispatcherType.INCLUDE) { + response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value(), HttpStatus.INTERNAL_SERVER_ERROR.getReasonPhrase()); + throw new FileNotFoundException(); + } - if (!HttpMethodEnum.HEAD.getMethod().equals(method)) { - response.getOutputStream().write(URL_404.getBytes()); - } + response.sendError(HttpStatus.NOT_FOUND.value(), HttpStatus.NOT_FOUND.getReasonPhrase()); + String location = deploymentInfo.getErrorPageLocation(HttpStatus.NOT_FOUND.value()); + if (StringUtils.isNotBlank(location)) { + request.getRequestDispatcher(location).forward(request, response); return; } - if (welcome.endsWith("/")) { - // 以"/"通过302跳转触发 welcome file逻辑 - LOGGER.info("执行 welcome 302跳转..."); - response.sendRedirect(welcome); - } else { - //找到有效welcome file,执行服务端跳转 - LOGGER.info("执行 welcome 服务端跳转..."); - request.getRequestDispatcher(welcome).forward(request, response); + response.setHeader(HeaderNameEnum.CONTENT_TYPE.getName(), "text/html; charset=utf-8"); + + if (!HttpMethodEnum.HEAD.getMethod().equals(method)) { + response.getOutputStream().write(URL_404.getBytes()); } } @@ -221,7 +216,7 @@ class DefaultServlet extends HttpServlet { String requestUri = request.getRequestURI(); ServletContext servletContext = request.getServletContext(); if (requestUri.endsWith("/")) { - for (String file : welcomeFiles) { + for (String file : deploymentInfo.getWelcomeFiles()) { String uri = requestUri.substring(request.getContextPath().length()); URL welcomeUrl = servletContext.getResource(uri + file); if (welcomeUrl != null) { diff --git a/servlet-core/src/main/java/org/smartboot/servlet/HandlerContext.java b/servlet-core/src/main/java/org/smartboot/servlet/HandlerContext.java index 02cac9ccb26e0f8c8ad2ef9d9f4d91333ac6ace8..48f71f6e66bf8559990dd07fd9aeadbe850624bc 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/HandlerContext.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/HandlerContext.java @@ -13,7 +13,7 @@ package org.smartboot.servlet; import org.smartboot.servlet.conf.ServletInfo; import org.smartboot.servlet.impl.ServletContextImpl; -import javax.servlet.ServletResponse; +import jakarta.servlet.ServletResponse; /** * 请求处理上下文对象 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/ServletContextRuntime.java b/servlet-core/src/main/java/org/smartboot/servlet/ServletContextRuntime.java index a275d8ff3cbdd76315fdb8d709da24bff528386b..bbe636e6f59f274f284d827a812e49dd4f6b2170 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/ServletContextRuntime.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/ServletContextRuntime.java @@ -10,6 +10,21 @@ package org.smartboot.servlet; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletException; +import jakarta.servlet.UnavailableException; +import jakarta.servlet.annotation.WebListener; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.jsp.JspFactory; +import org.apache.jasper.servlet.JspServlet; import org.smartboot.http.common.enums.HttpStatus; import org.smartboot.http.common.logging.Logger; import org.smartboot.http.common.logging.LoggerFactory; @@ -28,19 +43,6 @@ import org.smartboot.servlet.provider.SessionProvider; import org.smartboot.servlet.provider.WebsocketProvider; import org.smartboot.servlet.sandbox.SandBox; -import javax.servlet.Filter; -import javax.servlet.FilterConfig; -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletException; -import javax.servlet.UnavailableException; -import javax.servlet.annotation.WebListener; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -173,7 +175,10 @@ public class ServletContextRuntime { for (ServletInfo servletInfo : deploymentInfo.getServlets().values()) { if (!servletInfo.isDynamic()) { if (servletInfo.getJspFile() != null) { - throw new UnsupportedOperationException(); + LOGGER.error("unSupport jsp"); + servletInfo.setServlet(new JspServlet()); + servletInfo.addInitParam("jspFile", servletInfo.getJspFile()); + continue; } Servlet servlet = (Servlet) deploymentInfo.getClassLoader().loadClass(servletInfo.getServletClass()).newInstance(); servletInfo.setServlet(servlet); @@ -183,7 +188,7 @@ public class ServletContextRuntime { if (!deploymentInfo.getServlets().containsKey(ServletInfo.DEFAULT_SERVLET_NAME)) { ServletInfo servletInfo = new ServletInfo(); servletInfo.setServletName(ServletInfo.DEFAULT_SERVLET_NAME); - servletInfo.setServlet(new DefaultServlet(deploymentInfo.getWelcomeFiles())); + servletInfo.setServlet(new DefaultServlet(deploymentInfo)); deploymentInfo.addServlet(servletInfo); } } @@ -221,6 +226,11 @@ public class ServletContextRuntime { deploymentInfo.setHandlesTypesLoader(null); System.out.println("scanHandleTypes use :" + (System.currentTimeMillis() - start)); } + ServletInfo jspServletInfo = new ServletInfo(); + jspServletInfo.setServletClass(JspServlet.class.getName()); + jspServletInfo.setServletName("jsp"); + jspServletInfo.addMapping("*.jsp"); + deploymentInfo.addServlet(jspServletInfo); for (ServletContainerInitializerInfo servletContainerInitializer : deploymentInfo.getServletContainerInitializers()) { servletContainerInitializer.getServletContainerInitializer().onStartup(servletContainerInitializer.getHandlesTypes(), servletContext); } @@ -249,7 +259,7 @@ public class ServletContextRuntime { } }); } catch (ServletException e) { -// e.printStackTrace(); + e.printStackTrace(); String location = deploymentInfo.getErrorPageLocation(e); if (location == null) { location = deploymentInfo.getErrorPageLocation(HttpStatus.INTERNAL_SERVER_ERROR.value()); diff --git a/servlet-core/src/main/java/org/smartboot/servlet/SmartHttpServletRequest.java b/servlet-core/src/main/java/org/smartboot/servlet/SmartHttpServletRequest.java index 243bfb2ac01579438c0e20c84bc3654951c2decb..696408ef1c2af647d83f44ae85601fb161fc9c72 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/SmartHttpServletRequest.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/SmartHttpServletRequest.java @@ -12,7 +12,7 @@ package org.smartboot.servlet; import org.smartboot.servlet.conf.ServletInfo; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/WebXmlParseEngine.java b/servlet-core/src/main/java/org/smartboot/servlet/WebXmlParseEngine.java index 127e8180fe23f4272706f81a8a51c508ecad3f17..e82fd9d556a0afc82c9cedfc3d7a0b7ca718753c 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/WebXmlParseEngine.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/WebXmlParseEngine.java @@ -26,8 +26,8 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import javax.servlet.DispatcherType; -import javax.servlet.MultipartConfigElement; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.MultipartConfigElement; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/conf/DeploymentInfo.java b/servlet-core/src/main/java/org/smartboot/servlet/conf/DeploymentInfo.java index ca2c2756fe0b6f6835a6cdb34dee3432fec9eb1a..f8aeffc8e8a51597bd449711a1e95c84ffd53ccc 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/conf/DeploymentInfo.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/conf/DeploymentInfo.java @@ -12,14 +12,14 @@ package org.smartboot.servlet.conf; import org.smartboot.servlet.AnnotationsLoader; -import javax.servlet.ServletContainerInitializer; -import javax.servlet.ServletContextAttributeListener; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletRequestAttributeListener; -import javax.servlet.ServletRequestListener; -import javax.servlet.annotation.HandlesTypes; -import javax.servlet.http.HttpSessionAttributeListener; -import javax.servlet.http.HttpSessionListener; +import jakarta.servlet.ServletContainerInitializer; +import jakarta.servlet.ServletContextAttributeListener; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.ServletRequestAttributeListener; +import jakarta.servlet.ServletRequestListener; +import jakarta.servlet.annotation.HandlesTypes; +import jakarta.servlet.http.HttpSessionAttributeListener; +import jakarta.servlet.http.HttpSessionListener; import java.net.URL; import java.util.ArrayList; import java.util.Collections; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterInfo.java b/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterInfo.java index ed39e5a4d9f4663948187ec17d94c89fe04fe04c..90dc811b39b61806798e290bb10de2bfa14261c3 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterInfo.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterInfo.java @@ -10,7 +10,7 @@ package org.smartboot.servlet.conf; -import javax.servlet.Filter; +import jakarta.servlet.Filter; import java.util.Collections; import java.util.HashMap; import java.util.Map; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterMappingInfo.java b/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterMappingInfo.java index 38c5e798875321ff1ba9fc0dc9a6701708043d51..7fe09029172511a61026b95eaf81f8c47d3edf83 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterMappingInfo.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/conf/FilterMappingInfo.java @@ -12,7 +12,7 @@ package org.smartboot.servlet.conf; import org.smartboot.servlet.enums.FilterMappingType; -import javax.servlet.DispatcherType; +import jakarta.servlet.DispatcherType; import java.util.Set; /** diff --git a/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletContainerInitializerInfo.java b/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletContainerInitializerInfo.java index 81dc02be060a21325fdbff753ef2dc7b36572926..6fcf930ca2f2f1b2897c04d42aeb2e4776b4c2ae 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletContainerInitializerInfo.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletContainerInitializerInfo.java @@ -10,7 +10,7 @@ package org.smartboot.servlet.conf; -import javax.servlet.ServletContainerInitializer; +import jakarta.servlet.ServletContainerInitializer; import java.util.Set; /** diff --git a/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletInfo.java b/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletInfo.java index 85a402d22cd91525e3a83e8e8eba5692ef203310..591aeb83df0842bbc799218aa38c943a37c2e205 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletInfo.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/conf/ServletInfo.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.conf; import org.smartboot.servlet.util.PathMatcherUtil; -import javax.servlet.MultipartConfigElement; -import javax.servlet.Servlet; +import jakarta.servlet.MultipartConfigElement; +import jakarta.servlet.Servlet; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/FilterMatchHandler.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/FilterMatchHandler.java index 4599480ae59288e4cd1c757818f699492cd44b07..5d5e45df39f5eb6e65b8eecfd20e4f594238c41c 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/FilterMatchHandler.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/FilterMatchHandler.java @@ -10,22 +10,21 @@ package org.smartboot.servlet.handler; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; import org.smartboot.http.common.utils.StringUtils; import org.smartboot.servlet.HandlerContext; import org.smartboot.servlet.conf.FilterInfo; import org.smartboot.servlet.conf.FilterMappingInfo; import org.smartboot.servlet.enums.FilterMappingType; -import org.smartboot.servlet.exception.WrappedRuntimeException; import org.smartboot.servlet.util.PathMatcherUtil; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.Servlet; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -56,7 +55,7 @@ public class FilterMatchHandler extends Handler { private final ThreadLocal filterChainThreadLocal = ThreadLocal.withInitial(FilterChainImpl::new); @Override - public void handleRequest(HandlerContext handlerContext) { + public void handleRequest(HandlerContext handlerContext) throws ServletException, IOException { //查找缓存中的 Filter 集合 List filters = filterCacheFilterList(handlerContext); if (filters == null) { @@ -70,8 +69,6 @@ public class FilterMatchHandler extends Handler { filterChain.init(filters, handlerContext); try { filterChain.doFilter(handlerContext.getRequest(), handlerContext.getResponse()); - } catch (IOException | ServletException e) { - throw new WrappedRuntimeException(e); } finally { filterChain.init(null, null); } diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/Handler.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/Handler.java index 1ab547df1feda782aba87ce8543432204c69b717..7d16d2aa55b4dc9dcb0cbc88cb69e3fac9adad46 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/Handler.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/Handler.java @@ -10,8 +10,11 @@ package org.smartboot.servlet.handler; +import jakarta.servlet.ServletException; import org.smartboot.servlet.HandlerContext; +import java.io.IOException; + /** * 请求处理器 * @@ -30,7 +33,7 @@ abstract class Handler { * @param handlerContext * @throws Exception */ - public abstract void handleRequest(HandlerContext handlerContext); + public abstract void handleRequest(HandlerContext handlerContext) throws ServletException, IOException; /** * 执行下一层处理器 @@ -38,7 +41,7 @@ abstract class Handler { * @param handlerContext * @throws Exception */ - protected final void doNext(HandlerContext handlerContext) { + protected final void doNext(HandlerContext handlerContext) throws ServletException, IOException { if (nextHandler != null) { nextHandler.handleRequest(handlerContext); } diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/HandlerPipeline.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/HandlerPipeline.java index 1d24089bd08f904512119383192333bf18b06c2d..408a72ef39ab1dd6c256f0e070903926e639ced8 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/HandlerPipeline.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/HandlerPipeline.java @@ -10,8 +10,11 @@ package org.smartboot.servlet.handler; +import jakarta.servlet.ServletException; import org.smartboot.servlet.HandlerContext; +import java.io.IOException; + /** * @author 三刀 * @version V1.0 , 2019/11/3 @@ -42,7 +45,7 @@ public final class HandlerPipeline extends Handler { } @Override - public void handleRequest(HandlerContext handlerContext) { + public void handleRequest(HandlerContext handlerContext) throws ServletException, IOException { nextHandler.handleRequest(handlerContext); } } diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletMatchHandler.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletMatchHandler.java index 146b906ea16eaa0e37fcf2d914769b097858af66..a534ec80c369e01a4a3d7fad4a5566ca23615691 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletMatchHandler.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletMatchHandler.java @@ -18,8 +18,10 @@ import org.smartboot.servlet.exception.WrappedRuntimeException; import org.smartboot.servlet.impl.ServletContextImpl; import org.smartboot.servlet.util.PathMatcherUtil; -import javax.servlet.Servlet; -import javax.servlet.ServletException; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletException; + +import java.io.IOException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -36,7 +38,7 @@ public class ServletMatchHandler extends Handler { private final Map cacheServletMap = new ConcurrentHashMap<>(); @Override - public void handleRequest(HandlerContext handlerContext) { + public void handleRequest(HandlerContext handlerContext) throws ServletException, IOException { ServletContextImpl servletContext = handlerContext.getServletContext(); String contextPath = servletContext.getContextPath(); Map servletInfoMap = handlerContext.getServletContext().getDeploymentInfo().getServlets(); diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletRequestListenerHandler.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletRequestListenerHandler.java index 0773af3569826683f9136398123e029bbe589109..9802bf62ba1f89f21614642ab2576f4fda89c0ad 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletRequestListenerHandler.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletRequestListenerHandler.java @@ -10,13 +10,15 @@ package org.smartboot.servlet.handler; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequestEvent; +import jakarta.servlet.ServletRequestListener; import org.smartboot.http.common.logging.Logger; import org.smartboot.http.common.logging.LoggerFactory; import org.smartboot.servlet.HandlerContext; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequestEvent; -import javax.servlet.ServletRequestListener; +import java.io.IOException; import java.util.List; /** @@ -27,7 +29,7 @@ public class ServletRequestListenerHandler extends Handler { private static final Logger LOGGER = LoggerFactory.getLogger(ServletRequestListenerHandler.class); @Override - public void handleRequest(HandlerContext handlerContext) { + public void handleRequest(HandlerContext handlerContext) throws ServletException, IOException { ServletContext servletContext = handlerContext.getServletContext(); List servletRequestListeners = handlerContext.getServletContext().getDeploymentInfo().getServletRequestListeners(); ServletRequestEvent servletRequestEvent = servletRequestListeners.isEmpty() ? null : new ServletRequestEvent(servletContext, handlerContext.getRequest()); diff --git a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletServiceHandler.java b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletServiceHandler.java index 5a295e7257903cb7d06f853b98f4d2a560760164..11e427459dd349c480d6611306e060a1942a689e 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletServiceHandler.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/handler/ServletServiceHandler.java @@ -10,13 +10,12 @@ package org.smartboot.servlet.handler; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; import org.smartboot.servlet.HandlerContext; import org.smartboot.servlet.conf.ServletInfo; -import org.smartboot.servlet.exception.WrappedRuntimeException; -import javax.servlet.ServletException; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; import java.io.IOException; /** @@ -28,18 +27,14 @@ import java.io.IOException; public class ServletServiceHandler extends Handler { @Override - public void handleRequest(HandlerContext handlerContext) { - try { - HttpServletRequest request = handlerContext.getRequest(); - ServletResponse response = handlerContext.getResponse(); - //成功匹配到Servlet,直接执行 - if (handlerContext.getServletInfo() != null) { - handlerContext.getServletInfo().getServlet().service(request, response); - } else { - handlerContext.getServletContext().getServlet(ServletInfo.DEFAULT_SERVLET_NAME).service(request, response); - } - } catch (ServletException | IOException e) { - throw new WrappedRuntimeException(e); + public void handleRequest(HandlerContext handlerContext) throws ServletException, IOException { + HttpServletRequest request = handlerContext.getRequest(); + ServletResponse response = handlerContext.getResponse(); + //成功匹配到Servlet,直接执行 + if (handlerContext.getServletInfo() != null) { + handlerContext.getServletInfo().getServlet().service(request, response); + } else { + handlerContext.getServletContext().getServlet(ServletInfo.DEFAULT_SERVLET_NAME).service(request, response); } } } diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationFilterRegistration.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationFilterRegistration.java index 771dc5c8af218172354d71a248aba43f568b2305..0f1bdc16e2127e796391bfe924f477e725010134 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationFilterRegistration.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationFilterRegistration.java @@ -10,15 +10,14 @@ package org.smartboot.servlet.impl; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; import org.smartboot.servlet.conf.DeploymentInfo; import org.smartboot.servlet.conf.FilterInfo; import org.smartboot.servlet.conf.FilterMappingInfo; -import org.smartboot.servlet.conf.ServletMappingInfo; import org.smartboot.servlet.enums.FilterMappingType; import org.smartboot.servlet.util.PathMatcherUtil; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; import java.util.Collection; import java.util.EnumSet; import java.util.HashMap; @@ -66,8 +65,8 @@ public class ApplicationFilterRegistration @Override public Collection getServletNameMappings() { return context.getFilterMappings().stream() - .filter(filterMappingInfo -> filterMappingInfo.getMappingType() == FilterMappingType.URL) - .map(FilterMappingInfo::getServletUrlMapping).map(ServletMappingInfo::getMapping).collect(Collectors.toList()); + .filter(filterMappingInfo -> filterMappingInfo.getMappingType() == FilterMappingType.SERVLET) + .map(FilterMappingInfo::getServletNameMapping).collect(Collectors.toList()); } @Override diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationServletRegistration.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationServletRegistration.java index e2f75c2190fa1f835606dba8cc9150c1cdb58579..76fc86f6e3e497848a92fbad29d8fa7d09b86123 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationServletRegistration.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ApplicationServletRegistration.java @@ -16,9 +16,9 @@ import org.smartboot.servlet.conf.DeploymentInfo; import org.smartboot.servlet.conf.ServletInfo; import org.smartboot.servlet.conf.ServletMappingInfo; -import javax.servlet.MultipartConfigElement; -import javax.servlet.ServletRegistration; -import javax.servlet.ServletSecurityElement; +import jakarta.servlet.MultipartConfigElement; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.ServletSecurityElement; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/AsyncContextImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/AsyncContextImpl.java index 1c94c42cd9834330162fec9ba861e2dcde1409ae..f8012bd6864a51afbb5243c72da583c37fcb7c91 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/AsyncContextImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/AsyncContextImpl.java @@ -10,18 +10,19 @@ package org.smartboot.servlet.impl; +import jakarta.servlet.AsyncContext; +import jakarta.servlet.AsyncEvent; +import jakarta.servlet.AsyncListener; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; import org.smartboot.servlet.HandlerContext; import org.smartboot.servlet.ServletContextRuntime; +import org.smartboot.servlet.exception.WrappedRuntimeException; import org.smartboot.servlet.plugins.dispatcher.ServletRequestDispatcherWrapper; -import javax.servlet.AsyncContext; -import javax.servlet.AsyncEvent; -import javax.servlet.AsyncListener; -import javax.servlet.DispatcherType; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; import java.io.IOException; import java.util.LinkedList; import java.util.List; @@ -94,7 +95,11 @@ public class AsyncContextImpl implements AsyncContext { public void run() { ServletRequestDispatcherWrapper wrapper = new ServletRequestDispatcherWrapper(originalRequest, DispatcherType.ASYNC, false); HandlerContext handlerContext = new HandlerContext(wrapper, response, originalRequest.getServletContext(), false); - servletContextRuntime.getServletContext().getPipeline().handleRequest(handlerContext); + try { + servletContextRuntime.getServletContext().getPipeline().handleRequest(handlerContext); + } catch (Throwable e) { + throw new WrappedRuntimeException(e); + } } }); diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/FilterConfigImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/FilterConfigImpl.java index 041138c2b554e24f59ba4364a7acef32ac5fae2e..ea24e90d931595cb977d907d84314f9345fc9ff0 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/FilterConfigImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/FilterConfigImpl.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.impl; import org.smartboot.servlet.conf.FilterInfo; -import javax.servlet.FilterConfig; -import javax.servlet.ServletContext; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletContext; import java.util.Collections; import java.util.Enumeration; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletRequestImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletRequestImpl.java index 88d91afc9d3d0cd737ee2174b5cfe61de0d399f4..af577a54c996fcb2182b1f5aae3582f5369d2a68 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletRequestImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletRequestImpl.java @@ -28,21 +28,21 @@ import org.smartboot.servlet.third.commons.fileupload.disk.DiskFileItemFactory; import org.smartboot.servlet.util.CollectionUtils; import org.smartboot.servlet.util.DateUtil; -import javax.servlet.AsyncContext; -import javax.servlet.DispatcherType; -import javax.servlet.MultipartConfigElement; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletInputStream; -import javax.servlet.ServletRequest; -import javax.servlet.ServletRequestAttributeEvent; -import javax.servlet.ServletResponse; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpUpgradeHandler; -import javax.servlet.http.Part; +import jakarta.servlet.AsyncContext; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.MultipartConfigElement; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletRequestAttributeEvent; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpUpgradeHandler; +import jakarta.servlet.http.Part; import java.io.BufferedReader; import java.io.File; import java.io.IOException; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletResponseImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletResponseImpl.java index 8bc5cbb31b1d1373fd1823b0cd66bf4abcde8cdd..7a3a685f73de66c0465cb85209b8ac7c2bba7836 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletResponseImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/HttpServletResponseImpl.java @@ -10,6 +10,9 @@ package org.smartboot.servlet.impl; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.smartboot.http.common.enums.HeaderNameEnum; import org.smartboot.http.common.enums.HttpStatus; import org.smartboot.http.common.logging.Logger; @@ -19,9 +22,6 @@ import org.smartboot.servlet.ServletContextRuntime; import org.smartboot.servlet.util.DateUtil; import org.smartboot.servlet.util.PathMatcherUtil; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; @@ -198,7 +198,7 @@ public class HttpServletResponseImpl implements HttpServletResponse { @Override public void setCharacterEncoding(String charset) { - if (isCommitted()) { + if (isCommitted() || writer != null) { return; } charsetSet = charset != null; @@ -210,11 +210,11 @@ public class HttpServletResponseImpl implements HttpServletResponse { @Override public String getContentType() { - if (contentType != null && charsetSet) { - return contentType + ";charset=" + getCharacterEncoding(); - } else { - return contentType; + if (contentType == null) { + return null; } + return contentType + ";charset=" + getCharacterEncoding(); + } @Override @@ -227,19 +227,22 @@ public class HttpServletResponseImpl implements HttpServletResponse { int split = type.indexOf(";charset="); if (split == -1) { contentType = type; - response.setContentType(type); } else { contentType = type.substring(0, split); - if (charsetSet) { - response.setContentType(getContentType()); - } else { - setCharacterEncoding(type.substring(split + 9)); - } + setCharacterEncoding(type.substring(split + 9)); } + response.setContentType(getContentType()); } @Override public ServletOutputStreamImpl getOutputStream() { + if (servletOutputStream != null) { + + } + if (writer != null) { + reset(); + throw new IllegalStateException("getWriter has already been called."); + } if (servletOutputStream == null) { byte[] buffer = null; if (bufferSize == -1) { @@ -298,7 +301,11 @@ public class HttpServletResponseImpl implements HttpServletResponse { } public void flushServletBuffer() throws IOException { - getOutputStream().flushServletBuffer(); + if (writer != null) { + writer.flush(); + } else { + getOutputStream().flushServletBuffer(); + } } @Override diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/SmartServletExtension.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/JspConfigDescriptorImpl.java similarity index 36% rename from testsuite/src/main/java/org/smartboot/servlet/testsuite/SmartServletExtension.java rename to servlet-core/src/main/java/org/smartboot/servlet/impl/JspConfigDescriptorImpl.java index dcb1896faa2e1e7e208ecc10d3d3052424988408..dfb53e0817874e092c61189d36d4299f4ee3068f 100644 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/SmartServletExtension.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/JspConfigDescriptorImpl.java @@ -7,19 +7,28 @@ * and legally in accordance with the AGPL-3.0 open source agreement * without special permission from the smartboot organization. */ -package org.smartboot.servlet.testsuite; -import org.jboss.arquillian.container.spi.client.container.DeployableContainer; -import org.jboss.arquillian.core.spi.LoadableExtension; +package org.smartboot.servlet.impl; + +import jakarta.servlet.descriptor.JspConfigDescriptor; +import jakarta.servlet.descriptor.JspPropertyGroupDescriptor; +import jakarta.servlet.descriptor.TaglibDescriptor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public class JspConfigDescriptorImpl implements JspConfigDescriptor { + private final List tagLibs = new ArrayList<>(); + private final List jspGroups = new ArrayList<>(); + + @Override + public Collection getTaglibs() { + return tagLibs; + } -/** - * Jetty Embedded 10.x extension. - * - * @author Aslak Knutsen - */ -public class SmartServletExtension implements LoadableExtension { @Override - public void register(ExtensionBuilder builder) { - builder.service(DeployableContainer.class, JettyEmbeddedContainer.class); + public Collection getJspPropertyGroups() { + return jspGroups; } } diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/PartImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/PartImpl.java index 5243d59cb5ba40f3e88b34e8625757c91d9063e1..464a10427a8ef511100566550930e5c4c0193bb1 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/PartImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/PartImpl.java @@ -14,7 +14,7 @@ import org.smartboot.servlet.third.commons.fileupload.FileItem; import org.smartboot.servlet.third.commons.fileupload.ParameterParser; import org.smartboot.servlet.third.commons.fileupload.disk.DiskFileItem; -import javax.servlet.http.Part; +import jakarta.servlet.http.Part; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletConfigImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletConfigImpl.java index 30f8687624cc4a66189b1574964e8c1674da036e..f331a1698e99f68d2008e65ea57e50c6291f0648 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletConfigImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletConfigImpl.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.impl; import org.smartboot.servlet.conf.ServletInfo; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletContext; import java.util.Collections; import java.util.Enumeration; /** diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletContextImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletContextImpl.java index 6827246d2f4e72d7b5eefc221365a201c1e7809e..92c85a4d36980bf43f931ffca3d41e780bfcf3ac 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletContextImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletContextImpl.java @@ -10,6 +10,24 @@ package org.smartboot.servlet.impl; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterRegistration; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.Servlet; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextAttributeEvent; +import jakarta.servlet.ServletContextAttributeListener; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRegistration; +import jakarta.servlet.ServletRequestAttributeListener; +import jakarta.servlet.ServletRequestListener; +import jakarta.servlet.SessionCookieConfig; +import jakarta.servlet.SessionTrackingMode; +import jakarta.servlet.descriptor.JspConfigDescriptor; +import jakarta.servlet.http.HttpSessionAttributeListener; +import jakarta.servlet.http.HttpSessionListener; import org.smartboot.http.common.logging.Logger; import org.smartboot.http.common.logging.LoggerFactory; import org.smartboot.http.common.utils.Mimetypes; @@ -22,24 +40,6 @@ import org.smartboot.servlet.enums.ServletContextPathType; import org.smartboot.servlet.exception.WrappedRuntimeException; import org.smartboot.servlet.handler.HandlerPipeline; -import javax.servlet.Filter; -import javax.servlet.FilterRegistration; -import javax.servlet.RequestDispatcher; -import javax.servlet.Servlet; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextAttributeEvent; -import javax.servlet.ServletContextAttributeListener; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; -import javax.servlet.ServletRequestAttributeListener; -import javax.servlet.ServletRequestListener; -import javax.servlet.SessionCookieConfig; -import javax.servlet.SessionTrackingMode; -import javax.servlet.descriptor.JspConfigDescriptor; -import javax.servlet.http.HttpSessionAttributeListener; -import javax.servlet.http.HttpSessionListener; import java.io.File; import java.io.InputStream; import java.net.MalformedURLException; @@ -49,8 +49,10 @@ import java.util.Collections; import java.util.Enumeration; import java.util.EventListener; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -67,11 +69,17 @@ public class ServletContextImpl implements ServletContext { private final DeploymentInfo deploymentInfo; private final SessionCookieConfig sessionCookieConfig; private ServletContextPathType pathType = ServletContextPathType.PATH; + + private JspConfigDescriptor jspConfigDescriptor = new JspConfigDescriptorImpl(); /** * 请求执行管道 */ private HandlerPipeline pipeline; + private String responseCharacterEncoding; + + private String requestCharacterEncoding; + public ServletContextImpl(ServletContextRuntime containerRuntime) { this.containerRuntime = containerRuntime; this.deploymentInfo = containerRuntime.getDeploymentInfo(); @@ -121,8 +129,20 @@ public class ServletContextImpl implements ServletContext { @Override public Set getResourcePaths(String path) { - //todo 暂时 返回 null 使org.apache.jasper.servlet.JasperInitializer#onStartup 可以执行 - return null; + try { + URL url = getResource(path); + File file = new File(url.toURI()); + if (file.isDirectory()) { + Set set = new HashSet<>(); + for (String fileName : Objects.requireNonNull(file.list())) { + set.add(path + fileName); + } + return set; + } + } catch (Exception e) { + LOGGER.error("getResourcePaths exception", e); + } + return Collections.emptySet(); } @Override @@ -329,7 +349,11 @@ public class ServletContextImpl implements ServletContext { @Override public ServletRegistration.Dynamic addServlet(String servletName, Class servletClass) { - return addServlet(servletName, createServlet(servletClass)); + try { + return addServlet(servletName, createServlet(servletClass)); + } catch (ServletException e) { + throw new RuntimeException(e); + } } @Override @@ -338,7 +362,7 @@ public class ServletContextImpl implements ServletContext { } @Override - public T createServlet(Class clazz) { + public T createServlet(Class clazz) throws ServletException { return newInstance(clazz); } @@ -388,11 +412,15 @@ public class ServletContextImpl implements ServletContext { @Override public FilterRegistration.Dynamic addFilter(String filterName, Class filterClass) { - return addFilter(filterName, createFilter(filterClass)); + try { + return addFilter(filterName, createFilter(filterClass)); + } catch (ServletException e) { + throw new RuntimeException(e); + } } @Override - public T createFilter(Class clazz) { + public T createFilter(Class clazz) throws ServletException { return newInstance(clazz); } @@ -470,18 +498,18 @@ public class ServletContextImpl implements ServletContext { return newInstance(clazz); } - private T newInstance(Class clazz) { + private T newInstance(Class clazz) throws ServletException { try { return clazz.newInstance(); } catch (InstantiationException | IllegalAccessException e) { - throw new WrappedRuntimeException(e); + throw new ServletException(e); } } @Override public JspConfigDescriptor getJspConfigDescriptor() { //todo 暂时 返回 null 使org.apache.jasper.servlet.JasperInitializer#onStartup 可以执行 - return null; + return jspConfigDescriptor; } @Override @@ -511,22 +539,22 @@ public class ServletContextImpl implements ServletContext { @Override public String getRequestCharacterEncoding() { - return null; + return requestCharacterEncoding; } @Override public void setRequestCharacterEncoding(String encoding) { - + this.requestCharacterEncoding = encoding; } @Override public String getResponseCharacterEncoding() { - return null; + return responseCharacterEncoding; } @Override public void setResponseCharacterEncoding(String encoding) { - + this.responseCharacterEncoding = encoding; } public DeploymentInfo getDeploymentInfo() { diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletInputStreamImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletInputStreamImpl.java index eba58fa2ebce53f7fb328bcaf470cf557d8ae493..3ce701041a33ed2f45feaa640f1d7fb1bfda28e2 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletInputStreamImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletInputStreamImpl.java @@ -10,8 +10,8 @@ package org.smartboot.servlet.impl; -import javax.servlet.ReadListener; -import javax.servlet.ServletInputStream; +import jakarta.servlet.ReadListener; +import jakarta.servlet.ServletInputStream; import java.io.IOException; import java.io.InputStream; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletOutputStreamImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletOutputStreamImpl.java index 9e2e45119570b6bda9e1ea5c3d310c4af384e2db..5b5195395641fba7e343394dc5fe111bf3b49e29 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletOutputStreamImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/ServletOutputStreamImpl.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.impl; import org.smartboot.http.common.BufferOutputStream; -import javax.servlet.ServletOutputStream; -import javax.servlet.WriteListener; +import jakarta.servlet.ServletOutputStream; +import jakarta.servlet.WriteListener; import java.io.IOException; /** diff --git a/servlet-core/src/main/java/org/smartboot/servlet/impl/SessionCookieConfigImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/impl/SessionCookieConfigImpl.java index 1a02411b16867a719c0b923378a7c7bd7160520f..bbf00a280cea51998eec110837f19b9c3bf05d65 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/impl/SessionCookieConfigImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/impl/SessionCookieConfigImpl.java @@ -10,7 +10,7 @@ package org.smartboot.servlet.impl; -import javax.servlet.SessionCookieConfig; +import jakarta.servlet.SessionCookieConfig; import org.smartboot.servlet.ServletContextRuntime; import org.smartboot.servlet.provider.SessionProvider; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/DispatcherProviderImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/DispatcherProviderImpl.java index ccbafeea5a279dc4fb9370d7622180e4a49af98c..a714267a1c6127d74be7a054f484d30cd11ff1b4 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/DispatcherProviderImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/DispatcherProviderImpl.java @@ -16,7 +16,7 @@ import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.impl.ServletContextImpl; import org.smartboot.servlet.provider.DispatcherProvider; -import javax.servlet.RequestDispatcher; +import jakarta.servlet.RequestDispatcher; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/RequestDispatcherImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/RequestDispatcherImpl.java index 636c983abefe75d1a2bb8437d5f0a1108a103eab..e620eeb7d9a74faf7491129e8b4e4658eca76765 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/RequestDispatcherImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/RequestDispatcherImpl.java @@ -10,6 +10,13 @@ package org.smartboot.servlet.plugins.dispatcher; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.RequestDispatcher; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletRequestWrapper; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.ServletResponseWrapper; import org.smartboot.http.common.utils.HttpUtils; import org.smartboot.http.common.utils.StringUtils; import org.smartboot.servlet.HandlerContext; @@ -18,13 +25,6 @@ import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.impl.HttpServletResponseImpl; import org.smartboot.servlet.impl.ServletContextImpl; -import javax.servlet.DispatcherType; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletRequestWrapper; -import javax.servlet.ServletResponse; -import javax.servlet.ServletResponseWrapper; import java.io.IOException; import java.util.HashMap; import java.util.Map; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletRequestDispatcherWrapper.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletRequestDispatcherWrapper.java index 552a5dcb121f9f5b04e8db9faf6eef03a03dd328..285d5b8f2a83cfa427d1f8f4df468450ad41ebb2 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletRequestDispatcherWrapper.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletRequestDispatcherWrapper.java @@ -16,9 +16,9 @@ import org.smartboot.servlet.conf.ServletInfo; import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.impl.HttpServletResponseImpl; -import javax.servlet.DispatcherType; -import javax.servlet.http.HttpServletRequestWrapper; -import javax.servlet.http.HttpSession; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpSession; import java.util.Collections; import java.util.Enumeration; import java.util.Map; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletResponseDispatcherWrapper.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletResponseDispatcherWrapper.java index 6713e2003c96ebdec4582c06c9085f1de18962b1..29a21de8cd0723c3e2bb3fdae25df7f7f28a99e6 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletResponseDispatcherWrapper.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/dispatcher/ServletResponseDispatcherWrapper.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.plugins.dispatcher; import org.smartboot.servlet.impl.HttpServletResponseImpl; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponseWrapper; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletResponseWrapper; import java.io.IOException; import java.util.Locale; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/HttpSessionImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/HttpSessionImpl.java index d02441ce139128377aeb68744fc1ca9d5b56c236..6ac9e6c5067326d5402109e248bb4639d3dc4d72 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/HttpSessionImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/HttpSessionImpl.java @@ -13,12 +13,12 @@ package org.smartboot.servlet.plugins.session; import org.smartboot.servlet.impl.ServletContextImpl; import org.smartboot.servlet.util.CollectionUtils; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionBindingEvent; -import javax.servlet.http.HttpSessionContext; -import javax.servlet.http.HttpSessionEvent; -import javax.servlet.http.HttpSessionListener; +import jakarta.servlet.ServletContext; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionBindingEvent; +import jakarta.servlet.http.HttpSessionContext; +import jakarta.servlet.http.HttpSessionEvent; +import jakarta.servlet.http.HttpSessionListener; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/SessionProviderImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/SessionProviderImpl.java index ea95b8a7c4325c014bd51712a9d2ebaf0453cd50..21cd35f97d666422cc18724bc387ce90c0a978a2 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/SessionProviderImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/session/SessionProviderImpl.java @@ -10,12 +10,12 @@ package org.smartboot.servlet.plugins.session; -import javax.servlet.SessionCookieConfig; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionContext; +import jakarta.servlet.SessionCookieConfig; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionContext; import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.provider.SessionProvider; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketPlugin.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketPlugin.java index 532a99cbb0ffe36d10cdee4f5051a87866463cc6..0f6c556bb3ee16cb98b6b9dc42bb4eb5686d42f4 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketPlugin.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketPlugin.java @@ -14,7 +14,7 @@ import org.smartboot.servlet.ServletContextRuntime; import org.smartboot.servlet.plugins.Plugin; import org.smartboot.servlet.plugins.websocket.impl.WebsocketServerContainer; -import javax.websocket.server.ServerContainer; +import jakarta.websocket.server.ServerContainer; /** * @author 三刀(zhengjunweimail@163.com) diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java index f192d7ed03a26c88f3c2d8a0b95ceae864fdb4c7..0e245fa892fe3875579f09eebd81546eca7dd88c 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/WebsocketProviderImpl.java @@ -25,9 +25,9 @@ import org.smartboot.servlet.provider.WebsocketProvider; import org.smartboot.socket.util.AttachKey; import org.smartboot.socket.util.Attachment; -import javax.websocket.PongMessage; -import javax.websocket.Session; -import javax.websocket.server.PathParam; +import jakarta.websocket.PongMessage; +import jakarta.websocket.Session; +import jakarta.websocket.server.PathParam; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/AnnotatedEndpoint.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/AnnotatedEndpoint.java index 5eea8086378e042b5771415aedef11ed288a7040..bb41978f618fb62946213976992d25f11635f029 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/AnnotatedEndpoint.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/AnnotatedEndpoint.java @@ -10,11 +10,11 @@ package org.smartboot.servlet.plugins.websocket.impl; -import javax.websocket.CloseReason; -import javax.websocket.Endpoint; -import javax.websocket.EndpointConfig; -import javax.websocket.Session; -import javax.websocket.server.PathParam; +import jakarta.websocket.CloseReason; +import jakarta.websocket.Endpoint; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.Session; +import jakarta.websocket.server.PathParam; import java.lang.annotation.Annotation; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/HandlerWrapper.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/HandlerWrapper.java index e2bb99a93cc2f8381947a608fdf5c8ba76109cfd..3d94483e8496828b2635d2a480c003704987a8a3 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/HandlerWrapper.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/HandlerWrapper.java @@ -10,7 +10,7 @@ package org.smartboot.servlet.plugins.websocket.impl; -import javax.websocket.MessageHandler; +import jakarta.websocket.MessageHandler; /** * @author 三刀(zhengjunweimail@163.com) diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/SmartServerEndpointConfig.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/SmartServerEndpointConfig.java index 44d85d8e5f898990c241efd7bd740878fdbca0ed..69bad2c1d51ea96d12171d9f02b5f62246f0996e 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/SmartServerEndpointConfig.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/SmartServerEndpointConfig.java @@ -10,12 +10,12 @@ package org.smartboot.servlet.plugins.websocket.impl; -import javax.websocket.OnClose; -import javax.websocket.OnError; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.PongMessage; -import javax.websocket.server.ServerEndpointConfig; +import jakarta.websocket.OnClose; +import jakarta.websocket.OnError; +import jakarta.websocket.OnMessage; +import jakarta.websocket.OnOpen; +import jakarta.websocket.PongMessage; +import jakarta.websocket.server.ServerEndpointConfig; import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.ArrayList; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketServerContainer.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketServerContainer.java index 95cbcff821f3aed03fa62872c4f2fe335cff8271..9d8e3664fe5eced80bc43987e8f0d91044407013 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketServerContainer.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketServerContainer.java @@ -10,14 +10,14 @@ package org.smartboot.servlet.plugins.websocket.impl; -import javax.websocket.ClientEndpointConfig; -import javax.websocket.DeploymentException; -import javax.websocket.Endpoint; -import javax.websocket.Extension; -import javax.websocket.Session; -import javax.websocket.server.ServerContainer; -import javax.websocket.server.ServerEndpoint; -import javax.websocket.server.ServerEndpointConfig; +import jakarta.websocket.ClientEndpointConfig; +import jakarta.websocket.DeploymentException; +import jakarta.websocket.Endpoint; +import jakarta.websocket.Extension; +import jakarta.websocket.Session; +import jakarta.websocket.server.ServerContainer; +import jakarta.websocket.server.ServerEndpoint; +import jakarta.websocket.server.ServerEndpointConfig; import java.io.IOException; import java.net.URI; import java.util.ArrayList; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketSession.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketSession.java index e088aa3dc082a68c9300255298dcf7732de97e16..590e526b33e8996b85ee6ad7bf5b1def62771817 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketSession.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WebsocketSession.java @@ -10,13 +10,13 @@ package org.smartboot.servlet.plugins.websocket.impl; -import javax.websocket.CloseReason; -import javax.websocket.Extension; -import javax.websocket.MessageHandler; -import javax.websocket.PongMessage; -import javax.websocket.RemoteEndpoint; -import javax.websocket.Session; -import javax.websocket.WebSocketContainer; +import jakarta.websocket.CloseReason; +import jakarta.websocket.Extension; +import jakarta.websocket.MessageHandler; +import jakarta.websocket.PongMessage; +import jakarta.websocket.RemoteEndpoint; +import jakarta.websocket.Session; +import jakarta.websocket.WebSocketContainer; import java.io.IOException; import java.net.URI; import java.security.Principal; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WsHandshakeRequest.java b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WsHandshakeRequest.java index 27ccdc9a9ca7dc28796c20170794df0743b89791..737b98eda09f115c66166286b81d102e3ff99620 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WsHandshakeRequest.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/plugins/websocket/impl/WsHandshakeRequest.java @@ -12,7 +12,7 @@ package org.smartboot.servlet.plugins.websocket.impl; import org.smartboot.http.server.WebSocketRequest; -import javax.websocket.server.HandshakeRequest; +import jakarta.websocket.server.HandshakeRequest; import java.net.URI; import java.security.Principal; import java.util.Arrays; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/provider/DispatcherProvider.java b/servlet-core/src/main/java/org/smartboot/servlet/provider/DispatcherProvider.java index ae6599051aa2d483020c743400f4bcd0992e732e..42ee42eb0311d289af2ac2a53e53d6a7d2cba2dc 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/provider/DispatcherProvider.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/provider/DispatcherProvider.java @@ -13,7 +13,7 @@ package org.smartboot.servlet.provider; import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.impl.ServletContextImpl; -import javax.servlet.RequestDispatcher; +import jakarta.servlet.RequestDispatcher; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/provider/SessionProvider.java b/servlet-core/src/main/java/org/smartboot/servlet/provider/SessionProvider.java index 07f94ded59efdcf4e891caef852381ed8c9d7883..d34577d1e68e92f3d8dcea655b189c7f9b0549e8 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/provider/SessionProvider.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/provider/SessionProvider.java @@ -12,8 +12,8 @@ package org.smartboot.servlet.provider; import org.smartboot.servlet.impl.HttpServletRequestImpl; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockDispatcherProvider.java b/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockDispatcherProvider.java index d79b0e678724c42de1ac0c853737ffa188240c39..a45bae2cbf9ce32a041b2b5c553b06af30a28ea1 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockDispatcherProvider.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockDispatcherProvider.java @@ -15,7 +15,7 @@ import org.smartboot.servlet.impl.ServletContextImpl; import org.smartboot.servlet.plugins.PluginException; import org.smartboot.servlet.provider.DispatcherProvider; -import javax.servlet.RequestDispatcher; +import jakarta.servlet.RequestDispatcher; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockSessionProvider.java b/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockSessionProvider.java index 295fa4b5ce934a8970f9d1616f018fd5ce989a50..8b187df835f9cc9fbb3e50926da87e1e9f3fa315 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockSessionProvider.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/sandbox/MockSessionProvider.java @@ -14,8 +14,8 @@ import org.smartboot.servlet.impl.HttpServletRequestImpl; import org.smartboot.servlet.plugins.PluginException; import org.smartboot.servlet.provider.SessionProvider; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; /** * @author 三刀 diff --git a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/DiskFileUpload.java b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/DiskFileUpload.java index 0ae15fce33bd228734c16c002ef1562331b238a0..28f78aef6c5fd7988a74489a2251b0d0109aa73b 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/DiskFileUpload.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/DiskFileUpload.java @@ -16,7 +16,7 @@ */ package org.smartboot.servlet.third.commons.fileupload; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.File; import java.util.List; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/FileUploadBase.java b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/FileUploadBase.java index 86c607181ce28395a16f2b18d75b275d3df3574e..5c1e89b884a06a3f14f7fd79ebac356c68fb1c1d 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/FileUploadBase.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/FileUploadBase.java @@ -25,7 +25,7 @@ import org.smartboot.servlet.third.commons.fileupload.util.FileItemHeadersImpl; import org.smartboot.servlet.third.commons.fileupload.util.LimitedInputStream; import org.smartboot.servlet.third.commons.fileupload.util.Streams; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/FileCleanerCleanup.java b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/FileCleanerCleanup.java index 6c82019ffabc2f33fd5f0ffab841d8f35abce353..2ad477ca2e4f7f0756c5e68106505e0c9631f418 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/FileCleanerCleanup.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/FileCleanerCleanup.java @@ -18,9 +18,9 @@ package org.smartboot.servlet.third.commons.fileupload.servlet; import org.smartboot.servlet.third.commons.io.FileCleaningTracker; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; +import jakarta.servlet.ServletContextListener; /** * A servlet context listener, which ensures that the diff --git a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletFileUpload.java b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletFileUpload.java index e5124f747b9f05718d6024a2d4477dca42094c20..5a85c045173a526d0500841b061595cef964fd50 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletFileUpload.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletFileUpload.java @@ -23,7 +23,7 @@ import org.smartboot.servlet.third.commons.fileupload.FileUpload; import org.smartboot.servlet.third.commons.fileupload.FileUploadBase; import org.smartboot.servlet.third.commons.fileupload.FileUploadException; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.List; import java.util.Map; diff --git a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletRequestContext.java b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletRequestContext.java index d2603769e52cedc36c1f9b2ed3e5b96deb98002f..bb3dbe7bddcc1f70d545624a9e1ad37c26453ad3 100644 --- a/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletRequestContext.java +++ b/servlet-core/src/main/java/org/smartboot/servlet/third/commons/fileupload/servlet/ServletRequestContext.java @@ -19,7 +19,7 @@ package org.smartboot.servlet.third.commons.fileupload.servlet; import org.smartboot.servlet.third.commons.fileupload.FileUploadBase; import org.smartboot.servlet.third.commons.fileupload.UploadContext; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; diff --git a/servlet-core/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer b/servlet-core/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer new file mode 100644 index 0000000000000000000000000000000000000000..33a59da4f51db8d8c9e5259247e03bfda378a004 --- /dev/null +++ b/servlet-core/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer @@ -0,0 +1 @@ +org.apache.jasper.servlet.JasperInitializer \ No newline at end of file diff --git a/smart-servlet-maven-plugin/src/main/java/org/smartboot/maven/plugin/servlet/Starter.java b/smart-servlet-maven-plugin/src/main/java/org/smartboot/maven/plugin/servlet/Starter.java index 2086bbfd4a225672649f7eaad31bbb5ceaae9cff..10e5b3e05d7746f85aafb491dca7c205624bd38d 100644 --- a/smart-servlet-maven-plugin/src/main/java/org/smartboot/maven/plugin/servlet/Starter.java +++ b/smart-servlet-maven-plugin/src/main/java/org/smartboot/maven/plugin/servlet/Starter.java @@ -41,7 +41,7 @@ public class Starter { } }).webSocketHandler(new WebSocketHandler() { @Override - public void handle(WebSocketRequest request, WebSocketResponse response) throws IOException { + public void handle(WebSocketRequest request, WebSocketResponse response) throws Throwable { containerRuntime.doHandle(request, response); } }); diff --git a/spring-boot-starter/pom.xml b/spring-boot-starter/pom.xml index cd62a3b03efc6d3eed1ccaf3be231dd1c8145771..e8860843c2980608a825d9eeb0c6f365832828cc 100644 --- a/spring-boot-starter/pom.xml +++ b/spring-boot-starter/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot - 2.7.11 + 3.0.6 true diff --git a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartContainerInitializer.java b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartContainerInitializer.java index 14934cb77f237d2421447caaf5adefe59b0b6b08..52695ba2e2a7db3c7f05819d747e0a6729c882ae 100644 --- a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartContainerInitializer.java +++ b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartContainerInitializer.java @@ -12,9 +12,9 @@ package org.smartboot.springboot.starter; import org.springframework.boot.web.servlet.ServletContextInitializer; -import javax.servlet.ServletContainerInitializer; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; +import jakarta.servlet.ServletContainerInitializer; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; import java.util.Set; /** diff --git a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java index 0ca2860205fcef2622ea728202b8481fc6682fc0..50d28131e2ceb6422f82ed5334e8be26cdacbc66 100644 --- a/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java +++ b/spring-boot-starter/src/main/java/org/smartboot/springboot/starter/SmartServletServer.java @@ -53,7 +53,7 @@ public class SmartServletServer implements WebServer { } @Override - public void handle(WebSocketRequest request, WebSocketResponse response) { + public void handle(WebSocketRequest request, WebSocketResponse response) throws Throwable { containerRuntime.doHandle(request, response); } }); diff --git a/testsuite/pom.xml b/testsuite/pom.xml deleted file mode 100644 index 651528e67356be4a962650e5011ad71dcaf645c2..0000000000000000000000000000000000000000 --- a/testsuite/pom.xml +++ /dev/null @@ -1,313 +0,0 @@ - - - - - org.smartboot.servlet.test - 1.0-SNAPSHOT - 4.0.0 - - testsuite - war - - 10.0.0-SNAPSHOT - 1.7.0.Alpha14 - 5.9.2 - 3.1.4 - 3.0.0-M7 - 3.1.8.Final - 2.0 - 2.2 - 2.2 - 4.0.1 - 2.1.214 - 2.0.0 - 2.0.6 - 11 - 11 - - -Xmx8g -Xms4g - - - - - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - - - org.smartboot.servlet - servlet-core - 0.4 - - - org.junit - junit-bom - 5.9.3 - pom - import - - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-bom - ${version.shrinkwrap} - test - pom - - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-depchain - ${version.shrinkwrap} - pom - test - - - org.jboss.arquillian.container - arquillian-container-spi - ${version.arquillian_core} - - - org.jboss.arquillian.container - arquillian-container-test-spi - ${version.arquillian_core} - - - org.jboss.arquillian.junit5 - arquillian-junit5-container - ${version.arquillian_core} - test - - - - org.jboss.weld.servlet - weld-servlet-core - ${version.weld} - test - - - javax.enterprise - cdi-api - ${version.cdi-api} - test - - - org.glassfish.web - el-impl - ${version.glassfish.el} - test - - - javax.servlet.jsp - jsp-api - ${version.jsp-api} - test - - - javax.servlet - javax.servlet-api - ${version.servlet-api} - provided - - - com.h2database - h2 - ${version.h2} - test - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - - - org.slf4j - jul-to-slf4j - ${slf4j.version} - - - org.slf4j - slf4j-simple - ${slf4j.version} - - - org.hamcrest - hamcrest - 2.2 - - - jakarta.annotation - jakarta.annotation-api - 2.1.1 - - - - org.junit.jupiter - junit-jupiter - ${junit.version} - test - - - org.junit.vintage - junit-vintage-engine - ${junit.version} - test - - - - org.junit.jupiter - junit-jupiter-engine - ${junit.version} - test - - - jakartatck - servlet - ${jakarta.tck.version} - - - commons-logging - * - - - org.glassfish.metro - * - - - - - jakartatck - libutil - ${jakarta.tck.version} - - - org.glassfish.metro - * - - - - - - - - - - - org.apache.maven.plugins - maven-clean-plugin - 3.2.0 - - - org.apache.maven.plugins - maven-resources-plugin - 3.3.0 - - - org.apache.maven.plugins - maven-compiler-plugin - 3.10.1 - - - org.apache.maven.plugins - maven-surefire-plugin - ${surefire.version} - - - ${fork.argLine} -Duser.language=en -Duser.country=US - -Djava.locale.providers=COMPAT,CLDR - -Djava.protocol.handler.pkgs=javax.net.ssl - -Djavax.net.ssl.keyStore=${project.build.testOutputDirectory}/certificates/clientcert.jks - -Djavax.net.ssl.keyStorePassword=changeit - -Djavax.net.ssl.trustStore=${project.build.directory}/cacerts.jks - - 15000 - - jakartatck:servlet - - - ${http2.timeout} - - - **/URLClient* - **/Client* - - - false - - - - org.basepom.maven - duplicate-finder-maven-plugin - 1.5.1 - - - - - - org.apache.maven.plugins - maven-dependency-plugin - 3.3.0 - - - unpack - generate-test-resources - - unpack - - - - - jakartatck - libutil - jar - false - ${project.build.testOutputDirectory}/ - **/**cts_cert,**/**clientcert.jks,**/**clientcert.p12 - - - - - - - - org.codehaus.mojo - keytool-maven-plugin - 1.6 - - - - importCertificate - - process-test-resources - - - - - true - cts - CN=CTS, OU=Java Software, O=Sun Microsystems Inc., L=Burlington, ST=MA, C=US - ${project.build.testOutputDirectory}/certificates/cts_cert - JKS - ${project.build.directory}/cacerts.jks - changeit - changeit - true - - - - - \ No newline at end of file diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/AbstractJettyEmbeddedConfiguration.java b/testsuite/src/main/java/org/smartboot/servlet/testsuite/AbstractJettyEmbeddedConfiguration.java deleted file mode 100644 index 780bb6f119f8ca8e27daaae823c8cde306bc6119..0000000000000000000000000000000000000000 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/AbstractJettyEmbeddedConfiguration.java +++ /dev/null @@ -1,286 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2010, Red Hat Middleware LLC, and individual contributors - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.smartboot.servlet.testsuite; - -import org.jboss.arquillian.container.spi.ConfigurationException; -import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -/** - * A {@link ContainerConfiguration} common base for the Jetty Embedded - * containers - * - * @author Dan Allen - * @author Ales Justin - * @author Alex Soto - */ -public abstract class AbstractJettyEmbeddedConfiguration implements ContainerConfiguration { - private String bindAddress = "localhost"; - - private int bindHttpPort = 9090; - - private Map mimeTypes; - - private Map inferredEncodings; - - private int headerBufferSize = 0; - - private File realmProperties; - - /** - * List of server configuration classes that can be used for - * establishing the configuration tasks for the WebApp being deployed. - */ - private String configurationClasses; - - private String requestCookieCompliance; - - private String responseCookieCompliance; - - private boolean useArchiveNameAsContext; - - private boolean ssl; - - private boolean h2cEnabled; - - /** - * Path to keystore file - */ - private String keystorePath; - - private String keystorePassword; - - private String trustStorePath; - - private String trustStorePassword; - - private boolean sniRequired; - - private boolean sniHostCheck; - - private boolean needClientAuth; - - /* - * (non-Javadoc) - * - * @see org.jboss.arquillian.spi.client.container.ContainerConfiguration#validate() - */ - public void validate() throws ConfigurationException { - if (this.realmProperties != null) { - if (!this.realmProperties.exists()) { - throw new ConfigurationException( - String.format("Realm properties file %s must exists.", this.realmProperties.getAbsolutePath())); - } - if (this.realmProperties.isDirectory()) { - throw new ConfigurationException("Realm Properties should be a file and not a directory"); - } - } - } - - public int getBindHttpPort() { - return bindHttpPort; - } - - public void setBindHttpPort(int bindHttpPort) { - this.bindHttpPort = bindHttpPort; - } - - public String getBindAddress() { - return bindAddress; - } - - public void setBindAddress(String bindAddress) { - this.bindAddress = bindAddress; - } - - public String getConfigurationClasses() { - return configurationClasses; - } - - /** - * @param configurationClasses A comma separated list of fully qualified configuration classes - */ - public void setConfigurationClasses(String configurationClasses) { - this.configurationClasses = configurationClasses; - } - - public int getHeaderBufferSize() { - return this.headerBufferSize; - } - - public boolean isHeaderBufferSizeSet() { - return this.headerBufferSize > 0; - } - - public void setHeaderBufferSize(int headerBufferSize) { - this.headerBufferSize = headerBufferSize; - } - - public void setRealmProperties(String realmProperties) { - this.realmProperties = new File(realmProperties); - } - - public boolean isRealmPropertiesFileSet() { - return this.realmProperties != null; - } - - public File getRealmProperties() { - return realmProperties; - } - - public void setMimeTypes(String mimeTypes) { - this.mimeTypes = new HashMap<>(); - String[] splittedLines = mimeTypes.split(" "); - for (int i = 0; i < splittedLines.length; i += 2) { - if (i + 1 >= splittedLines.length) { - throw new ConfigurationException(String.format( - "Mime Type definition should follow the format [ ]*, for example js application/javascript but %s definition has been found.", - mimeTypes)); - } - this.mimeTypes.put(splittedLines[i], splittedLines[i + 1]); - } - } - - public boolean areMimeTypesSet() { - return this.mimeTypes != null; - } - - public Map getMimeTypes() { - return mimeTypes; - } - - public String getRequestCookieCompliance() { - return requestCookieCompliance; - } - - public void setRequestCookieCompliance(String requestCookieCompliance) { - this.requestCookieCompliance = requestCookieCompliance; - } - - public String getResponseCookieCompliance() { - return responseCookieCompliance; - } - - public void setResponseCookieCompliance(String responseCookieCompliance) { - this.responseCookieCompliance = responseCookieCompliance; - } - - public boolean isUseArchiveNameAsContext() { - return useArchiveNameAsContext; - } - - public void setUseArchiveNameAsContext(boolean useArchiveNameAsContext) { - this.useArchiveNameAsContext = useArchiveNameAsContext; - } - - public void setInferredEncodings(String inferredEncodings) { - this.inferredEncodings = new HashMap<>(); - String[] splittedLines = inferredEncodings.split(" "); - for (int i = 0; i < splittedLines.length; i += 2) { - if (i + 1 >= splittedLines.length) { - throw new ConfigurationException(String.format( - "Mime Type definition should follow the format [ ]*, for example js application/javascript but %s definition has been found.", - inferredEncodings)); - } - this.inferredEncodings.put(splittedLines[i], splittedLines[i + 1]); - } - } - - public boolean areInferredEncodings() { - return this.inferredEncodings != null; - } - - public Map getInferredEncodings() { - return inferredEncodings; - } - - public boolean isSsl() { - return ssl; - } - - public void setSsl(boolean ssl) { - this.ssl = ssl; - } - - public String getKeystorePath() { - return keystorePath; - } - - public void setKeystorePath(String keystorePath) { - this.keystorePath = keystorePath; - } - - public String getKeystorePassword() { - return keystorePassword; - } - - public void setKeystorePassword(String keystorePassword) { - this.keystorePassword = keystorePassword; - } - - public String getTrustStorePath() { - return trustStorePath; - } - - public void setTrustStorePath(String trustStorePath) { - this.trustStorePath = trustStorePath; - } - - public String getTrustStorePassword() { - return trustStorePassword; - } - - public void setTrustStorePassword(String trustStorePassword) { - this.trustStorePassword = trustStorePassword; - } - - public boolean isSniRequired() { - return sniRequired; - } - - public void setSniRequired(boolean sniRequired) { - this.sniRequired = sniRequired; - } - - public boolean isSniHostCheck() { - return sniHostCheck; - } - - public void setSniHostCheck(boolean sniHostCheck) { - this.sniHostCheck = sniHostCheck; - } - - public boolean isNeedClientAuth() { - return needClientAuth; - } - - public void setNeedClientAuth(boolean needClientAuth) { - this.needClientAuth = needClientAuth; - } - - public boolean isH2cEnabled() { - return h2cEnabled; - } - - public void setH2cEnabled(boolean h2cEnabled) { - this.h2cEnabled = h2cEnabled; - } -} - diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/ArquillianAppProvider.java b/testsuite/src/main/java/org/smartboot/servlet/testsuite/ArquillianAppProvider.java deleted file mode 100644 index ba7f64bc43022bed015b22599183c33878d15fd4..0000000000000000000000000000000000000000 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/ArquillianAppProvider.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite; - -import org.jboss.shrinkwrap.api.Archive; -import org.jboss.shrinkwrap.api.exporter.ZipExporter; -import org.smartboot.servlet.ContainerRuntime; -import org.smartboot.servlet.ServletContextRuntime; -import org.smartboot.servlet.util.WarUtil; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.logging.Logger; - -public class ArquillianAppProvider { - private static final Logger LOG = Logger.getLogger(ArquillianAppProvider.class.getName()); - - /** - * The prefix assigned to the temporary file where the archive is exported - */ - private static final String EXPORT_FILE_PREFIX = "export"; - - /** - * Directory into which we'll extract export the war files - */ - private static final File EXPORT_DIR; - - static { - /* - * Use of java.io.tmpdir Should be a last-resort fallback for temp directory. - * - * Use of java.io.tmpdir on CI systems is dangerous (overwrite possibility is extremely high) - * - * Use of java.io.tmpdir on Unix systems is unreliable (due to common /tmp dir cleanup processes) - */ - File systemDefaultTmpDir = new File(System.getProperty("java.io.tmpdir")); - - // If running under maven + surefire, use information provided by surefire. - String baseDirVal = System.getProperty("basedir"); - - File mavenTmpDir = null; - if (baseDirVal != null) { - File baseDir = new File(baseDirVal); - if (baseDir.exists() && baseDir.isDirectory()) { - File targetDir = new File(baseDir, "target"); - if (targetDir.exists() && targetDir.isDirectory()) { - mavenTmpDir = new File(targetDir, "arquillian-jetty-temp"); - mavenTmpDir.mkdirs(); - } - } - } - - if ((mavenTmpDir != null) && mavenTmpDir.exists() && mavenTmpDir.isDirectory()) { - EXPORT_DIR = mavenTmpDir; - } else { - EXPORT_DIR = systemDefaultTmpDir; - } - - // If the temp location doesn't exist or isn't a directory - if (!EXPORT_DIR.exists() || !EXPORT_DIR.isDirectory()) { - throw new IllegalStateException("Could not obtain export directory \"" + EXPORT_DIR.getAbsolutePath() + "\""); - } - } - - private final JettyEmbeddedConfiguration config; - private ContainerRuntime deploymentManager; - - public ArquillianAppProvider(JettyEmbeddedConfiguration config) { - this.config = config; - } - - protected ServletContextRuntime createApp(ContainerRuntime containerRuntime, final Archive archive) throws Exception { - String name = archive.getName(); - int extOff = name.lastIndexOf('.'); - if (extOff <= 0) { - throw new RuntimeException("Not a valid Web Archive filename: " + name); - } - String ext = name.substring(extOff).toLowerCase(); - if (!ext.equals(".war")) { - throw new RuntimeException("Not a recognized Web Archive: " + name); - } - name = name.substring(0, extOff); - - final File exported; - try { - if (this.config.isUseArchiveNameAsContext()) { - Path tmpDirectory = Files.createTempDirectory("arquillian-jetty"); - Path archivePath = tmpDirectory.resolveSibling(archive.getName()); - Files.deleteIfExists(archivePath); - exported = Files.createFile(archivePath).toFile(); - exported.deleteOnExit(); - } else { - // If this method returns successfully then it is guaranteed that: - // 1. The file denoted by the returned abstract pathname did not exist before this method was invoked, and - // 2. Neither this method nor any of its variants will return the same abstract pathname again in the current invocation of the virtual machine. - exported = File.createTempFile(EXPORT_FILE_PREFIX, archive.getName(), EXPORT_DIR); - } - } catch (IOException e) { - throw new RuntimeException("Could not create temporary File in " + EXPORT_DIR + " to write exported archive", - e); - } - // We are overwriting the temporary file placeholder reserved by File#createTemplateFile() - archive.as(ZipExporter.class).exportTo(exported, true); - - // Mark to delete when we come down - // exported.deleteOnExit(); - - // Add the context - URI uri = exported.toURI(); - LOG.info("Webapp archive location: " + uri.toASCIIString()); - File dirFile = new File(exported.getParentFile(), name); - System.out.println("开始解压[" + name + "]..."); - WarUtil.unZip(exported, dirFile); - return containerRuntime.addRuntime(dirFile.getAbsolutePath(), "/" + name); - } - -} diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedConfiguration.java b/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedConfiguration.java deleted file mode 100644 index 09aa9ab368dc565860f51514d9b937151fa8cbf3..0000000000000000000000000000000000000000 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedConfiguration.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ -package org.smartboot.servlet.testsuite; - - -import org.smartboot.http.server.HttpServerConfiguration; - -import java.io.File; -import java.net.URI; - -/** - * A {@link org.jboss.arquillian.container.spi.client.container.ContainerConfiguration} implementation for the Jetty Embedded - * containers. - * - * @author Dan Allen - * @author Ales Justin - */ -public class JettyEmbeddedConfiguration extends AbstractJettyEmbeddedConfiguration { - public enum ClassLoaderBehavior { - /** - * Default behavior for Java Spec (server classloader, then webapp). - *

- * Also the default for Arquillian. - */ - JAVA_SPEC, - /** - * Default behavior for Servlet Spec (webapp classloader, then server) - */ - SERVLET_SPEC - } - - /** - * Classloader Search Order behavior. - *

- */ - private ClassLoaderBehavior classloaderBehavior = ClassLoaderBehavior.JAVA_SPEC; - - /** - * Optional override for the default servlet spec descriptor - */ - private URI defaultsDescriptor; - - /** - * Dump, to System.err, the server state tree after the server has successfully started up. - */ - private boolean dumpServerAfterStart = false; - - /** - * Optional HttpConfiguration for the ServerConnector that Arquillian - * creates. - */ - private HttpServerConfiguration httpConfiguration; - - /** - * Idle Timeout (in milliseconds) for active connections. - *

- * Default: 30,000ms - */ - private long idleTimeoutMillis = 30000; - - /** - * Base directory for all temp files that Jetty will manage. - */ - private File tempDirectory; - - public ClassLoaderBehavior getClassloaderBehavior() { - return classloaderBehavior; - } - - public URI getDefaultsDescriptor() { - return defaultsDescriptor; - } - - public HttpServerConfiguration getHttpConfiguration() { - return httpConfiguration; - } - - public long getIdleTimeoutMillis() { - return idleTimeoutMillis; - } - - public File getTempDirectory() { - return tempDirectory; - } - - public boolean hasDefaultsDescriptor() { - return (defaultsDescriptor != null); - } - - public boolean isDumpServerAfterStart() { - return dumpServerAfterStart; - } - - public void setClassloaderBehavior(ClassLoaderBehavior classloaderBehavior) { - this.classloaderBehavior = classloaderBehavior; - } - - public void setDefaultsDescriptor(URI defaultsDescriptor) { - this.defaultsDescriptor = defaultsDescriptor; - } - - public void setDumpServerAfterStart(boolean serverDumpAfterStart) { - this.dumpServerAfterStart = serverDumpAfterStart; - } - - public void setHttpConfiguration(HttpServerConfiguration httpConfiguration) { - this.httpConfiguration = httpConfiguration; - } - - public void setIdleTimeoutMillis(long milliseconds) { - this.idleTimeoutMillis = milliseconds; - } - - public void setTempDirectory(File tempDirectory) { - this.tempDirectory = tempDirectory; - } -} diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedContainer.java b/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedContainer.java deleted file mode 100644 index 9a5ceb15288ed036873dab3fac0d28e789e6c47a..0000000000000000000000000000000000000000 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/JettyEmbeddedContainer.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ -package org.smartboot.servlet.testsuite; - -import org.jboss.arquillian.container.spi.client.container.DeployableContainer; -import org.jboss.arquillian.container.spi.client.container.DeploymentException; -import org.jboss.arquillian.container.spi.client.container.LifecycleException; -import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription; -import org.jboss.arquillian.container.spi.client.protocol.metadata.HTTPContext; -import org.jboss.arquillian.container.spi.client.protocol.metadata.ProtocolMetaData; -import org.jboss.arquillian.container.spi.client.protocol.metadata.Servlet; -import org.jboss.arquillian.container.spi.context.annotation.DeploymentScoped; -import org.jboss.arquillian.core.api.InstanceProducer; -import org.jboss.arquillian.core.api.annotation.ApplicationScoped; -import org.jboss.arquillian.core.api.annotation.Inject; -import org.jboss.shrinkwrap.api.Archive; -import org.jboss.shrinkwrap.descriptor.api.Descriptor; -import org.smartboot.http.common.utils.Mimetypes; -import org.smartboot.http.server.HttpBootstrap; -import org.smartboot.http.server.HttpRequest; -import org.smartboot.http.server.HttpResponse; -import org.smartboot.http.server.HttpServerHandler; -import org.smartboot.http.server.WebSocketHandler; -import org.smartboot.http.server.WebSocketRequest; -import org.smartboot.http.server.WebSocketResponse; -import org.smartboot.http.server.impl.WebSocketRequestImpl; -import org.smartboot.http.server.impl.WebSocketResponseImpl; -import org.smartboot.servlet.ContainerRuntime; -import org.smartboot.servlet.ServletContextRuntime; -import org.smartboot.servlet.conf.ServletInfo; - -import javax.servlet.ServletContext; -import java.io.File; -import java.util.Map; -import java.util.Set; -import java.util.logging.Logger; - -public class JettyEmbeddedContainer implements DeployableContainer { - private static final Logger log = Logger.getLogger(JettyEmbeddedContainer.class.getName()); - - private HttpBootstrap bootstrap; - private ContainerRuntime containerRuntime; - private ArquillianAppProvider appProvider; - - private JettyEmbeddedConfiguration containerConfig; - - private String listeningHost; - private int listeningPort; - - @Inject - @DeploymentScoped - private InstanceProducer webAppContextProducer; - - @Inject - @ApplicationScoped - private InstanceProducer servletContextInstanceProducer; - - /* - * (non-Javadoc) - * - * @see org.jboss.arquillian.spi.client.container.DeployableContainer#getConfigurationClass() - */ - public Class getConfigurationClass() { - return JettyEmbeddedConfiguration.class; - } - - /* - * (non-Javadoc) - * - * @see org.jboss.arquillian.spi.client.container.DeployableContainer#getDefaultProtocol() - */ - public ProtocolDescription getDefaultProtocol() { - // Jetty 9 is a Servlet 3.1 container. - // However, Arquillian "Protocol" actuall means "Packaging" - // TODO: Fix to servlet 3.1 (when available in arquillian) - return new ProtocolDescription("Servlet 3.0"); - } - - public void setup(JettyEmbeddedConfiguration containerConfig) { - this.containerConfig = containerConfig; - } - - public void start() throws LifecycleException { - appProvider = new ArquillianAppProvider(containerConfig); - this.bootstrap = new HttpBootstrap(); - containerRuntime = new ContainerRuntime(); - bootstrap.httpHandler(new HttpServerHandler() { - @Override - public void handle(HttpRequest request, HttpResponse response) { - containerRuntime.doHandle(request, response); - } - }).webSocketHandler(new WebSocketHandler() { - @Override - public void whenHeaderComplete(WebSocketRequestImpl request, WebSocketResponseImpl response) { - containerRuntime.onHeaderComplete(request.getRequest()); - } - - @Override - public void handle(WebSocketRequest request, WebSocketResponse response) { - containerRuntime.doHandle(request, response); - } - }); - bootstrap.configuration().bannerEnabled(false).readBufferSize(1024 * 1024).debug(true); - - try { - containerRuntime.start(this.bootstrap.configuration()); - } catch (Throwable e) { - throw new LifecycleException(e.getMessage(), e); - } - bootstrap.setPort(containerConfig.getBindHttpPort()).start(); - listeningHost = "127.0.0.1"; -// listeningHost = containerConfig.getBindAddress(); - listeningPort = containerConfig.getBindHttpPort(); - System.out.println("host: " + listeningHost + " port:" + listeningPort); - } - - private String getRealmName() { - File realmProperties = containerConfig.getRealmProperties(); - String fileName = realmProperties.getName(); - int index; - if ((index = fileName.indexOf('.')) > -1) { - fileName = fileName.substring(0, index); - } - return fileName; - } - - public void stop() throws LifecycleException { - try { - System.out.println("stop....."); - containerRuntime.stop(); - bootstrap.shutdown(); - } catch (Exception e) { - throw new LifecycleException("Could not stop container", e); - } - } - - /* - * (non-Javadoc) - * - * @see org.jboss.arquillian.spi.client.container.DeployableContainer#deploy(org.jboss.shrinkwrap.descriptor.api.Descriptor) - */ - public void deploy(Descriptor descriptor) throws DeploymentException { - throw new UnsupportedOperationException("Not implemented"); - } - - /* - * (non-Javadoc) - * - * @see org.jboss.arquillian.spi.client.container.DeployableContainer#undeploy(org.jboss.shrinkwrap.descriptor.api.Descriptor) - */ - public void undeploy(Descriptor descriptor) throws DeploymentException { - throw new UnsupportedOperationException("Not implemented"); - } - - public ProtocolMetaData deploy(final Archive archive) throws DeploymentException { - try { - ServletContextRuntime app = appProvider.createApp(containerRuntime, archive); - - app.start(); - - webAppContextProducer.set(app); - servletContextInstanceProducer.set(app.getServletContext()); - - HTTPContext httpContext = new HTTPContext(listeningHost, listeningPort); - for (ServletInfo servlet : app.getDeploymentInfo().getServlets().values()) { - httpContext.add(new Servlet(servlet.getServletName(), app.getContextPath())); - } - return new ProtocolMetaData().addContext(httpContext); - } catch (Throwable e) { - throw new DeploymentException("Could not deploy " + archive.getName(), e); - } - } - - private Mimetypes getMimeTypes() { - Map configuredMimeTypes = containerConfig.getMimeTypes(); - Set> entries = configuredMimeTypes.entrySet(); -// MimeTypes mimeTypes = new MimeTypes(); -// entries.forEach(stringStringEntry -> -// mimeTypes.addMimeMapping(stringStringEntry.getKey(), stringStringEntry.getValue())); - return Mimetypes.getInstance(); - } - - public void undeploy(Archive archive) throws DeploymentException { - ServletContextRuntime app = webAppContextProducer.get(); - if (app != null) { - app.stop(); - } - } -} diff --git a/testsuite/src/main/java/org/smartboot/servlet/testsuite/VersionUtil.java b/testsuite/src/main/java/org/smartboot/servlet/testsuite/VersionUtil.java deleted file mode 100644 index d8419711cb50a2b3f58cdd70c9104a5a83d52d0f..0000000000000000000000000000000000000000 --- a/testsuite/src/main/java/org/smartboot/servlet/testsuite/VersionUtil.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2011 Red Hat Inc. and/or its affiliates and other contributors - * as indicated by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.smartboot.servlet.testsuite; - -/** - * VersionUtil - * - * @author Aslak Knutsen - - */ -public class VersionUtil { - private VersionUtil() { - } - - public static class Version implements Comparable { - private final Integer major; - private final Integer minor; - - public Version(int major, int minor) { - this.major = major; - this.minor = minor; - } - - /** - * @return the major - */ - public int getMajor() { - return major; - } - - /** - * @return the minor - */ - public int getMinor() { - return minor; - } - - /* (non-Javadoc) - * @see java.lang.Comparable#compareTo(java.lang.Object) - */ - @Override - public int compareTo(Version o) { - int majorCompare = major.compareTo(o.major); - if (majorCompare == 0) { - return minor.compareTo(o.minor); - } - return majorCompare; - } - } - - private static final String expression = "([0-9]{1,5})\\.([0-9]{1,5}).*"; - - public static Version extract(String version) { - if (version == null || !version.matches(expression)) { - return new Version(0, 0); - } - - return new Version( - Integer.parseInt(version.replaceAll(expression, "$1")), - Integer.parseInt(version.replaceAll(expression, "$2"))); - } - - public static boolean isGreaterThenOrEqual(String greater, String then) { - return isGreaterThenOrEqual(extract(greater), extract(then)); - } - - public static boolean isGreaterThenOrEqual(Version greater, Version then) { - return greater.compareTo(then) >= 0; - } - - public static boolean isLessThenOrEqual(String less, String then) { - return isLessThenOrEqual(extract(less), extract(then)); - } - - public static boolean isLessThenOrEqual(Version less, Version then) { - return less.compareTo(then) <= 0; - } -} diff --git a/testsuite/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/testsuite/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension deleted file mode 100644 index 1b3da30ebbfda68bcf3c33c670c368b58594ca79..0000000000000000000000000000000000000000 --- a/testsuite/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension +++ /dev/null @@ -1 +0,0 @@ -org.smartboot.servlet.testsuite.SmartServletExtension \ No newline at end of file diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/AsynccontextTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/AsynccontextTest.java deleted file mode 100644 index d48ace1b069532921fe3ee9767c74a7a0f28f54d..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/AsynccontextTest.java +++ /dev/null @@ -1,32 +0,0 @@ -///* -// * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] -// * -// * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 -// * -// * Enterprise users are required to use this project reasonably -// * and legally in accordance with the AGPL-3.0 open source agreement -// * without special permission from the smartboot organization. -// */ -// -//package org.smartboot.servlet.testsuite.test; -// -//import com.sun.ts.tests.servlet.api.jakarta_servlet.asynccontext.URLClient; -//import org.junit.jupiter.api.Test; -//import org.slf4j.LoggerFactory; -// -///** -// * Unit test for simple App. -// */ -//public class AsynccontextTest extends URLClient { -// -// @Test -// public void foo() throws Exception { -// // -// } -// -// @Test -// public void bar() throws Exception { -// LoggerFactory loggerFactory; -// } -// -//} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatchTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatchTest.java deleted file mode 100644 index ea361f7e18623a10b353a327ec65c67e2fe7ebe8..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatchTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.dispatchtest.URLClient; - -public class DispatchTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatcherTypeTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatcherTypeTest.java deleted file mode 100644 index 0c242d29a9f1b1caba676f883ccd5606fc1b551e..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DispatcherTypeTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.dispatchertype.URLClient; - -public class DispatcherTypeTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DoFilterTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DoFilterTest.java deleted file mode 100644 index ebd65819b8ed9dbd74c05a03e1ac5a4bd35986ef..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/DoFilterTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.dofilter.URLClient; - -public class DoFilterTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterChainTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterChainTest.java deleted file mode 100644 index 964cd528a49d907897dc79ff7cf55d7a590c7c50..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterChainTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.filterchain.URLClient; - -public class FilterChainTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterConfigTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterConfigTest.java deleted file mode 100644 index 93340f0b83486233981d108fcbcbfab346715584..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterConfigTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.filterconfig.URLClient; - -public class FilterConfigTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterRequestDispatcherTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterRequestDispatcherTest.java deleted file mode 100644 index d339007bd81dec73219fac36b6ad56292e585b2a..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterRequestDispatcherTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.filterrequestdispatcher.URLClient; - -public class FilterRequestDispatcherTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterTest.java deleted file mode 100644 index c3dd5b9c8c7332c3acc117c9412be3da2db975cf..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/FilterTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.filter.URLClient; - -public class FilterTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericFilterTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericFilterTest.java deleted file mode 100644 index 76e525fcd7a98b52436d82078d111da97020978e..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericFilterTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.genericfilter.URLClient; - -public class GenericFilterTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericServletTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericServletTest.java deleted file mode 100644 index 797d71aecaa927f8380be8ec7524a2e95695b358..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/GenericServletTest.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.genericservlet.URLClient; -import org.junit.jupiter.api.Test; - -import java.util.Properties; - -public class GenericServletTest extends URLClient { - @Test - public void init_ServletConfigServletExceptionTest() throws Exception { - String testName = "init_ServletConfigServletExceptionTest"; - TEST_PROPS.setProperty("testname", testName); - TEST_PROPS.setProperty("status-code", "500"); - Properties var10000 = TEST_PROPS; - String var10002 = this.getContextRoot(); - var10000.setProperty("request", "GET " + var10002 + "/" + testName + " HTTP/1.1"); - TEST_PROPS.setProperty("search_string", "Status Code: 500|Exception: javax.servlet.ServletException: in init of Init_ServletConfigServletExceptionTestServlet"); - this.invoke(); - } -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RegistrationTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RegistrationTest.java deleted file mode 100644 index 67f1829255df517875b95c9a7fed4e0e7bec049e..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RegistrationTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.registration.URLClient; - -public class RegistrationTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RequestDispatcherTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RequestDispatcherTest.java deleted file mode 100644 index d45c937ee9314b715d7ace0d05a71cdb259d7865..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/RequestDispatcherTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.requestdispatcher.URLClient; - -public class RequestDispatcherTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScEventTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScEventTest.java deleted file mode 100644 index 9560f25afc73dc5e4a3cdae462fb87c1147464c1..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScEventTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.scevent.URLClient; - -public class ScEventTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeEventTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeEventTest.java deleted file mode 100644 index 6bac256668c8633080345b60a325fc69618a45c9..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeEventTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.scattributeevent.URLClient; - -public class ScattributeEventTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListener40Test.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListener40Test.java deleted file mode 100644 index 4cad6786738e1ebc6a5a44abe8de2ceb27245f71..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListener40Test.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.scattributelistener40.URLClient; - -public class ScattributeListener40Test extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListenerTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListenerTest.java deleted file mode 100644 index 1230ac6bc15ea01cfc146215c5ceda800a2fcb4b..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ScattributeListenerTest.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.scattributelistener.URLClient; - -public class ScattributeListenerTest extends URLClient { -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ServletResponseWrapperTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ServletResponseWrapperTest.java deleted file mode 100644 index 2ba01db5cdb41c9ed7e8fcf23d71ac1f1f906610..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/ServletResponseWrapperTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet.servletresponsewrapper.URLClient; -import org.junit.jupiter.api.Test; -import org.slf4j.LoggerFactory; - -/** - * Unit test for simple App. - */ -public class ServletResponseWrapperTest extends URLClient { - - @Test - public void foo() throws Exception { - // - } - - @Test - public void bar() throws Exception { - LoggerFactory loggerFactory; - } - -} diff --git a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/SessionCookieConfigTest.java b/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/SessionCookieConfigTest.java deleted file mode 100644 index 744cc556451e031ef2cad908c1a338e73f492612..0000000000000000000000000000000000000000 --- a/testsuite/src/test/java/org/smartboot/servlet/testsuite/test/SessionCookieConfigTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) [2022] smartboot [zhengjunweimail@163.com] - * - * 企业用户未经smartboot组织特别许可,需遵循AGPL-3.0开源协议合理合法使用本项目。 - * - * Enterprise users are required to use this project reasonably - * and legally in accordance with the AGPL-3.0 open source agreement - * without special permission from the smartboot organization. - */ - -package org.smartboot.servlet.testsuite.test; - -import com.sun.ts.tests.servlet.api.jakarta_servlet_http.sessioncookieconfig.URLClient; -import org.junit.jupiter.api.Test; -import org.slf4j.LoggerFactory; - -/** - * Unit test for simple App. - */ -public class SessionCookieConfigTest extends URLClient // com.sun.ts.tests.servlet.api.jakarta_servlet_http.sessioncookieconfig.URLClient // com.sun.ts.tests.servlet.spec.security.annotations.Client -{ - - @Test - public void foo() throws Exception { - // - } - - @Test - public void bar() throws Exception { - LoggerFactory loggerFactory; - } - -} diff --git a/testsuite/src/test/resources/arquillian.xml b/testsuite/src/test/resources/arquillian.xml deleted file mode 100644 index 0514924d66d57e03b71562587fb8144b4adada6c..0000000000000000000000000000000000000000 --- a/testsuite/src/test/resources/arquillian.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - 8080 - RFC2965 - RFC2965 - src/test/resources/default.properties - true - - text/html iso-8859-1 - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/testsuite/src/test/resources/default.properties b/testsuite/src/test/resources/default.properties deleted file mode 100644 index 1a441165817fef4f81a39470e19dc7ec87919da7..0000000000000000000000000000000000000000 --- a/testsuite/src/test/resources/default.properties +++ /dev/null @@ -1,27 +0,0 @@ -# -# This file defines users passwords and roles for a HashUserRealm -# -# The format is -# : [, ...] -# -# Passwords may be clear text, obfuscated or checksummed. The class -# org.eclipse.util.Password should be used to generate obfuscated -# passwords or password checksums -# -# If DIGEST Authentication is used, the password must be in a recoverable -# format, either plain text or OBF:. -# -jetty: MD5:164c88b302622e17050af52c89945d44,user -admin: CRYPT:adpexzg3FUZAk,server-administrator,content-administrator,admin,user -other: OBF:1xmk1w261u9r1w1c1xmq,user -plain: plain,user -user: password,user - -# This entry is for digest auth. The credential is a MD5 hash of username:realmname:password -digest: MD5:6e120743ad67abfbc385bc2bb754e297,user - -j2ee: j2ee,Administrator,Employee -javajoe: javajoe,VP,Manager - -# CN=CTS, OU=Java Software, O=Sun Microsystems Inc., L=Burlington, ST=MA, C=US -CN\=CTS,\ OU\=Java\ Software,\ O\=Sun\ Microsystems\ Inc.,\ L\=Burlington,\ ST\=MA,\ C\=US=,,Administrator diff --git a/testsuite/src/test/resources/servlet_spec_fragment_web/webdefault.xml b/testsuite/src/test/resources/servlet_spec_fragment_web/webdefault.xml deleted file mode 100644 index e653db53398e3797b37d2af2bdc80f4484c122bc..0000000000000000000000000000000000000000 --- a/testsuite/src/test/resources/servlet_spec_fragment_web/webdefault.xml +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - - - - Default web.xml file. - This file is applied to a Web application before its own WEB_INF/web.xml file - - - - - - - - org.eclipse.jetty.servlet.listener.ELContextCleaner - - - - - - - - org.eclipse.jetty.servlet.listener.IntrospectorCleaner - - - - - - - - - - - - default - org.eclipse.jetty.servlet.DefaultServlet - - acceptRanges - true - - - dirAllowed - true - - - welcomeServlets - exact - - - redirectWelcome - false - - - maxCacheSize - 256000000 - - - maxCachedFileSize - 200000000 - - - maxCachedFiles - 2048 - - - etags - false - - - useFileMappedBuffer - true - - 0 - - - - default - / - - - - - - - - - - - - - - - jsp - org.eclipse.jetty.jsp.JettyJspServlet - - xpoweredBy - false - - - compilerTargetVM - 1.8 - - - compilerSourceVM - 1.8 - - 0 - - - - jsp - *.jsp - *.jspf - *.jspx - *.xsp - *.JSP - *.JSPF - *.JSPX - *.XSP - - - - - - - - 30 - - - - - - - - index.html - index.htm - index.jsp - - - - - - - - ar - ISO-8859-6 - - - be - ISO-8859-5 - - - bg - ISO-8859-5 - - - ca - ISO-8859-1 - - - cs - ISO-8859-2 - - - da - ISO-8859-1 - - - de - ISO-8859-1 - - - el - ISO-8859-7 - - - en - ISO-8859-1 - - - es - ISO-8859-1 - - - et - ISO-8859-1 - - - fi - ISO-8859-1 - - - fr - ISO-8859-1 - - - hr - ISO-8859-2 - - - hu - ISO-8859-2 - - - is - ISO-8859-1 - - - it - ISO-8859-1 - - - iw - ISO-8859-8 - - - ja - Shift_JIS - - - ko - EUC-KR - - - lt - ISO-8859-2 - - - lv - ISO-8859-2 - - - mk - ISO-8859-5 - - - nl - ISO-8859-1 - - - no - ISO-8859-1 - - - pl - ISO-8859-2 - - - pt - ISO-8859-1 - - - ro - ISO-8859-2 - - - ru - ISO-8859-5 - - - sh - ISO-8859-5 - - - sk - ISO-8859-2 - - - sl - ISO-8859-2 - - - sq - ISO-8859-2 - - - sr - ISO-8859-5 - - - sv - ISO-8859-1 - - - tr - ISO-8859-9 - - - uk - ISO-8859-5 - - - zh - GB2312 - - - zh_TW - Big5 - - - - - - - - - Disable TRACE - / - TRACE - - - - - - Enable everything but TRACE - / - TRACE - - - - - diff --git a/testsuite/src/test/resources/simplelogger.properties b/testsuite/src/test/resources/simplelogger.properties deleted file mode 100644 index c42caf080b586f0d20afc650927bc85f6661b3a4..0000000000000000000000000000000000000000 --- a/testsuite/src/test/resources/simplelogger.properties +++ /dev/null @@ -1,8 +0,0 @@ -org.slf4j.simpleLogger.defaultLogLevel=info -#org.slf4j.simpleLogger.log.org.eclipse.jetty=debug -#org.slf4j.simpleLogger.log.org.eclipse.jetty.security=info -#org.slf4j.simpleLogger.log.org.eclipse.jetty.annotations=debug -org.slf4j.simpleLogger.log.org.eclipse.jetty.io=info -org.slf4j.simpleLogger.log.org.eclipse.jetty.server=info -org.slf4j.simpleLogger.log.org.eclipse.jetty.util=info -