-
Notifications
You must be signed in to change notification settings - Fork 211
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 smithy-rules-engine #1855
Commits on Sep 6, 2023
-
Significant refactoring of smithy-rules-engine
This commit collects many changes to limit the public interface, align with Java standards, align with idioms from the rest of the Smithy codebase, and generally clean up the codebase. Several packages, classes, and methods have been removed, renamed, moved, or changed visibility. Use of `assert` has been removed and the usage of `stream` has been reduced. Classes with multiple subtypes have had their subtype names adjusted for compatibility with Java and been broken out to their own packages and classes.
Configuration menu - View commit details
-
Copy full SHA for ac81bc0 - Browse repository at this point
Copy the full SHA ac81bc0View commit details -
Enable RuleSet and Test validation by default
This commit removes the custom validation system that required code to validate a ruleset and its tests, integrating the validation with Smithy's built in ModelValidation system. Several bugs in validators and test cases were fixed. Test cases were moved to using the standard errorfiles based setup where applicable. Some related refactoring was also performed.
Configuration menu - View commit details
-
Copy full SHA for 3b95408 - Browse repository at this point
Copy the full SHA 3b95408View commit details -
Add validation of endpoint test operation inputs
This commit adds validation that for every endpoint test case that contains operationInputs, the operation input entries match their specified operation's input structure. Co-authored-by: Russell Cohen <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7e4d9fd - Browse repository at this point
Copy the full SHA 7e4d9fdView commit details -
Continued refactoring of smithy-rules-engine
This commit collects many changes to limit the public interface, align with Java standards, align with idioms from the rest of the Smithy codebase, and generally clean up the codebase. Several packages, classes, and methods have been removed, renamed, moved, or changed visibility. Direct access to inner mutable types has been removed. The internal complexity of the CoverageChecker has been significantly reduced while maintaining used functionality.
Configuration menu - View commit details
-
Copy full SHA for 504eac0 - Browse repository at this point
Copy the full SHA 504eac0View commit details -
Refactor rules engine functions
This commit refactors the configuration and inheritance hierarchy of functions in the rules engine. Two intermediate abstract classes have been eliminated, SingleArgFunction and Function. All functions are now supplied through an SPI on FunctionDefinition, and each implementation now supplies a FunctionDefinition. Special cases for methods when generating from FunctionNode instances have also been removed, aligning all implementations to the same construction. No behavior has changed in the ExpressionVisitor to reduce the impact of migration. Unused, or minimally test-case used, convenience functions have been removed. Several bugs were fixed, including dropping context information from certain sets of RulesError generation.
Configuration menu - View commit details
-
Copy full SHA for 671b384 - Browse repository at this point
Copy the full SHA 671b384View commit details -
Extract AWS specific rules engine functions
This commit pulls the AWS specific rules engine functions into a new package, smithy-aws-rules-engine. This includes parseArn, partition, and isVirtualHostableS3Bucket. The partition loading has also moved to this package, including its data types. Relevant tests were migrated. Behavior that was only possible to validate using the parseArn function have been moved, even if the behavior is not AWS specific. Tests that used AWS functions but did not require it were updated to be agnostic.
Configuration menu - View commit details
-
Copy full SHA for 0b1f8b7 - Browse repository at this point
Copy the full SHA 0b1f8b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for d47e8e8 - Browse repository at this point
Copy the full SHA d47e8e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 635b8da - Browse repository at this point
Copy the full SHA 635b8daView commit details -
Configuration menu - View commit details
-
Copy full SHA for c4d3a20 - Browse repository at this point
Copy the full SHA c4d3a20View commit details -
Extract AWS built-ins and auth validation
This commit updates the endpoint rule set SPI to provide several components to the implementation, built-in parameters and auth scheme validators in addition to library functions. AWS specific components have been extracted to their own package, and core components are provided through their own extension.
Configuration menu - View commit details
-
Copy full SHA for b7501ec - Browse repository at this point
Copy the full SHA b7501ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 36ce65d - Browse repository at this point
Copy the full SHA 36ce65dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bcb819 - Browse repository at this point
Copy the full SHA 1bcb819View commit details -
Configuration menu - View commit details
-
Copy full SHA for ded900b - Browse repository at this point
Copy the full SHA ded900bView commit details -
Allow disableNormalizePath for sigv4/sigv4a
Add the `disableNormalizePath` property as an allowed property for sigv4 and sigv4a auth schemes. This parameter is required for some services (eg: S3) to correctly sign requests. Specifying it in endpoint parameters will allow SDKs to potentially remove more S3 customizations. Co-authored-by: Alex Woods <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1e97bc3 - Browse repository at this point
Copy the full SHA 1e97bc3View commit details -
Add ModelTransformerPlugin for endpoint test cases
This commit adds a ModelTransformerPlugin implementation that removes test case entries that rely on operations being removed from a model. If all test cases are removed, the trait is also removed.
Configuration menu - View commit details
-
Copy full SHA for 335d04c - Browse repository at this point
Copy the full SHA 335d04cView commit details -
Refactor EndpointRuleSetExtension SPI loading
Updates the loading of the EndpointRuleSetExtension SPI to use a lazy instance holder that is loaded when referenced instead of a lock-based static initializer. The APIs that access the holder are labeled internal, as the access patterns may change if the content needs to vary by instance of the EndpointRuleSet.
Configuration menu - View commit details
-
Copy full SHA for 3775422 - Browse repository at this point
Copy the full SHA 3775422View commit details -
Configuration menu - View commit details
-
Copy full SHA for d41ec7a - Browse repository at this point
Copy the full SHA d41ec7aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f0c179a - Browse repository at this point
Copy the full SHA f0c179aView commit details -
Add ImplicitGlobalRegion to Partition output (#1921)
* Add defaultGlobalRegion to partitions output * Rename default to implicit * Remove optional
Configuration menu - View commit details
-
Copy full SHA for e988a86 - Browse repository at this point
Copy the full SHA e988a86View commit details -
Improve in-code rule-set composition
This commit adds a `SyntaxElement` abstract class that contains several methods intended for use in constructing rule-sets in code. This class implements two new interfaces (`ToCondition` and `ToExpression`) to support converting between types of syntax elements that compose into rule-sets. The `Condition`, `Parameter`, and `Expression` classes extend this, allowing all types of ruleset syntax to be composed this way.
Configuration menu - View commit details
-
Copy full SHA for ee526b7 - Browse repository at this point
Copy the full SHA ee526b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5575572 - Browse repository at this point
Copy the full SHA 5575572View commit details
Commits on Sep 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 67c625f - Browse repository at this point
Copy the full SHA 67c625fView commit details
Commits on Sep 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 587a578 - Browse repository at this point
Copy the full SHA 587a578View commit details