Migrate to Jakarta EE Servlet 6.0
- Update build.gradle: jakarta.servlet-api:6.1.0 - Update EnhancedMcpServlet.groovy: Jakarta imports and servlet attributes - Update WebFacadeStub.groovy: Complete Jakarta migration - New Servlet 6.0 methods (getRequestId, getProtocolRequestId, getServletConnection) - Removed deprecated methods (getSessionContext, getRealPath, etc.) - New sendRedirect(String, int, boolean) overload - Update TestHealthServlet.java: Jakarta servlet imports Aligns with upstream framework migration to Jakarta EE.
Showing
4 changed files
with
58 additions
and
68 deletions
| ... | @@ -34,7 +34,7 @@ dependencies { | ... | @@ -34,7 +34,7 @@ dependencies { |
| 34 | compileOnly project(':framework') | 34 | compileOnly project(':framework') |
| 35 | 35 | ||
| 36 | // Servlet API (provided by framework, but needed for compilation) | 36 | // Servlet API (provided by framework, but needed for compilation) |
| 37 | compileOnly 'javax.servlet:javax.servlet-api:4.0.1' | 37 | compileOnly 'jakarta.servlet:jakarta.servlet-api:6.1.0' |
| 38 | 38 | ||
| 39 | // Test dependencies | 39 | // Test dependencies |
| 40 | testImplementation project(':framework') | 40 | testImplementation project(':framework') | ... | ... |
| ... | @@ -25,11 +25,11 @@ import org.moqui.context.ExecutionContext | ... | @@ -25,11 +25,11 @@ import org.moqui.context.ExecutionContext |
| 25 | import org.slf4j.Logger | 25 | import org.slf4j.Logger |
| 26 | import org.slf4j.LoggerFactory | 26 | import org.slf4j.LoggerFactory |
| 27 | 27 | ||
| 28 | import javax.servlet.ServletConfig | 28 | import jakarta.servlet.ServletConfig |
| 29 | import javax.servlet.ServletException | 29 | import jakarta.servlet.ServletException |
| 30 | import javax.servlet.http.HttpServlet | 30 | import jakarta.servlet.http.HttpServlet |
| 31 | import javax.servlet.http.HttpServletRequest | 31 | import jakarta.servlet.http.HttpServletRequest |
| 32 | import javax.servlet.http.HttpServletResponse | 32 | import jakarta.servlet.http.HttpServletResponse |
| 33 | import java.sql.Timestamp | 33 | import java.sql.Timestamp |
| 34 | import java.util.concurrent.ConcurrentHashMap | 34 | import java.util.concurrent.ConcurrentHashMap |
| 35 | import java.util.concurrent.atomic.AtomicBoolean | 35 | import java.util.concurrent.atomic.AtomicBoolean |
| ... | @@ -281,8 +281,8 @@ class EnhancedMcpServlet extends HttpServlet { | ... | @@ -281,8 +281,8 @@ class EnhancedMcpServlet extends HttpServlet { |
| 281 | // Modify request path to avoid ScreenResourceNotFoundException | 281 | // Modify request path to avoid ScreenResourceNotFoundException |
| 282 | String originalRequestURI = request.getRequestURI() | 282 | String originalRequestURI = request.getRequestURI() |
| 283 | String originalPathInfo = request.getPathInfo() | 283 | String originalPathInfo = request.getPathInfo() |
| 284 | request.setAttribute("javax.servlet.include.request_uri", "/mcp") | 284 | request.setAttribute("jakarta.servlet.include.request_uri", "/mcp") |
| 285 | request.setAttribute("javax.servlet.include.path_info", "") | 285 | request.setAttribute("jakarta.servlet.include.path_info", "") |
| 286 | 286 | ||
| 287 | try { | 287 | try { |
| 288 | ec.initWebFacade(webappName, request, response) | 288 | ec.initWebFacade(webappName, request, response) | ... | ... |
| ... | @@ -21,10 +21,10 @@ import org.moqui.impl.context.ContextJavaUtil | ... | @@ -21,10 +21,10 @@ import org.moqui.impl.context.ContextJavaUtil |
| 21 | import org.slf4j.Logger | 21 | import org.slf4j.Logger |
| 22 | import org.slf4j.LoggerFactory | 22 | import org.slf4j.LoggerFactory |
| 23 | 23 | ||
| 24 | import javax.servlet.ServletContext | 24 | import jakarta.servlet.ServletContext |
| 25 | import javax.servlet.http.HttpServletRequest | 25 | import jakarta.servlet.http.HttpServletRequest |
| 26 | import javax.servlet.http.HttpServletResponse | 26 | import jakarta.servlet.http.HttpServletResponse |
| 27 | import javax.servlet.http.HttpSession | 27 | import jakarta.servlet.http.HttpSession |
| 28 | import java.util.ArrayList | 28 | import java.util.ArrayList |
| 29 | import java.util.EventListener | 29 | import java.util.EventListener |
| 30 | 30 | ||
| ... | @@ -340,6 +340,9 @@ class WebFacadeStub implements WebFacade { | ... | @@ -340,6 +340,9 @@ class WebFacadeStub implements WebFacade { |
| 340 | } | 340 | } |
| 341 | } | 341 | } |
| 342 | 342 | ||
| 343 | @Override String getRequestId() { return null } | ||
| 344 | @Override String getProtocolRequestId() { return null } | ||
| 345 | @Override jakarta.servlet.ServletConnection getServletConnection() { return null } | ||
| 343 | @Override String getMethod() { return method } | 346 | @Override String getMethod() { return method } |
| 344 | @Override String getScheme() { return "http" } | 347 | @Override String getScheme() { return "http" } |
| 345 | @Override String getServerName() { return "localhost" } | 348 | @Override String getServerName() { return "localhost" } |
| ... | @@ -402,10 +405,10 @@ class WebFacadeStub implements WebFacade { | ... | @@ -402,10 +405,10 @@ class WebFacadeStub implements WebFacade { |
| 402 | @Override boolean isRequestedSessionIdFromURL() { return false } | 405 | @Override boolean isRequestedSessionIdFromURL() { return false } |
| 403 | @Override java.util.Locale getLocale() { return Locale.US } | 406 | @Override java.util.Locale getLocale() { return Locale.US } |
| 404 | @Override java.util.Enumeration<java.util.Locale> getLocales() { return Collections.enumeration([Locale.US]) } | 407 | @Override java.util.Enumeration<java.util.Locale> getLocales() { return Collections.enumeration([Locale.US]) } |
| 405 | @Override javax.servlet.ServletInputStream getInputStream() throws java.io.IOException { | 408 | @Override jakarta.servlet.ServletInputStream getInputStream() throws java.io.IOException { |
| 406 | return new javax.servlet.ServletInputStream() { | 409 | return new jakarta.servlet.ServletInputStream() { |
| 407 | @Override boolean isReady() { return true } | 410 | @Override boolean isReady() { return true } |
| 408 | @Override void setReadListener(javax.servlet.ReadListener readListener) {} | 411 | @Override void setReadListener(jakarta.servlet.ReadListener readListener) {} |
| 409 | @Override int read() throws java.io.IOException { return -1 } | 412 | @Override int read() throws java.io.IOException { return -1 } |
| 410 | @Override boolean isFinished() { return true } | 413 | @Override boolean isFinished() { return true } |
| 411 | } | 414 | } |
| ... | @@ -416,28 +419,26 @@ class WebFacadeStub implements WebFacade { | ... | @@ -416,28 +419,26 @@ class WebFacadeStub implements WebFacade { |
| 416 | @Override ServletContext getServletContext() { return null } | 419 | @Override ServletContext getServletContext() { return null } |
| 417 | @Override boolean isAsyncStarted() { return false } | 420 | @Override boolean isAsyncStarted() { return false } |
| 418 | @Override boolean isAsyncSupported() { return false } | 421 | @Override boolean isAsyncSupported() { return false } |
| 419 | @Override javax.servlet.AsyncContext getAsyncContext() { return null } | 422 | @Override jakarta.servlet.AsyncContext getAsyncContext() { return null } |
| 420 | @Override javax.servlet.DispatcherType getDispatcherType() { return null } | 423 | @Override jakarta.servlet.DispatcherType getDispatcherType() { return null } |
| 421 | 424 | ||
| 422 | // Additional required methods for HttpServletRequest | 425 | // Additional required methods for HttpServletRequest |
| 423 | @Override long getContentLengthLong() { return 0 } | 426 | @Override long getContentLengthLong() { return 0 } |
| 424 | @Override java.util.Enumeration<String> getParameterNames() { return Collections.enumeration(parameters.keySet()) } | 427 | @Override java.util.Enumeration<String> getParameterNames() { return Collections.enumeration(parameters.keySet()) } |
| 425 | @Override javax.servlet.RequestDispatcher getRequestDispatcher(String path) { return null } | 428 | @Override jakarta.servlet.RequestDispatcher getRequestDispatcher(String path) { return null } |
| 426 | @Override String getRealPath(String path) { return null } | ||
| 427 | @Override int getRemotePort() { return 0 } | 429 | @Override int getRemotePort() { return 0 } |
| 428 | @Override javax.servlet.AsyncContext startAsync() { return null } | 430 | @Override jakarta.servlet.AsyncContext startAsync() { return null } |
| 429 | @Override javax.servlet.AsyncContext startAsync(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response) { return null } | 431 | @Override jakarta.servlet.AsyncContext startAsync(jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response) { return null } |
| 430 | @Override javax.servlet.http.Cookie[] getCookies() { return null } | 432 | @Override jakarta.servlet.http.Cookie[] getCookies() { return null } |
| 431 | @Override long getDateHeader(String name) { return 0 } | 433 | @Override long getDateHeader(String name) { return 0 } |
| 432 | @Override int getIntHeader(String name) { return 0 } | 434 | @Override int getIntHeader(String name) { return 0 } |
| 433 | @Override String changeSessionId() { return session ? session.getId() : "mock-session-id" } | 435 | @Override String changeSessionId() { return session ? session.getId() : "mock-session-id" } |
| 434 | @Override boolean isRequestedSessionIdFromUrl() { return false } | 436 | @Override boolean authenticate(jakarta.servlet.http.HttpServletResponse response) { return false } |
| 435 | @Override boolean authenticate(javax.servlet.http.HttpServletResponse response) { return false } | ||
| 436 | @Override void login(String username, String password) {} | 437 | @Override void login(String username, String password) {} |
| 437 | @Override void logout() {} | 438 | @Override void logout() {} |
| 438 | @Override java.util.Collection<javax.servlet.http.Part> getParts() { return [] } | 439 | @Override java.util.Collection<jakarta.servlet.http.Part> getParts() { return [] } |
| 439 | @Override javax.servlet.http.Part getPart(String name) { return null } | 440 | @Override jakarta.servlet.http.Part getPart(String name) { return null } |
| 440 | @Override <T extends javax.servlet.http.HttpUpgradeHandler> T upgrade(Class<T> handlerClass) { return null } | 441 | @Override <T extends jakarta.servlet.http.HttpUpgradeHandler> T upgrade(Class<T> handlerClass) { return null } |
| 441 | } | 442 | } |
| 442 | 443 | ||
| 443 | static class MockHttpServletResponse implements HttpServletResponse { | 444 | static class MockHttpServletResponse implements HttpServletResponse { |
| ... | @@ -452,10 +453,10 @@ class WebFacadeStub implements WebFacade { | ... | @@ -452,10 +453,10 @@ class WebFacadeStub implements WebFacade { |
| 452 | void setMockSession(HttpSession session) { this.mockSession = session } | 453 | void setMockSession(HttpSession session) { this.mockSession = session } |
| 453 | 454 | ||
| 454 | @Override PrintWriter getWriter() throws java.io.IOException { return printWriter } | 455 | @Override PrintWriter getWriter() throws java.io.IOException { return printWriter } |
| 455 | @Override javax.servlet.ServletOutputStream getOutputStream() throws java.io.IOException { | 456 | @Override jakarta.servlet.ServletOutputStream getOutputStream() throws java.io.IOException { |
| 456 | return new javax.servlet.ServletOutputStream() { | 457 | return new jakarta.servlet.ServletOutputStream() { |
| 457 | @Override boolean isReady() { return true } | 458 | @Override boolean isReady() { return true } |
| 458 | @Override void setWriteListener(javax.servlet.WriteListener writeListener) {} | 459 | @Override void setWriteListener(jakarta.servlet.WriteListener writeListener) {} |
| 459 | @Override void write(int b) throws java.io.IOException { writer.write(b) } | 460 | @Override void write(int b) throws java.io.IOException { writer.write(b) } |
| 460 | } | 461 | } |
| 461 | } | 462 | } |
| ... | @@ -488,11 +489,10 @@ class WebFacadeStub implements WebFacade { | ... | @@ -488,11 +489,10 @@ class WebFacadeStub implements WebFacade { |
| 488 | // Other required methods with minimal implementations | 489 | // Other required methods with minimal implementations |
| 489 | @Override String encodeURL(String url) { return url } | 490 | @Override String encodeURL(String url) { return url } |
| 490 | @Override String encodeRedirectURL(String url) { return url } | 491 | @Override String encodeRedirectURL(String url) { return url } |
| 491 | @Override String encodeUrl(String url) { return url } | ||
| 492 | @Override String encodeRedirectUrl(String url) { return url } | ||
| 493 | @Override void sendError(int sc, String msg) throws java.io.IOException { status = sc } | 492 | @Override void sendError(int sc, String msg) throws java.io.IOException { status = sc } |
| 494 | @Override void sendError(int sc) throws java.io.IOException { status = sc } | 493 | @Override void sendError(int sc) throws java.io.IOException { status = sc } |
| 495 | @Override void sendRedirect(String location) throws java.io.IOException {} | 494 | @Override void sendRedirect(String location) throws java.io.IOException {} |
| 495 | @Override void sendRedirect(String location, int sc, boolean clearBuffer) throws java.io.IOException {} | ||
| 496 | @Override void setDateHeader(String name, long date) {} | 496 | @Override void setDateHeader(String name, long date) {} |
| 497 | @Override void addDateHeader(String name, long date) {} | 497 | @Override void addDateHeader(String name, long date) {} |
| 498 | @Override void setIntHeader(String name, int value) {} | 498 | @Override void setIntHeader(String name, int value) {} |
| ... | @@ -501,8 +501,7 @@ class WebFacadeStub implements WebFacade { | ... | @@ -501,8 +501,7 @@ class WebFacadeStub implements WebFacade { |
| 501 | 501 | ||
| 502 | // Additional required methods for HttpServletResponse | 502 | // Additional required methods for HttpServletResponse |
| 503 | @Override void setLocale(Locale locale) {} | 503 | @Override void setLocale(Locale locale) {} |
| 504 | @Override void addCookie(javax.servlet.http.Cookie cookie) {} | 504 | @Override void addCookie(jakarta.servlet.http.Cookie cookie) {} |
| 505 | @Override void setStatus(int sc, String sm) { this.status = sc } | ||
| 506 | } | 505 | } |
| 507 | 506 | ||
| 508 | static class MockHttpSession implements HttpSession { | 507 | static class MockHttpSession implements HttpSession { |
| ... | @@ -521,16 +520,11 @@ class WebFacadeStub implements WebFacade { | ... | @@ -521,16 +520,11 @@ class WebFacadeStub implements WebFacade { |
| 521 | @Override long getCreationTime() { return creationTime } | 520 | @Override long getCreationTime() { return creationTime } |
| 522 | @Override String getId() { return id } | 521 | @Override String getId() { return id } |
| 523 | @Override long getLastAccessedTime() { return System.currentTimeMillis() } | 522 | @Override long getLastAccessedTime() { return System.currentTimeMillis() } |
| 524 | @Override javax.servlet.ServletContext getServletContext() { return null } | 523 | @Override jakarta.servlet.ServletContext getServletContext() { return null } |
| 525 | @Override void setMaxInactiveInterval(int interval) {} | 524 | @Override void setMaxInactiveInterval(int interval) {} |
| 526 | @Override int getMaxInactiveInterval() { return 1800 } | 525 | @Override int getMaxInactiveInterval() { return 1800 } |
| 527 | @Override javax.servlet.http.HttpSessionContext getSessionContext() { return null } | ||
| 528 | @Override void invalidate() {} | 526 | @Override void invalidate() {} |
| 529 | @Override boolean isNew() { return false } | 527 | @Override boolean isNew() { return false } |
| 530 | @Override void putValue(String name, Object value) { setAttribute(name, value) } | ||
| 531 | @Override Object getValue(String name) { return getAttribute(name) } | ||
| 532 | @Override void removeValue(String name) { removeAttribute(name) } | ||
| 533 | @Override String[] getValueNames() { return attributes.keySet() as String[] } | ||
| 534 | } | 528 | } |
| 535 | 529 | ||
| 536 | static class MockServletContext implements ServletContext { | 530 | static class MockServletContext implements ServletContext { |
| ... | @@ -548,8 +542,8 @@ class WebFacadeStub implements WebFacade { | ... | @@ -548,8 +542,8 @@ class WebFacadeStub implements WebFacade { |
| 548 | @Override String getRealPath(String path) { return null } | 542 | @Override String getRealPath(String path) { return null } |
| 549 | @Override java.io.InputStream getResourceAsStream(String path) { return null } | 543 | @Override java.io.InputStream getResourceAsStream(String path) { return null } |
| 550 | @Override java.net.URL getResource(String path) throws java.net.MalformedURLException { return null } | 544 | @Override java.net.URL getResource(String path) throws java.net.MalformedURLException { return null } |
| 551 | @Override javax.servlet.RequestDispatcher getRequestDispatcher(String path) { return null } | 545 | @Override jakarta.servlet.RequestDispatcher getRequestDispatcher(String path) { return null } |
| 552 | @Override javax.servlet.RequestDispatcher getNamedDispatcher(String name) { return null } | 546 | @Override jakarta.servlet.RequestDispatcher getNamedDispatcher(String name) { return null } |
| 553 | @Override String getInitParameter(String name) { return null } | 547 | @Override String getInitParameter(String name) { return null } |
| 554 | @Override java.util.Enumeration<String> getInitParameterNames() { return Collections.enumeration([]) } | 548 | @Override java.util.Enumeration<String> getInitParameterNames() { return Collections.enumeration([]) } |
| 555 | @Override boolean setInitParameter(String name, String value) { return false } | 549 | @Override boolean setInitParameter(String name, String value) { return false } |
| ... | @@ -557,37 +551,33 @@ class WebFacadeStub implements WebFacade { | ... | @@ -557,37 +551,33 @@ class WebFacadeStub implements WebFacade { |
| 557 | @Override ServletContext getContext(String uripath) { return null } | 551 | @Override ServletContext getContext(String uripath) { return null } |
| 558 | @Override int getEffectiveMajorVersion() { return 4 } | 552 | @Override int getEffectiveMajorVersion() { return 4 } |
| 559 | @Override int getEffectiveMinorVersion() { return 0 } | 553 | @Override int getEffectiveMinorVersion() { return 0 } |
| 560 | @Override javax.servlet.Servlet getServlet(String name) throws javax.servlet.ServletException { return null } | ||
| 561 | @Override java.util.Enumeration<javax.servlet.Servlet> getServlets() { return Collections.enumeration([]) } | ||
| 562 | @Override java.util.Enumeration<String> getServletNames() { return Collections.enumeration([]) } | ||
| 563 | @Override void log(String msg) {} | 554 | @Override void log(String msg) {} |
| 564 | @Override void log(Exception exception, String msg) {} | ||
| 565 | @Override void log(String msg, Throwable throwable) {} | 555 | @Override void log(String msg, Throwable throwable) {} |
| 566 | 556 | ||
| 567 | // Additional required methods for ServletContext | 557 | // Additional required methods for ServletContext |
| 568 | @Override java.util.Set<String> getResourcePaths(String path) { return null } | 558 | @Override java.util.Set<String> getResourcePaths(String path) { return null } |
| 569 | @Override javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className) { return null } | 559 | @Override jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, String className) { return null } |
| 570 | @Override javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, javax.servlet.Servlet servlet) { return null } | 560 | @Override jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, jakarta.servlet.Servlet servlet) { return null } |
| 571 | @Override javax.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends javax.servlet.Servlet> servletClass) { return null } | 561 | @Override jakarta.servlet.ServletRegistration.Dynamic addServlet(String servletName, Class<? extends jakarta.servlet.Servlet> servletClass) { return null } |
| 572 | @Override javax.servlet.ServletRegistration.Dynamic addJspFile(String jspName, String jspFile) { return null } | 562 | @Override jakarta.servlet.ServletRegistration.Dynamic addJspFile(String jspName, String jspFile) { return null } |
| 573 | @Override <T extends javax.servlet.Servlet> T createServlet(Class<T> clazz) { return null } | 563 | @Override <T extends jakarta.servlet.Servlet> T createServlet(Class<T> clazz) { return null } |
| 574 | @Override javax.servlet.ServletRegistration getServletRegistration(String servletName) { return null } | 564 | @Override jakarta.servlet.ServletRegistration getServletRegistration(String servletName) { return null } |
| 575 | @Override java.util.Map<String, ? extends javax.servlet.ServletRegistration> getServletRegistrations() { return [:] } | 565 | @Override java.util.Map<String, ? extends jakarta.servlet.ServletRegistration> getServletRegistrations() { return [:] } |
| 576 | @Override javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) { return null } | 566 | @Override jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) { return null } |
| 577 | @Override javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, javax.servlet.Filter filter) { return null } | 567 | @Override jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, jakarta.servlet.Filter filter) { return null } |
| 578 | @Override javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends javax.servlet.Filter> filterClass) { return null } | 568 | @Override jakarta.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends jakarta.servlet.Filter> filterClass) { return null } |
| 579 | @Override <T extends javax.servlet.Filter> T createFilter(Class<T> clazz) { return null } | 569 | @Override <T extends jakarta.servlet.Filter> T createFilter(Class<T> clazz) { return null } |
| 580 | @Override javax.servlet.FilterRegistration getFilterRegistration(String filterName) { return null } | 570 | @Override jakarta.servlet.FilterRegistration getFilterRegistration(String filterName) { return null } |
| 581 | @Override java.util.Map<String, ? extends javax.servlet.FilterRegistration> getFilterRegistrations() { return [:] } | 571 | @Override java.util.Map<String, ? extends jakarta.servlet.FilterRegistration> getFilterRegistrations() { return [:] } |
| 582 | @Override javax.servlet.SessionCookieConfig getSessionCookieConfig() { return null } | 572 | @Override jakarta.servlet.SessionCookieConfig getSessionCookieConfig() { return null } |
| 583 | @Override void setSessionTrackingModes(java.util.Set<javax.servlet.SessionTrackingMode> sessionTrackingModes) {} | 573 | @Override void setSessionTrackingModes(java.util.Set<jakarta.servlet.SessionTrackingMode> sessionTrackingModes) {} |
| 584 | @Override java.util.Set<javax.servlet.SessionTrackingMode> getDefaultSessionTrackingModes() { return [] as Set } | 574 | @Override java.util.Set<jakarta.servlet.SessionTrackingMode> getDefaultSessionTrackingModes() { return [] as Set } |
| 585 | @Override java.util.Set<javax.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes() { return [] as Set } | 575 | @Override java.util.Set<jakarta.servlet.SessionTrackingMode> getEffectiveSessionTrackingModes() { return [] as Set } |
| 586 | @Override void addListener(String className) {} | 576 | @Override void addListener(String className) {} |
| 587 | @Override void addListener(EventListener listener) {} | 577 | @Override void addListener(EventListener listener) {} |
| 588 | @Override void addListener(Class<? extends EventListener> listenerClass) {} | 578 | @Override void addListener(Class<? extends EventListener> listenerClass) {} |
| 589 | @Override <T extends EventListener> T createListener(Class<T> clazz) { return null } | 579 | @Override <T extends EventListener> T createListener(Class<T> clazz) { return null } |
| 590 | @Override javax.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor() { return null } | 580 | @Override jakarta.servlet.descriptor.JspConfigDescriptor getJspConfigDescriptor() { return null } |
| 591 | @Override ClassLoader getClassLoader() { return null } | 581 | @Override ClassLoader getClassLoader() { return null } |
| 592 | @Override void declareRoles(String... roleNames) {} | 582 | @Override void declareRoles(String... roleNames) {} |
| 593 | @Override String getVirtualServerName() { return "localhost" } | 583 | @Override String getVirtualServerName() { return "localhost" } | ... | ... |
| ... | @@ -13,10 +13,10 @@ | ... | @@ -13,10 +13,10 @@ |
| 13 | */ | 13 | */ |
| 14 | package org.moqui.mcp.test; | 14 | package org.moqui.mcp.test; |
| 15 | 15 | ||
| 16 | import javax.servlet.ServletException; | 16 | import jakarta.servlet.ServletException; |
| 17 | import javax.servlet.http.HttpServlet; | 17 | import jakarta.servlet.http.HttpServlet; |
| 18 | import javax.servlet.http.HttpServletRequest; | 18 | import jakarta.servlet.http.HttpServletRequest; |
| 19 | import javax.servlet.http.HttpServletResponse; | 19 | import jakarta.servlet.http.HttpServletResponse; |
| 20 | import java.io.IOException; | 20 | import java.io.IOException; |
| 21 | import java.io.PrintWriter; | 21 | import java.io.PrintWriter; |
| 22 | 22 | ... | ... |
-
Please register or sign in to post a comment