Skip to content

remove shadow jar#4955

Merged
yuancu merged 3 commits intoopensearch-project:mainfrom
xinyual:removeShadowJar
Dec 15, 2025
Merged

remove shadow jar#4955
yuancu merged 3 commits intoopensearch-project:mainfrom
xinyual:removeShadowJar

Conversation

@xinyual
Copy link
Copy Markdown
Contributor

@xinyual xinyual commented Dec 12, 2025

Description

We try to remove shadow jar since access control now is already removed in core.
Revert the change in PR #3447

Also fix an IT due to the import name changed from
shaded.com.google -> com.google

Related Issues

Resolves #[Issue number to be closed when this PR is merged]

Check List

  • New functionality includes testing.
  • New functionality has been documented.
  • New functionality has javadoc added.
  • New functionality has a user manual doc added.
  • New PPL command checklist all confirmed.
  • API changes companion pull request created.
  • Commits are signed per the DCO using --signoff or -s.
  • Public documentation issue/PR created.

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.

Signed-off-by: xinyual <xinyual@amazon.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Dec 12, 2025

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Simplified plugin build and packaging by removing the Shadow plugin integration and all related packaging logic, including ZIP manipulation and artifact relocation handling. This streamlines the overall build process.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

This PR simplifies Gradle build configuration by removing Shadow plugin integration and related artifact packaging logic, while correcting quote escaping in a test expectations file. The changes eliminate specialized ZIP manipulation, JAR filtering, and publication hooks previously associated with shadow-based packaging.

Changes

Cohort / File(s) Summary
Test expectations
integ-test/src/test/resources/expectedOutput/ppl/explain_patterns_simple_pattern_agg_push.yaml
Quote escaping corrections within embedded script string; no functional changes
Build configuration
plugin/build.gradle
Removed Shadow plugin integration: eliminated plugin application, shadowJar task configuration, publication wiring, pre/post publish hooks, and JAR filtering/relocation logic

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • Verify build completes successfully without Shadow plugin and packaging produces expected output
  • Confirm no other modules or publication workflows depend on shadow artifacts or relocated JARs
  • Validate JAR relocation behavior is no longer needed or handled elsewhere

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'remove shadow jar' directly and concisely describes the main change in the pull request, which is removing shadow jar packaging logic from the Gradle configuration.
Description check ✅ Passed The description clearly explains the purpose (removing shadow jar because access control was removed in core), references the PR being reverted, and mentions the related IT fix for import name changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bcfcd00 and e3153a3.

📒 Files selected for processing (2)
  • integ-test/src/test/resources/expectedOutput/ppl/explain_patterns_simple_pattern_agg_push.yaml (1 hunks)
  • plugin/build.gradle (0 hunks)
💤 Files with no reviewable changes (1)
  • plugin/build.gradle
🔇 Additional comments (1)
integ-test/src/test/resources/expectedOutput/ppl/explain_patterns_simple_pattern_agg_push.yaml (1)

8-19: Escaping change looks consistent, but golden output is very brittle—validate YAML+JSON parsing and line continuations.
Given the triple-escaping (YAML string containing JSON containing an escaped serialized blob), please ensure this still parses as a single request: string and matches the actual IT output exactly (especially the \\\ line continuations around Line 12-13 and trailing quoting near Line 18-19).


Comment @coderabbitai help to get the list of available commands and usage tips.

