Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor HttpCompliance and HttpComplianceSection to be friendlier to customization #3012

Closed
joakime opened this issue Oct 22, 2018 · 2 comments
Assignees
Milestone

Comments

@joakime
Copy link
Contributor

joakime commented Oct 22, 2018

(Discovered during analysis of #3009)

The HttpCompliance object is an enum with awkward CUSTOM0 entries for customization, it should really be a class.
The HttpComplianceSection seems OK at first blush.

@joakime joakime added this to the 10.0.x milestone Oct 22, 2018
@joakime joakime self-assigned this Oct 22, 2018
@joakime joakime changed the title Refactor HttpConfiguration and HttpConfigurationSection to be friendlier to customization Refactor HttpCompliance and HttpComplianceSection to be friendlier to customization Oct 22, 2018
@gregw
Copy link
Contributor

gregw commented Oct 23, 2018

+1 It was kept as an enum initially to jsut to keep compatibility with Jetty-9.x, but we can make the break of API in jetty-10 and avoid the clunky CUSTOMx enums.

joakime added a commit that referenced this issue Oct 24, 2018
+ HttpCompliance is now a class with a Builder syntax.
+ You can base custom HttpCompliance configurations off of
  one of the existing baselines RFC7230 or RFC2616.
+ All LEGACY based compliance modes are gone.
+ Moved HttpComplianceSection into HttpCompliance as its only
  used to report violations.
+ Simplified the HttpParser behavior WRT HttpCompliance configurations
  and violation reporting.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 24, 2018
+ Moving HttpCompliance.Section over to
  HttpParser.ViolationSection as that's the only place its used
+ Introduce new HttpParser.ComplianceViolation interface
+ Changing signature of ComplianceHandler to use
  ComplianceViolation instead of enum

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
@joakime
Copy link
Contributor Author

joakime commented Oct 24, 2018

Opened PR #3029

joakime added a commit that referenced this issue Oct 24, 2018
+ Fixing Javadoc failure

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 24, 2018
+ Fixing testcases and their expectations on original values
  and not the Field Value cache

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 31, 2018
+ Renaming .getDefault() to .RFC7230()
+ Adding .RFC2616()

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 31, 2018
+ Moving HttpParser.ComplianceHandler out to
  top level SpecComplianceListener in preparation for
  use by other Compliance modes to report violations.
+ SpecReference is the interface for a specific reference
  within a specific spec for purposes of reporting
  spec violations.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 31, 2018
+ TODO about Case insensitive field value cache

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 31, 2018
+ CookieCompliance and CookieCutter now follow the
  same SpecComplianceListener rules

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Oct 31, 2018
+ MultiPartFormDataCompliance and MultipartInputStreamParser
  (RFC2046 version) now follow the same SpecComplianceListener rules

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Jan 18, 2019
+ All Compliance modes are configurable from HttpConfiguration
+ HttpCompliance is now a class with a Builder syntax.
+ You can base custom HttpCompliance configurations off of
  one of the existing baselines RFC7230 or RFC2616.
+ All LEGACY based compliance modes are gone.
+ Moved HttpComplianceSection into HttpCompliance as its only
  used to report violations.
+ Simplified the HttpParser behavior WRT HttpCompliance configurations
  and violation reporting.
+ Fixing testcases and their expectations on original values
  and not the Field Value cache
+ Creating top level top level SpecViolationListener for
  components to use to report any kind of Spec violation
+ SpecReference is the interface for a specific reference
  within a specific spec for purposes of reporting
  spec violations.

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Jan 18, 2019
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Jan 18, 2019
+ Adding missing header to SpecReference
+ Updating year on old headers

Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Jan 18, 2019
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Jan 23, 2019
gregw added a commit that referenced this issue Mar 6, 2019
Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 12, 2019
Added an abstraction of general compliance mode, violation and listener

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 12, 2019
clean up violation testing and reporting in HttpParser

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 12, 2019
unused field

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 12, 2019
CookieCompliance implemented new APIs

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 13, 2019
Updated unit tests for messages and reasons

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 13, 2019
added valueOf methods for XML calls.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
gregw added a commit that referenced this issue Mar 13, 2019
Fixed up httpCompliance configuration.

Signed-off-by: Greg Wilkins <gregw@webtide.com>
joakime added a commit that referenced this issue Mar 13, 2019
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
joakime added a commit that referenced this issue Mar 13, 2019
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
gregw added a commit that referenced this issue Mar 13, 2019
@gregw gregw closed this as completed Jul 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants