|
| 1 | +--- |
| 2 | +# Add any category for this proposal as a YAML list, e.g. |
| 3 | +# - core |
| 4 | +# - management |
| 5 | +# If missing, add it to _data/wildfly-categories and use its id |
| 6 | +categories: |
| 7 | +- undertow |
| 8 | +- ejb |
| 9 | +# Specify the stability level of the feature. |
| 10 | +# Values can be one of: experimental, preview, community, or default |
| 11 | +stability-level: default |
| 12 | +# Specify the Feature Development tracker issue for the feature. |
| 13 | +# This must be an issue tracked in https://github.com/orgs/wildfly/projects/7/views/1. |
| 14 | +# To create a Feature Development tracker issue, go to https://github.com/wildfly/wildfly-proposals/issues/new/choose |
| 15 | +# and select 'Feature Development' |
| 16 | +issue: https://github.com/wildfly/wildfly-proposals/issues/732 |
| 17 | +# Provide the GitHub ids of the feature team members, organized by role. |
| 18 | +# Provide a single id for the 'assignee' role. Use a YAML list for the 'sme' and |
| 19 | +# 'outside-perspective' roles, even if there is only one person in a role. |
| 20 | +feature-team: |
| 21 | + developer: jasondlee |
| 22 | + sme: |
| 23 | + - |
| 24 | + outside-perspective: |
| 25 | + - |
| 26 | +# If this issue tracks the promotion of a previously completed feature to a higher stability level, provide the URL of |
| 27 | +# the original https://github.com/wildfly/wildfly-proposals/issues issue that was used to track the implementation of |
| 28 | +# that feature. |
| 29 | +promotes: |
| 30 | +# During initial development of a feature, this field should be left blank. If after the feature is completed and its |
| 31 | +# stability level is promoted via a later issue, the developer promoting the issue should return to this document ("this" |
| 32 | +# being the original analysis document for the feature). The field should be updated to point to the |
| 33 | +# https://github.com/wildfly/wildfly-proposals/issues issue that promotes it. |
| 34 | +# For example, |
| 35 | +# | Implementation Issue (A) | Promotion Issue (B) |
| 36 | +# promotes: | | https://github.com/.../A |
| 37 | +# promoted-by: | https://github.com/.../B | |
| 38 | +promoted-by: |
| 39 | +--- |
| 40 | + |
| 41 | += Support TCP_NODELAY in wildfly-config.xml |
| 42 | +:author: Jason Lee |
| 43 | +:email: jasondlee@redhat.com |
| 44 | +:toc: left |
| 45 | +:icons: font |
| 46 | +:idprefix: |
| 47 | +:idseparator: - |
| 48 | + |
| 49 | + |
| 50 | +//// |
| 51 | +The entire document should be one to two pages long. We will write each analysis document as if it is a conversation |
| 52 | +with a future developer. This requires a good writing style, with full sentences organized into paragraphs. Bullets are |
| 53 | +acceptable only for visual style, not as an excuse for writing sentence fragments. |
| 54 | +//// |
| 55 | + |
| 56 | +== Overview |
| 57 | + |
| 58 | +The socket option `TCP_NODELAY` is not configurable, either programmatically or via XML. This leads, in some cases, to unacceptable performance |
| 59 | +characteristics. To remedy this, `WildFlyHttpContext` and its related XML schema need to be updated to allow this option to be configured by the |
| 60 | +developer. |
| 61 | + |
| 62 | +=== User Stories |
| 63 | + |
| 64 | +//// |
| 65 | +Provide one or more brief user stories that illustrate the intended users of the feature and the goal they will seek |
| 66 | +to achieve by using the feature. |
| 67 | +//// |
| 68 | + |
| 69 | +As an application developer, I would like greater flexibilty in configuring the socket used by the HTTP EJB client. |
| 70 | + |
| 71 | +== Issue Metadata |
| 72 | + |
| 73 | +* https://issues.redhat.com/browse/WEJBHTTP-154 |
| 74 | + |
| 75 | +=== Related Issues |
| 76 | + |
| 77 | +//// |
| 78 | +List the issues related to this feature |
| 79 | +//// |
| 80 | + |
| 81 | +=== Affected Projects or Components |
| 82 | + |
| 83 | +//// |
| 84 | +List the projects or components that are affected by the feature. List them using their Git repositories. |
| 85 | +//// |
| 86 | + |
| 87 | +=== Other Interested Projects |
| 88 | + |
| 89 | +* Undertow |
| 90 | +* EJB |
| 91 | + |
| 92 | +=== Relevant Installation Types |
| 93 | + |
| 94 | +//// |
| 95 | +List the installation types that are relevant for the features and remove any that are not relevant. |
| 96 | +//// |
| 97 | + |
| 98 | +* Traditional standalone server (unzipped or provisioned by Galleon) |
| 99 | +* Managed domain |
| 100 | +* OpenShift Source-to-Image (S2I) |
| 101 | +* Bootable jar |
| 102 | + |
| 103 | +== Requirements |
| 104 | + |
| 105 | +//// |
| 106 | +Describe the requirements that must be fulfilled by this feature. |
| 107 | +
|
| 108 | +For analyses of a promotion of an existing feature to 'preview' or 'community' stability, only list new requirements; |
| 109 | +existing requirements from the feature being promoted are assumed to continue unless otherwise noted in the 'Changed |
| 110 | +requirements' section. Other analyses, including those for promotion to the 'default' stability level, must list all |
| 111 | +requirements. |
| 112 | +//// |
| 113 | + |
| 114 | +* The `wildfly-http-client` schema version should be modified to add support for `TCP_NODELAY` |
| 115 | +* `WildFlyHttpContext` should be modified to add support for `tcpNoDelay`. |
| 116 | + |
| 117 | +=== Changed requirements |
| 118 | +//// |
| 119 | +Only relevant for analyses of a promotion of an existing feature to 'preview' or 'community stability. Other analyses |
| 120 | +should remove this section. |
| 121 | +
|
| 122 | +For any existing requirements from the feature being promoted that are being changed or removed, describe the change. |
| 123 | +//// |
| 124 | +N/A |
| 125 | + |
| 126 | +=== Non-Requirements |
| 127 | +//// |
| 128 | +Use this section to explicitly discuss things that readers might think are required but which are not required. |
| 129 | +//// |
| 130 | +N/A |
| 131 | + |
| 132 | +=== Future Work |
| 133 | +//// |
| 134 | +Use this section to discuss requirements that are not addressed by this proposal but which may be addressed in later proposals. |
| 135 | +//// |
| 136 | + |
| 137 | +N/A |
| 138 | + |
| 139 | +== Backwards Compatibility |
| 140 | +//// |
| 141 | +Does this enhancement affect backwards compatibility with previously released versions of WildFly? Can the identified |
| 142 | +incompatibility be avoided? |
| 143 | +//// |
| 144 | + |
| 145 | +This change will include a new version of the XML schema, but the old version will still be fully supported. There should |
| 146 | +not, then, be any bacwards compatibility issues. |
| 147 | + |
| 148 | +=== Default Configuration |
| 149 | +//// |
| 150 | +Does the proposed work change the default value of any current configuration attributes? Does it change the |
| 151 | +configuration generated by any current Galleon layers? |
| 152 | +//// |
| 153 | + |
| 154 | +There will be no default configuration changes. Any added elements/properties will default to their current, unconfigured values. |
| 155 | + |
| 156 | +=== Importing Existing Configuration |
| 157 | +//// |
| 158 | +Does the proposed work affect the ability to run WildFly running an existing configuration? Is there anything else |
| 159 | +about the proposed work that may require changes to the WildFly server migration tool? |
| 160 | +//// |
| 161 | + |
| 162 | +Existing configurations will continue to work unchanged. |
| 163 | + |
| 164 | +=== Deployments |
| 165 | +//// |
| 166 | +Does this feature change the behavior of deployments in incompatible ways? If yes, please detail what is the deployment |
| 167 | +issue observed when no change is done, and what is the change needed to solve the deployment issue. |
| 168 | +//// |
| 169 | + |
| 170 | +Unless deployments opt in to use the new schema version, they will be unaffected by this change. |
| 171 | + |
| 172 | +=== Interoperability |
| 173 | +//// |
| 174 | +Is this feature impacting interoperability? |
| 175 | +//// |
| 176 | + |
| 177 | +There are no interop issues foreseen. |
| 178 | + |
| 179 | +== Implementation Plan |
| 180 | +//// |
| 181 | +This section is optional. If you have a complex feature which cannot be delivered all in one go, suggest the strategy. |
| 182 | +//// |
| 183 | + |
| 184 | +N/A |
| 185 | + |
| 186 | +== Admin Clients |
| 187 | +//// |
| 188 | +Identify the level of compatibility this feature will have with the existing admin clients (JBoss CLI and the Admin |
| 189 | +Console / HAL). Identify any follow-up work that will be required in the clients and link issues created to track this work. |
| 190 | +//// |
| 191 | + |
| 192 | +N/A |
| 193 | + |
| 194 | +== Security Considerations |
| 195 | +//// |
| 196 | +What impact on security does this feature have? |
| 197 | +//// |
| 198 | + |
| 199 | +There no security considerations foreseen. |
| 200 | + |
| 201 | +[[test_plan]] |
| 202 | +== Test Plan |
| 203 | + |
| 204 | +//// |
| 205 | +Depending on the selected stability level, the appropriate section below should be completed, including a brief |
| 206 | +description of how testing is to be performed in accordance with the selected stability level. The non-relevant sections |
| 207 | +may be removed as needed. |
| 208 | +
|
| 209 | +Depending on the stability level, the test plan required may vary. See below. |
| 210 | +//// |
| 211 | + |
| 212 | +** Experimental - No test plan is required. Basic unit / integration tests should be added during development. |
| 213 | + |
| 214 | +** Preview - a brief high-level description of the testing approach should be added here, including types of tests added |
| 215 | +(unit, integration, smoke, component, subsystem, etc.) Note that not all test types are required for a particular feature, |
| 216 | +so include a description of what is being tested and the approach chosen to perform the testing. |
| 217 | + |
| 218 | +** Community - this level should include everything in the 'Preview' stability level, plus the following additional testing as relevant: |
| 219 | +*** Manual tests: briefly describe checks to be performed during one-time exploratory testing. The purpose of this testing |
| 220 | +is to check corner cases and other cases that are not worth implementing as automated tests. Typical checks are: bad |
| 221 | +configurations are easy to reveal, attribute descriptions and error messages are clear, names are descriptive and consistent |
| 222 | +with similar resources, default values are reasonable. If there is an existing quickstart affected by the feature, manual |
| 223 | +checks include following the quickstart's guide and verifying functionality. |
| 224 | +*** Miscellaneous checks: Manual checks for significant changes in server performance, memory and disk footprint should |
| 225 | +be described here. These checks are not always relevant, but consideration of these impacts, and others, are strongly |
| 226 | +encouraged and should be described here. Fully qualified test case names should be provided along with a brief description |
| 227 | +of what the test is doing. |
| 228 | +*** Integration tests - At the 'Community' stability level, complete integration tests should be provided. |
| 229 | +*** Compatibility tests - If backwards compatibility is relevant to the feature, then describe how the testing is performed. |
| 230 | +** Default - This stability level is reserved and requires approval by a professional Quality Engineer with subject matter expertise. |
| 231 | + |
| 232 | +== Community Documentation |
| 233 | +//// |
| 234 | +Describe how this feature will be documented or illustrated. Generally a feature should have documentation as part of |
| 235 | +the PR to wildfly main, or as a follow-up PR if the feature is in wildfly-core. In some cases, though, the feature will |
| 236 | +bring additional content (such as quickstarts, guides, etc.) Indicate which of these will happen. |
| 237 | +//// |
| 238 | +... |
| 239 | + |
| 240 | +== Release Note Content |
| 241 | + |
| 242 | +//// |
| 243 | +Draft verbiage for up to a few sentences on the feature for inclusion in the Release Note blog article for the release |
| 244 | +that first includes this feature. |
| 245 | +
|
| 246 | +Example article: https://www.wildfly.org/news/2024/01/25/WildFly31-Released/ |
| 247 | +
|
| 248 | +This content will be edited, so there is no need to make it perfect or discuss what release it appears in. |
| 249 | +//// |
| 250 | + |
| 251 | +Updates have been made to the `wildfly-http-client` schema and `WWildFlyHttpContext` to allow for greater flexibilty in configuring |
| 252 | +the socket used by the EJB client. |
0 commit comments