Signed-off-by: xinyual <xinyual@amazon.com>
@LantaoJin LantaoJin added dependencies Pull requests that update a dependency file maintenance Improves code quality, but not the product labels Dec 12, 2025
Signed-off-by: xinyual <xinyual@amazon.com>
:{\"composite_buckets\":{\"composite\":{\"size\":1000,\"sources\":[{\"patterns_field\"\
:{\"terms\":{\"script\":{\"source\":\"{\\\"langType\\\":\\\"v2\\\",\\\"\
script\\\":\\\"rO0ABXNyADZvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXR0ZXJuc0V4cHJlc3Npb26h4+bazqpHBgIAAloAEHVzZUN1c3RvbVBhdHRlcm5MAAdwYXR0ZXJudAAZTGphdmEvdXRpbC9yZWdleC9QYXR0ZXJuO3hyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXJzZUV4cHJlc3Npb25977zy2Qz+ogIABEwACmlkZW50aWZpZXJ0ACpMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vRXhwcmVzc2lvbjtMAA1pZGVudGlmaWVyU3RydAASTGphdmEvbGFuZy9TdHJpbmc7TAAHcGF0dGVybnEAfgADTAALc291cmNlRmllbGRxAH4AA3hyADBvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5GdW5jdGlvbkV4cHJlc3Npb26yKjDT3HVqewIAAkwACWFyZ3VtZW50c3QAEExqYXZhL3V0aWwvTGlzdDtMAAxmdW5jdGlvbk5hbWV0ADVMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vZnVuY3Rpb24vRnVuY3Rpb25OYW1lO3hwc3IAPXNoYWRlZC5jb20uZ29vZ2xlLmNvbW1vbi5jb2xsZWN0LkltbXV0YWJsZUxpc3QkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAVsACGVsZW1lbnRzdAATW0xqYXZhL2xhbmcvT2JqZWN0O3hwdXIAE1tMamF2YS5sYW5nLk9iamVjdDuQzlifEHMpbAIAAHhwAAAAA3NyADFvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5SZWZlcmVuY2VFeHByZXNzaW9uq0TvXBIHhdYCAARMAARhdHRycQB+AARMAAVwYXRoc3EAfgAGTAAHcmF3UGF0aHEAfgAETAAEdHlwZXQAJ0xvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS90eXBlL0V4cHJUeXBlO3hwdAAFZW1haWxzcgAaamF2YS51dGlsLkFycmF5cyRBcnJheUxpc3TZpDy+zYgG0gIAAVsAAWFxAH4ACnhwdXIAE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAXEAfgARcQB+ABFzcgA6b3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hUZXh0VHlwZa2Do5ME4zFEAgABTAAGZmllbGRzdAAPTGphdmEvdXRpbC9NYXA7eHIAOm9yZy5vcGVuc2VhcmNoLnNxbC5vcGVuc2VhcmNoLmRhdGEudHlwZS5PcGVuU2VhcmNoRGF0YVR5cGXCY7zKAvoFNQIAA0wADGV4cHJDb3JlVHlwZXQAK0xvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS90eXBlL0V4cHJDb3JlVHlwZTtMAAttYXBwaW5nVHlwZXQASExvcmcvb3BlbnNlYXJjaC9zcWwvb3BlbnNlYXJjaC9kYXRhL3R5cGUvT3BlblNlYXJjaERhdGFUeXBlJE1hcHBpbmdUeXBlO0wACnByb3BlcnRpZXNxAH4AF3hwfnIAKW9yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLnR5cGUuRXhwckNvcmVUeXBlAAAAAAAAAAASAAB4cgAOamF2YS5sYW5nLkVudW0AAAAAAAAAABIAAHhwdAAHVU5LTk9XTn5yAEZvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaERhdGFUeXBlJE1hcHBpbmdUeXBlAAAAAAAAAAASAAB4cQB+AB10AARUZXh0c3IAPHNoYWRlZC5jb20uZ29vZ2xlLmNvbW1vbi5jb2xsZWN0LkltbXV0YWJsZU1hcCRTZXJpYWxpemVkRm9ybQAAAAAAAAAAAgACTAAEa2V5c3QAEkxqYXZhL2xhbmcvT2JqZWN0O0wABnZhbHVlc3EAfgAkeHB1cQB+AAwAAAAAdXEAfgAMAAAAAHNyABFqYXZhLnV0aWwuQ29sbFNlcleOq7Y6G6gRAwABSQADdGFneHAAAAADdwQAAAACdAAHa2V5d29yZHNxAH4AGH5xAH4AHHQABlNUUklOR35xAH4AIHQAB0tleXdvcmRxAH4AJXhzcgAvb3JnLm9wZW5zZWFyY2guc3FsLmV4cHJlc3Npb24uTGl0ZXJhbEV4cHJlc3Npb25FQi3wjMeCJAIAAUwACWV4cHJWYWx1ZXQAKUxvcmcvb3BlbnNlYXJjaC9zcWwvZGF0YS9tb2RlbC9FeHByVmFsdWU7eHBzcgAtb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEubW9kZWwuRXhwclN0cmluZ1ZhbHVlAEEyJXOJDhMCAAFMAAV2YWx1ZXEAfgAEeHIAL29yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLm1vZGVsLkFic3RyYWN0RXhwclZhbHVlyWu1dgYURIoCAAB4cHQAAHNxAH4AMHNxAH4AM3QADnBhdHRlcm5zX2ZpZWxkc3IAM29yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLmZ1bmN0aW9uLkZ1bmN0aW9uTmFtZQuoOE3O9meXAgABTAAMZnVuY3Rpb25OYW1lcQB+AAR4cHQACHBhdHRlcm5zcQB+ADdxAH4AOXEAfgAycQB+ABAAcA==\\\
script\\\":\\\"rO0ABXNyADZvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXR0ZXJuc0V4cHJlc3Npb26h4+bazqpHBgIAAloAEHVzZUN1c3RvbVBhdHRlcm5MAAdwYXR0ZXJudAAZTGphdmEvdXRpbC9yZWdleC9QYXR0ZXJuO3hyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5wYXJzZS5QYXJzZUV4cHJlc3Npb25977zy2Qz+ogIABEwACmlkZW50aWZpZXJ0ACpMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vRXhwcmVzc2lvbjtMAA1pZGVudGlmaWVyU3RydAASTGphdmEvbGFuZy9TdHJpbmc7TAAHcGF0dGVybnEAfgADTAALc291cmNlRmllbGRxAH4AA3hyADBvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5GdW5jdGlvbkV4cHJlc3Npb26yKjDT3HVqewIAAkwACWFyZ3VtZW50c3QAEExqYXZhL3V0aWwvTGlzdDtMAAxmdW5jdGlvbk5hbWV0ADVMb3JnL29wZW5zZWFyY2gvc3FsL2V4cHJlc3Npb24vZnVuY3Rpb24vRnVuY3Rpb25OYW1lO3hwc3IANmNvbS5nb29nbGUuY29tbW9uLmNvbGxlY3QuSW1tdXRhYmxlTGlzdCRTZXJpYWxpemVkRm9ybQAAAAAAAAAAAgABWwAIZWxlbWVudHN0ABNbTGphdmEvbGFuZy9PYmplY3Q7eHB1cgATW0xqYXZhLmxhbmcuT2JqZWN0O5DOWJ8QcylsAgAAeHAAAAADc3IAMW9yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLlJlZmVyZW5jZUV4cHJlc3Npb26rRO9cEgeF1gIABEwABGF0dHJxAH4ABEwABXBhdGhzcQB+AAZMAAdyYXdQYXRocQB+AARMAAR0eXBldAAnTG9yZy9vcGVuc2VhcmNoL3NxbC9kYXRhL3R5cGUvRXhwclR5cGU7eHB0AAVlbWFpbHNyABpqYXZhLnV0aWwuQXJyYXlzJEFycmF5TGlzdNmkPL7NiAbSAgABWwABYXEAfgAKeHB1cgATW0xqYXZhLmxhbmcuU3RyaW5nO63SVufpHXtHAgAAeHAAAAABcQB+ABFxAH4AEXNyADpvcmcub3BlbnNlYXJjaC5zcWwub3BlbnNlYXJjaC5kYXRhLnR5cGUuT3BlblNlYXJjaFRleHRUeXBlrYOjkwTjMUQCAAFMAAZmaWVsZHN0AA9MamF2YS91dGlsL01hcDt4cgA6b3JnLm9wZW5zZWFyY2guc3FsLm9wZW5zZWFyY2guZGF0YS50eXBlLk9wZW5TZWFyY2hEYXRhVHlwZcJjvMoC+gU1AgADTAAMZXhwckNvcmVUeXBldAArTG9yZy9vcGVuc2VhcmNoL3NxbC9kYXRhL3R5cGUvRXhwckNvcmVUeXBlO0wAC21hcHBpbmdUeXBldABITG9yZy9vcGVuc2VhcmNoL3NxbC9vcGVuc2VhcmNoL2RhdGEvdHlwZS9PcGVuU2VhcmNoRGF0YVR5cGUkTWFwcGluZ1R5cGU7TAAKcHJvcGVydGllc3EAfgAXeHB+cgApb3JnLm9wZW5zZWFyY2guc3FsLmRhdGEudHlwZS5FeHByQ29yZVR5cGUAAAAAAAAAABIAAHhyAA5qYXZhLmxhbmcuRW51bQAAAAAAAAAAEgAAeHB0AAdVTktOT1dOfnIARm9yZy5vcGVuc2VhcmNoLnNxbC5vcGVuc2VhcmNoLmRhdGEudHlwZS5PcGVuU2VhcmNoRGF0YVR5cGUkTWFwcGluZ1R5cGUAAAAAAAAAABIAAHhxAH4AHXQABFRleHRzcgA1Y29tLmdvb2dsZS5jb21tb24uY29sbGVjdC5JbW11dGFibGVNYXAkU2VyaWFsaXplZEZvcm0AAAAAAAAAAAIAAkwABGtleXN0ABJMamF2YS9sYW5nL09iamVjdDtMAAZ2YWx1ZXNxAH4AJHhwdXEAfgAMAAAAAHVxAH4ADAAAAABzcgARamF2YS51dGlsLkNvbGxTZXJXjqu2OhuoEQMAAUkAA3RhZ3hwAAAAA3cEAAAAAnQAB2tleXdvcmRzcQB+ABh+cQB+ABx0AAZTVFJJTkd+cQB+ACB0AAdLZXl3b3JkcQB+ACV4c3IAL29yZy5vcGVuc2VhcmNoLnNxbC5leHByZXNzaW9uLkxpdGVyYWxFeHByZXNzaW9uRUIt8IzHgiQCAAFMAAlleHByVmFsdWV0AClMb3JnL29wZW5zZWFyY2gvc3FsL2RhdGEvbW9kZWwvRXhwclZhbHVlO3hwc3IALW9yZy5vcGVuc2VhcmNoLnNxbC5kYXRhLm1vZGVsLkV4cHJTdHJpbmdWYWx1ZQBBMiVziQ4TAgABTAAFdmFsdWVxAH4ABHhyAC9vcmcub3BlbnNlYXJjaC5zcWwuZGF0YS5tb2RlbC5BYnN0cmFjdEV4cHJWYWx1ZclrtXYGFESKAgAAeHB0AABzcQB+ADBzcQB+ADN0AA5wYXR0ZXJuc19maWVsZHNyADNvcmcub3BlbnNlYXJjaC5zcWwuZXhwcmVzc2lvbi5mdW5jdGlvbi5GdW5jdGlvbk5hbWULqDhNzvZnlwIAAUwADGZ1bmN0aW9uTmFtZXEAfgAEeHB0AAhwYXR0ZXJuc3EAfgA3cQB+ADlxAH4AMnEAfgAQAHA=\\\
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It confused me why a plan changed by your PR

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After decode, the script previously using
import shaded.com.google...
The shaded here is caused by shade jar.
But now we remove it, so it is
import com.google...
So the script changed.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you run explain command with extended and attach the result here

Copy link
Copy Markdown
Member

@LantaoJin LantaoJin Dec 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, it's a v2 plan. not sure how to decode the base64 string.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using online decode and here are the result:
using shadow jar

��sr�6org.opensearch.sql.expression.parse.PatternsExpressionΪG����Z��useCustomPatternL��patternt��Ljava/util/regex/Pattern;xr�3org.opensearch.sql.expression.parse.ParseExpression
} ���L�
identifiert�Lorg/opensearch/sql/expression/Expression;L�
identifierStrt��Ljava/lang/String;L��patternq���L��sourceFieldq���xr�0org.opensearch.sql.expression.FunctionExpression
0uj{���L� argumentst��Ljava/util/List;L� functionNamet�5Lorg/opensearch/sql/expression/function/FunctionName;xpsr�=shaded.com.google.common.collect.ImmutableList$SerializedForm�����������[��elementst��[Ljava/lang/Object;xpur��[Ljava.lang.Object;X�s)l���xp����sr�1org.opensearch.sql.expression.ReferenceExpressionD\�����L��attrq���L��pathsq���L��rawPathq���L��typet�'Lorg/opensearch/sql/data/type/ExprType;xpt��emailsr��java.util.Arrays$ArrayList٤<͈����[��aq�
xpur��[Ljava.lang.String;V�{G���xp����q���q���sr�:org.opensearch.sql.opensearch.data.type.OpenSearchTextType�1D���L��fieldst��Ljava/util/Map;xr�:org.opensearch.sql.opensearch.data.type.OpenSearchDataTypec��5���L� exprCoreTypet�+Lorg/opensearch/sql/data/type/ExprCoreType;L��mappingTypet�HLorg/opensearch/sql/opensearch/data/type/OpenSearchDataType$MappingType;L�
propertiesq���xpr�)org.opensearch.sql.data.type.ExprCoreType�����������xr��java.lang.Enum�����������xpt��UNKNOWNr�Forg.opensearch.sql.opensearch.data.type.OpenSearchDataType$MappingType�����������xq���t��Textsr�<*shaded.com.google.common.collect.ImmutableMap$SerializedForm*�����������L��keyst��Ljava/lang/Object;L��valuesq��$xpuq�� ����uq�� ����sr��java.util.CollSerW:�����I��tagxp����w�����t��keywordsq���q���t��STRINGq�� t��Keywordq��%xsr�/org.opensearch.sql.expression.LiteralExpressionEB-ǂ$���L� exprValuet�)Lorg/opensearch/sql/data/model/ExprValue;xpsr�-org.opensearch.sql.data.model.ExprStringValue�A2%s�����L��valueq���xr�/org.opensearch.sql.data.model.AbstractExprValuekv��D���xpt��sq��0sq��3t��patterns_fieldsr�3org.opensearch.sql.expression.function.FunctionName�8Mg���L� functionNameq���xpt��patternsq��7q��9q��2q�~���p

And without shadow jar

��sr�6org.opensearch.sql.expression.parse.PatternsExpressionΪG����Z��useCustomPatternL��patternt��Ljava/util/regex/Pattern;xr�3org.opensearch.sql.expression.parse.ParseExpression} ���L�
identifiert�Lorg/opensearch/sql/expression/Expression;L�
identifierStrt��Ljava/lang/String;L��patternq���L��sourceFieldq���xr�0org.opensearch.sql.expression.FunctionExpression
0uj{���L� argumentst��Ljava/util/List;L� functionNamet�5Lorg/opensearch/sql/expression/function/FunctionName;xpsr�6*com.google.common.collect.ImmutableList$SerializedForm�����������[��elementst��[Ljava/lang/Object;xpur��[Ljava.lang.Object;X�s)l���xp����sr�1org.opensearch.sql.expression.ReferenceExpressionD\�����L��attrq���L��pathsq���L��rawPathq���L��typet�'Lorg/opensearch/sql/data/type/ExprType;xpt��emailsr��java.util.Arrays$ArrayList٤<͈����[��aq�
xpur��[Ljava.lang.String;V�{G���xp����q���q���sr�:org.opensearch.sql.opensearch.data.type.OpenSearchTextType�1D���L��fieldst��Ljava/util/Map;xr�:org.opensearch.sql.opensearch.data.type.OpenSearchDataTypec��5���L� exprCoreTypet�+Lorg/opensearch/sql/data/type/ExprCoreType;L��mappingTypet�HLorg/opensearch/sql/opensearch/data/type/OpenSearchDataType$MappingType;L�
propertiesq���xpr�)org.opensearch.sql.data.type.ExprCoreType�����������xr��java.lang.Enum�����������xpt��UNKNOWNr�Forg.opensearch.sql.opensearch.data.type.OpenSearchDataType$MappingType�����������xq���t��Textsr�5
com.google.common.collect.ImmutableMap$SerializedForm*�����������L��keyst��Ljava/lang/Object;L��valuesq��$xpuq�� ����uq�� ����sr��java.util.CollSerW:�����I��tagxp����w�����t��keywordsq���q���t��STRINGq�� t��Keywordq��%xsr�/org.opensearch.sql.expression.LiteralExpressionEB-ǂ$���L� exprValuet�)Lorg/opensearch/sql/data/model/ExprValue;xpsr�-org.opensearch.sql.data.model.ExprStringValue�A2%s�����L��valueq���xr�/org.opensearch.sql.data.model.AbstractExprValuekv��D���xpt��sq��0sq��3t��patterns_fieldsr�3org.opensearch.sql.expression.function.FunctionName�8Mg���L� functionNameq���xpt��patternsq��7q��9q��2q�~���p

You could see the com.google.common.collect.ImmutableList$SerializedForm path changed.

@yuancu yuancu merged commit ccdb0f7 into opensearch-project:main Dec 15, 2025
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file maintenance Improves code quality, but not the product

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants