This is an automated email from the ASF dual-hosted git repository. robertlazarski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-core.git
commit 45b1465dbd324dba64bcfdbc8012c1e94dc885fc Author: Robert Lazarski <[email protected]> AuthorDate: Mon May 11 10:22:27 2026 -1000 docs: Remove openapi-rest-advanced-http2-userguide.xml (redundant) This file was 95% duplicated content from: - openapi-rest-userguide.xml (OpenAPI guidance) - http2-integration-guide.xml (HTTP/2 architecture) - http2-transport-additions.xml (transport details) - tomcat-http2-integration-guide.xml (Tomcat config) The remaining 5% was hallucinated: openapi.properties flags (prettyPrint, deepLinking, filter) that don't exist in the codebase, and @OpenApiOperation(protocols={"HTTP/2.0"}) which is not a real annotation. Removing eliminates a maintenance burden (6 files to sync instead of 4) and a source of conflicting/fake configuration examples. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> --- .../docs/json-springboot-tomcat11-userguide.xml | 4 +- src/site/xdoc/docs/json-springboot-userguide.xml | 4 +- .../docs/openapi-rest-advanced-http2-userguide.xml | 413 --------------------- src/site/xdoc/docs/toc.xml | 4 +- 4 files changed, 3 insertions(+), 422 deletions(-) diff --git a/src/site/xdoc/docs/json-springboot-tomcat11-userguide.xml b/src/site/xdoc/docs/json-springboot-tomcat11-userguide.xml index 94bff890a8..15f7315a60 100644 --- a/src/site/xdoc/docs/json-springboot-tomcat11-userguide.xml +++ b/src/site/xdoc/docs/json-springboot-tomcat11-userguide.xml @@ -140,9 +140,7 @@ For comprehensive HTTP/2 configuration details and advanced features, see the <a href="http2-transport-additions.html">HTTP/2 Transport documentation</a>.</p> <p><strong>OpenAPI Integration:</strong> For REST API documentation and enterprise features, -see the <a href="openapi-rest-advanced-http2-userguide.html">OpenAPI + HTTP/2 Performance Integration Guide</a>, -which demonstrates Axis2's unique competitive advantage for modern, high-performance REST API deployments with automatic -OpenAPI 3.0.1 specification generation and interactive Swagger UI over HTTP/2 transport.</p> +see the <a href="openapi-rest-userguide.html">OpenAPI REST User Guide</a>.</p> <h3>Key HTTP/2 Benefits</h3> diff --git a/src/site/xdoc/docs/json-springboot-userguide.xml b/src/site/xdoc/docs/json-springboot-userguide.xml index cf65ffefef..e7ed156876 100644 --- a/src/site/xdoc/docs/json-springboot-userguide.xml +++ b/src/site/xdoc/docs/json-springboot-userguide.xml @@ -78,9 +78,7 @@ For comprehensive HTTP/2 configuration details and advanced features, see the <a href="http2-transport-additions.html">HTTP/2 Transport documentation</a>.</p> <p><strong>OpenAPI Integration:</strong> For REST API documentation and enterprise features, -see the <a href="openapi-rest-advanced-http2-userguide.html">OpenAPI + HTTP/2 Performance Integration Guide</a>, -which demonstrates Axis2's unique competitive advantage for modern, high-performance REST API deployments with automatic -OpenAPI 3.0.1 specification generation and interactive Swagger UI over HTTP/2 transport.</p> +see the <a href="openapi-rest-userguide.html">OpenAPI REST User Guide</a>.</p> <h3>Key HTTP/2 Benefits</h3> diff --git a/src/site/xdoc/docs/openapi-rest-advanced-http2-userguide.xml b/src/site/xdoc/docs/openapi-rest-advanced-http2-userguide.xml deleted file mode 100644 index 8303d0d5cf..0000000000 --- a/src/site/xdoc/docs/openapi-rest-advanced-http2-userguide.xml +++ /dev/null @@ -1,413 +0,0 @@ -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. - --> - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" - "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <meta http-equiv="content-type" content=""/> - <title>Apache Axis2 OpenAPI + HTTP/2 Performance Integration Guide</title> -</head> - -<body lang="en"> - -<h1>Apache Axis2 OpenAPI + HTTP/2 Performance Integration Guide</h1> - -<div style="background-color: #e8f5e8; border: 1px solid #4CAF50; padding: 15px; margin: 15px 0;"> -<strong>🚀 HTTP/2 + OpenAPI Integration:</strong> Apache Axis2 provides comprehensive HTTP/2 optimization -specifically designed for OpenAPI services, delivering performance improvements for modern -REST API deployments through native transport integration. -</div> - -<h2>Overview</h2> - -<p>This guide demonstrates how Apache Axis2's native HTTP/2 transport delivers significant performance -improvements for OpenAPI-enabled REST services. By combining Axis2's enterprise-grade OpenAPI implementation -with its production-ready HTTP/2 transport, you can achieve meaningful performance improvements while maintaining -full compatibility with existing applications. Actual gains depend on payload size, network conditions, -and server configuration.</p> - -<p><strong>Key Benefits:</strong></p> -<ul> - <li><strong>30% faster Swagger UI loading</strong> through HTTP/2 connection multiplexing</li> - <li><strong>40% improvement in large JSON response processing</strong> (10MB+ API responses)</li> - <li><strong>20% reduction in memory usage</strong> through optimized connection pooling</li> - <li><strong>80% fewer connections</strong> via HTTP/2 multiplexing (50 connections → 10 multiplexed)</li> - <li><strong>Enterprise-ready deployment</strong> with WildFly HTTP/2 integration</li> -</ul> - -<h2>HTTP/2 Benefits for OpenAPI Services</h2> - -<h3>Large OpenAPI Specification Delivery</h3> - -<p>Modern enterprise APIs often generate large OpenAPI specifications (1-10MB) due to comprehensive schemas, -extensive security definitions, and numerous endpoints. HTTP/2 connection multiplexing dramatically improves -the delivery of these large specifications:</p> - -<p><em>(Illustrative estimates — actual results depend on payload, network, and JVM configuration.)</em></p> -<table border="1"> -<tr><th>Specification Size</th><th>HTTP/1.1 (baseline)</th><th>HTTP/2 Performance</th><th>Improvement</th></tr> -<tr><td>1-3MB (typical enterprise)</td><td>2.5s</td><td>1.8s</td><td>28% faster</td></tr> -<tr><td>3-7MB (complex APIs)</td><td>5.2s</td><td>3.1s</td><td>40% faster</td></tr> -<tr><td>7-10MB+ (microservices)</td><td>8.7s</td><td>5.2s</td><td>40% faster</td></tr> -</table> - -<h3>Swagger UI Asset Multiplexing</h3> - -<p>Swagger UI requires loading multiple assets (CSS, JavaScript, fonts, icons). HTTP/2 multiplexing -delivers all assets over a single connection, eliminating connection setup overhead:</p> - -<ul> - <li><strong>HTTP/1.1</strong>: 6-8 separate connections for UI assets (connection overhead: ~800ms)</li> - <li><strong>HTTP/2</strong>: Single multiplexed connection for all assets (overhead: ~150ms)</li> - <li><strong>Result</strong>: Significantly faster UI initialization (illustrative estimate; actual improvement depends on asset count and network latency)</li> -</ul> - -<h3>Large API Response Optimization</h3> - -<p>Enterprise APIs frequently return large JSON responses (analytics data, bulk exports, reporting). -HTTP/2 streaming and flow control provide significant benefits:</p> - -<pre> -// Example: Financial analytics API returning 50MB JSON dataset -HTTP/1.1: 12.3s total processing time -HTTP/2: 7.4s total processing time -Improvement: 40% faster processing with 20% less memory usage -</pre> - -<h2>Quick Start Configuration</h2> - -<h3>1. Enable HTTP/2 Transport</h3> - -<p>Configure Axis2 to use HTTP/2 transport with intelligent defaults:</p> - -<pre> -<!-- axis2.xml - HTTP/2 Transport Configuration --> -<transportSender name="h2" class="org.apache.axis2.transport.h2.impl.httpclient5.H2TransportSender"> - <parameter name="PROTOCOL">HTTP/2.0</parameter> - <!-- Intelligent defaults optimize for OpenAPI workloads --> -</transportSender> -</pre> - -<h3>2. Configure OpenAPI for HTTP/2</h3> - -<p>Enable OpenAPI with HTTP/2 optimizations:</p> - -<pre> -# openapi.properties - HTTP/2 Optimized Configuration -openapi.title=High-Performance Trading API -openapi.description=HTTP/2 optimized enterprise trading platform with sub-second response times -openapi.version=2.0.0-h2 - -# OpenAPI UI settings (standard Swagger UI properties) -openapi.prettyPrint=false # Reduce JSON size -openapi.swaggerUi.deepLinking=true # Enable efficient navigation -openapi.swaggerUi.filter=true # Optimize large API browsing - -# Note: HTTP/2 transport and streaming are configured in axis2.xml -# by selecting the appropriate transport sender and message formatter. -# No openapi.properties flags are needed for HTTP/2. -</pre> - -<h3>3. Service Configuration</h3> - -<p>Configure services to use HTTP/2 transport:</p> - -<pre> -// Java Service Configuration -@WebService -@OpenApiOperation( - value = "Get large dataset", - notes = "HTTP/2 optimized for 50MB+ JSON responses", - protocols = {"HTTP/2.0"} -) -public class AnalyticsService { - - public LargeDataResponse getLargeDataset(@OpenApiParam("datasetId") String id) { - MessageContext msgCtx = MessageContext.getCurrentMessageContext(); - msgCtx.setProperty(Constants.Configuration.TRANSPORT_NAME, "h2"); - - // HTTP/2 optimizes large response delivery - return dataProcessor.generateLargeDataset(id); - } -} -</pre> - -<h2>Enterprise WildFly Integration</h2> - -<div style="background-color: #f0f8ff; border: 1px solid #0066cc; padding: 10px; margin: 10px 0;"> -<strong>🏢 WildFly Integration:</strong> Axis2 provides deep integration with WildFly's Undertow HTTP/2 -implementation, delivering cooperative optimization through aligned buffer management and connection pooling. -This can yield additional performance improvements in WildFly deployments, depending on workload characteristics. -</div> - -<h3>WildFly HTTP/2 Configuration</h3> - -<p>Configure WildFly Undertow for optimal OpenAPI + HTTP/2 performance:</p> - -<pre> -<!-- standalone.xml - WildFly HTTP/2 + OpenAPI Optimization --> -<subsystem xmlns="urn:jboss:domain:undertow:14.0"> - - <!-- Optimized Buffer Pool for Large OpenAPI Specs --> - <byte-buffer-pool name="default" - buffer-size="65536" <!-- 64KB aligned with HTTP/2 frames --> - max-pool-size="512" <!-- Support concurrent API requests --> - direct="true"/> - - <server name="default-server"> - <!-- HTTP/2 + HTTPS Listener for OpenAPI --> - <https-listener name="https" - socket-binding="https" - ssl-context="applicationSSC" - enable-http2="true" - max-post-size="104857600" <!-- 100MB for large API requests --> - http2-enable-push="false" <!-- Optimize for REST APIs --> - http2-header-table-size="8192" <!-- Optimize for OpenAPI headers --> - http2-initial-window-size="131072" <!-- 128KB for large responses --> - http2-max-concurrent-streams="75" <!-- Concurrent API calls --> - http2-max-frame-size="65536"/> <!-- 64KB frame size --> - </server> -</subsystem> -</pre> - -<h3>Application Deployment</h3> - -<p>Deploy your OpenAPI-enabled application with HTTP/2 optimization:</p> - -<pre> -<!-- web.xml - HTTP/2 + OpenAPI Application --> -<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee - https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" - version="5.0"> - - <display-name>High-Performance OpenAPI + HTTP/2 Service</display-name> - - <!-- Axis2 Servlet (HTTP/2 is configured in axis2.xml, not here) --> - <servlet> - <servlet-name>AxisServlet</servlet-name> - <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> - <load-on-startup>1</load-on-startup> - </servlet> - - <!-- OpenAPI Endpoints --> - <servlet-mapping> - <servlet-name>AxisServlet</servlet-name> - <url-pattern>/services/*</url-pattern> - </servlet-mapping> - -</web-app> -</pre> - -<h2>Enterprise Tomcat 11 Integration</h2> - -<div style="background-color: #f8f4e6; border: 1px solid #ff9800; padding: 10px; margin: 10px 0;"> -<strong>🚀 Tomcat 11 Benefits:</strong> Apache Tomcat 11 provides excellent HTTP/2 + OpenAPI integration -with streamlined configuration and optimized performance. Tomcat's native HTTP/2 implementation delivers -low overhead and simplified deployment, making it an excellent choice for high-performance OpenAPI services. -</div> - -<h3>Tomcat 11 vs WildFly for HTTP/2 + OpenAPI</h3> - -<table border="1"> -<tr><th>Aspect</th><th>Tomcat 11</th><th>WildFly 32</th><th>Advantage</th></tr> -<tr><td><strong>Configuration Complexity</strong></td><td>~15 lines (server.xml)</td><td>~150 lines (standalone.xml)</td><td><strong>Tomcat</strong>: 90% simpler</td></tr> -<tr><td><strong>HTTP/2 Performance</strong></td><td>Lightweight, low-overhead HTTP/2</td><td>Full Jakarta EE HTTP/2 stack</td><td>Depends on workload</td></tr> -<tr><td><strong>Memory Usage</strong></td><td>30% lower baseline memory</td><td>Higher JEE overhead</td><td><strong>Tomcat</strong>: More efficient</td></tr> -<tr><td><strong>SSL Setup Time</strong></td><td>2-5 minutes</td><td>15-30 minutes</td><td><strong>Tomcat</strong>: 6x faster setup</td></tr> -<tr><td><strong>OpenAPI Integration</strong></td><td>Zero classloader conflicts</td><td>Complex module system</td><td><strong>Tomcat</strong>: Seamless deployment</td></tr> -<tr><td><strong>HTTP/2 Streams</strong></td><td>200+ concurrent streams</td><td>75-100 typical streams</td><td><strong>Tomcat</strong>: Higher concurrency</td></tr> -</table> - -<h3>Tomcat 11 HTTP/2 + OpenAPI Configuration</h3> - -<p>Production-optimized Tomcat configuration for maximum HTTP/2 + OpenAPI performance:</p> - -<pre> -<!-- server.xml - Tomcat 11 HTTP/2 + OpenAPI Optimization --> -<Server port="8005" shutdown="SHUTDOWN"> - - <!-- HTTP/2 Optimized Thread Pool --> - <Service name="Catalina"> - <Executor name="tomcatThreadPool" - namePrefix="catalina-exec-" - maxThreads="200" <!-- Match HTTP/2 concurrent streams --> - minSpareThreads="25" - maxIdleTime="300000" <!-- 5 minutes --> - prestartminSpareThreads="true" /> - - <!-- HTTP Connector with HTTP/2 Upgrade --> - <Connector executor="tomcatThreadPool" - port="8080" - protocol="HTTP/1.1" - redirectPort="8443" - maxPostSize="104857600" <!-- 100MB for large OpenAPI payloads --> - connectionTimeout="300000" <!-- 5 minutes for large spec generation --> - keepAliveTimeout="300000" <!-- Persistent connections --> - maxKeepAliveRequests="1000" <!-- High keep-alive for performance --> - compression="on" <!-- JSON compression --> - compressionMinSize="2048" <!-- Compress >2KB OpenAPI specs --> - compressableMimeType="application/json,application/xml,text/html" /> - - <!-- HTTPS + HTTP/2 Connector (Production Optimized) --> - <Connector executor="tomcatThreadPool" - port="8443" - protocol="org.apache.coyote.http11.Http11AprProtocol" - maxPostSize="104857600" <!-- 100MB for large API requests --> - SSLEnabled="true" - scheme="https" - secure="true" - connectionTimeout="300000" <!-- 5 minutes --> - keepAliveTimeout="300000" <!-- Persistent connections --> - - <!-- HTTP/2 Specific Configuration --> - upgradeAsyncTimeout="300000" <!-- HTTP/2 upgrade timeout --> - http2MaxConcurrentStreams="200" <!-- High concurrency for enterprise workloads --> - http2InitialWindowSize="131072" <!-- 128KB - optimized for large payloads --> - http2MaxFrameSize="65536" <!-- 64KB - aligned with buffer management --> - http2MaxHeaderTableSize="8192" <!-- 8KB header table --> - http2MaxHeaderListSize="32768" <!-- 32KB header list --> - http2EnablePush="false" <!-- Disabled for OpenAPI services --> - - <!-- SSL Configuration --> - SSLCertificateFile="/opt/tomcat11/ssl/certificate.crt" - SSLCertificateKeyFile="/opt/tomcat11/ssl/private.key" - SSLCertificateChainFile="/opt/tomcat11/ssl/chain.crt" - SSLProtocol="TLSv1.2+TLSv1.3" <!-- Modern TLS for HTTP/2 --> - SSLCipherSuite="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384" - SSLHonorCipherOrder="true" - - <!-- OpenAPI JSON Optimization --> - compression="on" - compressionMinSize="2048" - compressableMimeType="application/json,application/xml" /> - - <!-- Host with HTTP/2 + OpenAPI Access Logging --> - <Engine name="Catalina" defaultHost="localhost"> - <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> - - <!-- HTTP/2 + OpenAPI Performance Logging --> - <Valve className="org.apache.catalina.valves.AccessLogValve" - directory="logs" - prefix="openapi_http2_access" - suffix=".log" - pattern="%h %u %t &quot;%r&quot; %s %b %D Protocol:%{org.apache.coyote.request.protocol}r OpenAPI-Size:%{Content-Length}o Streams:%{http2.concurrent.streams}r Time:%T" - resolveHosts="false" /> - - </Host> - </Engine> - </Service> -</Server> -</pre> - -<h3>Enhanced Axis2 Configuration for Tomcat HTTP/2</h3> - -<p>Optimize axis2.xml specifically for Tomcat 11's HTTP/2 implementation:</p> - -<pre> -<!-- axis2.xml - Tomcat 11 + HTTP/2 + OpenAPI Optimized Configuration --> -<axisconfig name="AxisJava2.0-Tomcat11-HTTP2-OpenAPI"> - - <!-- HTTP/2 is negotiated by the transport sender below. - Tomcat's HTTP/2 connector (h2c/h2) is configured in server.xml, - not in axis2.xml. No Tomcat-specific or OpenAPI-specific - parameters are needed here. --> - - <!-- HTTP/2 Transport Sender --> - <transportSender name="h2" - class="org.apache.axis2.transport.h2.impl.httpclient5.H2TransportSender"> - <parameter name="PROTOCOL">HTTP/2.0</parameter> - - <!-- Tomcat HTTP/2 Coordination --> - <parameter name="maxConcurrentStreams">200</parameter> <!-- Matches Tomcat config --> - <parameter name="initialWindowSize">131072</parameter> <!-- 128KB - matches Tomcat --> - <parameter name="maxFrameSize">65536</parameter> <!-- 64KB - matches Tomcat --> - <parameter name="maxConnectionsTotal">50</parameter> - <parameter name="maxConnectionsPerRoute">15</parameter> <!-- Higher than WildFly --> - <parameter name="connectionTimeout">60000</parameter> <!-- 1 minute --> - <parameter name="responseTimeout">300000</parameter> <!-- 5 minutes --> - - <!-- Tomcat HTTP/2 tuning (compression, keep-alive, TLS session reuse) - is configured in Tomcat's server.xml, not here. --> - </transportSender> - -</axisconfig> -</pre> - -<h3>Production Tomcat Deployment</h3> - -<p>Complete production deployment configuration:</p> - -<pre> -<!-- web.xml - Tomcat HTTP/2 + OpenAPI Application --> -<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee - https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" - version="5.0"> - - <display-name>Enterprise OpenAPI + HTTP/2 on Tomcat 11</display-name> - - <!-- HTTP/2 and streaming are configured in axis2.xml via message receiver - and formatter class selection, not via web.xml context-params. - See the axis2.xml HTTP/2 transport configuration section. --> - - <!-- Axis2 Servlet --> - <servlet> - <servlet-name>AxisServlet</servlet-name> - <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> - <load-on-startup>1</load-on-startup> - <async-supported>true</async-supported> - </servlet> - - <servlet-mapping> - <servlet-name>AxisServlet</servlet-name> - <url-pattern>/services/*</url-pattern> - </servlet-mapping> - -</web-app> -</pre> - -<h3>JVM Optimization for Tomcat + HTTP/2 + OpenAPI</h3> - -<p>Optimize JVM settings specifically for Tomcat HTTP/2 + OpenAPI performance:</p> - -<pre> -# catalina.sh - Production JVM Settings for HTTP/2 + OpenAPI -export CATALINA_OPTS="$CATALINA_OPTS -Xms2048m -Xmx4096m" -export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseG1GC" -export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxGCPauseMillis=200" -export CATALINA_OPTS="$CATALINA_OPTS -XX:G1HeapRegionSize=16m" - -# HTTP/2 Connection Pool Optimization -export CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv6Addresses=false" -export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.coyote.http2.Http2Protocol.maxConcurrentStreams=200" -export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.coyote.http2.Http2Protocol.initialWindowSize=131072" - -# Note: Axis2 HTTP/2 and OpenAPI are configured in axis2.xml, not via -# system properties. No -Daxis2.* flags are needed. - -# For production monitoring, use Micrometer with Prometheus/Grafana -# or Spring Boot Actuator endpoints rather than raw JMX. -</pre> - -</body> -</html> diff --git a/src/site/xdoc/docs/toc.xml b/src/site/xdoc/docs/toc.xml index 336714f0dc..1f5299472a 100644 --- a/src/site/xdoc/docs/toc.xml +++ b/src/site/xdoc/docs/toc.xml @@ -61,8 +61,7 @@ Guide</a></li> <li>7.3 <a href="openapi-rest-userguide.html#Sample_Services_Overview">Complete Sample Application</a></li> <li>7.4 <a href="openapi-rest-userguide.html#Interactive_Swagger_UI">Interactive Swagger UI</a></li> <li>7.5 <a href="openapi-rest-advanced-userguide.html">Advanced Enterprise OpenAPI Features</a></li> -<li>7.6 <a href="openapi-rest-advanced-http2-userguide.html">OpenAPI + HTTP/2 Performance Integration</a></li> -<li>7.7 <a href="openapi-jpa-schema.html">JPA/Hibernate Schema Generation</a> +<li>7.6 <a href="openapi-jpa-schema.html">JPA/Hibernate Schema Generation</a> <ul> <li>7.7.1 <a href="openapi-jpa-schema.html#annotation_mode">JPA Annotation Mode (@Entity, @Column, @ManyToOne)</a></li> <li>7.7.2 <a href="openapi-jpa-schema.html#hbm_xml_mode">Hibernate XML Mapping Mode (.hbm.xml)</a></li> @@ -160,7 +159,6 @@ Support</a></li> <li><a href="openapi-rest-userguide.html#Sample_Services_Overview">Complete JSON REST API Examples</a></li> <li><a href="openapi-rest-userguide.html#Interactive_Swagger_UI">Interactive API Testing with Swagger UI</a></li> <li><a href="openapi-rest-advanced-userguide.html">Advanced Enterprise Features</a></li> - <li><a href="openapi-rest-advanced-http2-userguide.html">HTTP/2 Performance Integration</a></li> </ul> </li> <li><strong>23.4 <a href="json-rpc-mcp-guide.html">JSON-RPC MCP Integration Guide</a></strong>
