[Extensions] Add Regex validator#6221
Conversation
Gradle Check (Jenkins) Run Completed with:
|
dbwiddis
left a comment
There was a problem hiding this comment.
Great job!
A few minor tweaks needed, and a usability suggestion from the original issue.
| // RegexValidator | ||
| public static class RegexValidator implements Writeable, Validator<String> { | ||
| private Pattern pattern; | ||
| private String value = "forbidden"; |
There was a problem hiding this comment.
Don't hardcode this iniitialization. I don't think you use it anywhere, so it can just be deleted.
| return properties != null && Arrays.asList(properties).contains(Property.Filtered); | ||
| } | ||
|
|
||
| // RegexValidator |
There was a problem hiding this comment.
A more descriptive class javadoc would be helpful! :)
|
|
||
| @Override | ||
| public void writeTo(StreamOutput out) throws IOException { | ||
| out.writeString(pattern.pattern()); |
There was a problem hiding this comment.
This is good. You don't need to store the original string because you can extract it with pattern().
| @Override | ||
| public void validate(String value) { | ||
| if(pattern.matcher(value).matches()){ | ||
| throw new IllegalArgumentException("custom setting contains forbidden"); |
There was a problem hiding this comment.
The message here should be "Custom setting matches regex [" + pattern.pattern() + "]".
See this comment for a suggestion to add an (optional) second String in an overloaded constructor, which if not null, will use that message here instead of this one.
| EnumSet<Property> propSet = in.readEnumSet(Property.class); | ||
| // Put it all in a setting object | ||
| this.setting = createSetting(type, key, defaultValue, fallback, propSet.toArray(Property[]::new)); | ||
| this.setting = createSetting(type, key, defaultValue, validator, fallback, propSet.toArray(Property[]::new)); |
There was a problem hiding this comment.
OK for now, when your parser PR is merged you'll have to rebase to update this.
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
0c7ce04 to
3066123
Compare
Gradle Check (Jenkins) Run Completed with:
|
3066123 to
f5058ca
Compare
Gradle Check (Jenkins) Run Completed with:
|
f5058ca to
0eddf2e
Compare
Signed-off-by: Frank Lou <mloufra@amazon.com>
Signed-off-by: Frank Lou <mloufra@amazon.com>
Signed-off-by: Frank Lou <mloufra@amazon.com>
4288cc9 to
c3daa44
Compare
Gradle Check (Jenkins) Run Completed with:
|
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## main #6221 +/- ##
============================================
+ Coverage 70.77% 70.80% +0.02%
- Complexity 59125 59144 +19
============================================
Files 4804 4804
Lines 283098 283121 +23
Branches 40813 40816 +3
============================================
+ Hits 200372 200470 +98
+ Misses 66269 66183 -86
- Partials 16457 16468 +11
... and 457 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
Signed-off-by: Frank Lou <mloufra@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
dbwiddis
left a comment
There was a problem hiding this comment.
Some final javadoc fixes and this will be GTG
| public static class RegexValidator implements Writeable, Validator<String> { | ||
| private Pattern pattern; | ||
|
|
||
| public RegexValidator(String regex) { |
There was a problem hiding this comment.
You added the javadoc to the streaminput constructor below, not this one... this is the one developers will use. The StreamInput constructor will be used by the transport service sending these between OpenSearch and SDK.
Also you need the @param javadoc tag for the parameters.
Signed-off-by: Frank Lou <mloufra@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
Signed-off-by: Frank Lou <mloufra@amazon.com>
Gradle Check (Jenkins) Run Completed with:
|
|
The backport to To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/backport-2.x
# Create a new branch
git switch --create backport/backport-6221-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 b0ab550ecfb80a2942b58169c5c38e500950a8cc
# Push it to GitHub
git push --set-upstream origin backport/backport-6221-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/backport-2.xThen, create a pull request where the |
* add RegexValidator class Signed-off-by: Frank Lou <mloufra@amazon.com> * add regexValidator Signed-off-by: Frank Lou <mloufra@amazon.com> * addressing comment Signed-off-by: Frank Lou <mloufra@amazon.com> * addressing comment Signed-off-by: Frank Lou <mloufra@amazon.com> * do spotless Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * fix merge conflict Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * fix AssertionError Signed-off-by: Frank Lou <mloufra@amazon.com> * fix AssertionError Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * add javadoc Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * remove changlog Signed-off-by: Frank Lou <mloufra@amazon.com> --------- Signed-off-by: Frank Lou <mloufra@amazon.com> (cherry picked from commit b0ab550) Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* add RegexValidator class * add regexValidator * addressing comment * addressing comment * do spotless * address comment * fix merge conflict * address comment * address comment * address comment * address comment * address comment * address comment * address comment * address comment * fix AssertionError * fix AssertionError * address comment * add javadoc * address comment * remove changlog --------- (cherry picked from commit b0ab550) Signed-off-by: Frank Lou <mloufra@amazon.com> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* add RegexValidator class Signed-off-by: Frank Lou <mloufra@amazon.com> * add regexValidator Signed-off-by: Frank Lou <mloufra@amazon.com> * addressing comment Signed-off-by: Frank Lou <mloufra@amazon.com> * addressing comment Signed-off-by: Frank Lou <mloufra@amazon.com> * do spotless Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * fix merge conflict Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * fix AssertionError Signed-off-by: Frank Lou <mloufra@amazon.com> * fix AssertionError Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * add javadoc Signed-off-by: Frank Lou <mloufra@amazon.com> * address comment Signed-off-by: Frank Lou <mloufra@amazon.com> * remove changlog Signed-off-by: Frank Lou <mloufra@amazon.com> --------- Signed-off-by: Frank Lou <mloufra@amazon.com> Signed-off-by: Mingshi Liu <mingshl@amazon.com>
Description
Add Regex Validator implement Writeable and Validator to make Validator writeable for custom setting.
Issues Resolved
Fixes opensearch-project/opensearch-sdk-java#350
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.