S3-compatible services, Gradle build, CI, and release workflow - #27
Merged
Merged
Conversation
Previously s3UploadEndpoint was only used to derive an AWS region from *.amazonaws.com hosts, so the client could never target anything but Amazon S3. A non-AWS endpoint now builds the client with an explicit endpoint configuration, using s3UploadRegion as the signing region, deriving it from s3.<region>.<host> style endpoints, or defaulting to us-east-1. s3UploadEndpoint is also read even when s3UploadRegion is set, and the AWS Regions enum (which rejects non-AWS region names) is bypassed on that path. Also: * s3UploadPathStyleAccess property for services that require path-style bucket addressing * s3UploadProfile / s3UploadProfilePath as provider-neutral aliases for s3UploadAwsProfile / s3UploadAwsProfilePath * guard against a null bucket region in the startup bucket check, since some services don't return the x-amz-bucket-region header * provider-neutral log wording, README section with a Backblaze B2 example Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Add Gradle build with WSE-provided jar filtering and release workflow - Rework build.gradle based on wse-plugin-avmix: compile against the full WSE lib folder, resolve the release version from *.*.* git tags via the git-properties plugin, and generate ReleaseInfo at build time - copyDeps now skips any runtime jar that Wowza Streaming Engine already ships in lib.default (jackson, httpclient, commons-*, joda-time), so only the AWS SDK v1 jars and jackson-dataformat-cbor are bundled - Upgrade Gradle wrapper to 9.5.1 and check in the wrapper files - Add GitHub Actions release workflow that extracts WSE jars from the wowza/wowza-streaming-engine:latest-slim image and publishes build/libs on *.*.* tags * Update README prerequisites for bundled AWS SDK jars and Java 17 Releases now include the required AWS SDK jars, and the module is built with Java 17, so Wowza Streaming Engine 4.9.0 or later is the minimum. * Exclude SDK transitive deps that aren't needed at runtime jdeps analysis shows aws-java-sdk-kms is only referenced by the S3 client-side encryption client, jackson-dataformat-cbor only by the SDK's CBOR protocol support, and jmespath-java by nothing in the packaged set. The module only exercises aws-java-sdk-s3 and aws-java-sdk-core, so exclude the rest from the runtime classpath and the packaged libs. * Remove checked-in compiled jar; releases are built by CI The lib folder held a stale pre-built module jar. Compiled builds with their runtime dependencies are now published as GitHub release assets by the release workflow, so point the README at the releases page instead. * Version from VERSION file; release workflow attaches jars to GitHub release Adopt the versioning model from wse-plugin-video-intelligence-event-recording: - Project version comes from a VERSION file (starting at 2.0.0) instead of git tags; drop the git-properties plugin and tag-derived versioning - generateReleaseInfo captures values at configuration time and generates a simple project/version ReleaseInfo class - onAppStart logs the version from ReleaseInfo instead of a hardcoded build number - Add ci.yml to build and test on pushes and PRs to main, uploading the built jars as a workflow artifact - release.yml now runs when a GitHub release is published: it verifies the release tag matches VERSION, builds, and uploads the jars as release assets (no Maven Central publishing) - gradle.properties gains the standard jvmargs/parallel/caching settings * Add 1.0.0 changelog entry for the versioning change Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
VikiBDev
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
S3-compatible services
s3UploadEndpointto a non-AWS endpoint now targets that endpoint directly instead of only being used to derive an AWS region; the signing region comes froms3UploadRegion, is derived froms3.<region>.<host>style endpoints, or defaults tous-east-1s3UploadEndpointis now read even whens3UploadRegionis sets3UploadPathStyleAccessproperty for services that require path-style bucket addressing (e.g. MinIO); defaults tofalses3UploadProfileands3UploadProfilePathproperties as provider-neutral aliases fors3UploadAwsProfileands3UploadAwsProfilePathBuild, CI, and releases (merged from #26)
build.gradle(modeled on wse-plugin-avmix / wse-plugin-video-intelligence-event-recording): compile against the full WSE lib folder, version from theVERSIONfile (1.0.0), generate aReleaseInfoclass, and log the real version inonAppStartinstead of a hardcoded build numbercopyDepsbundles only runtime jars that Wowza Streaming Engine doesn't already ship inlib.default; jdeps analysis showed onlyaws-java-sdk-s3andaws-java-sdk-coreare needed (kms/jmespath/cbor are excluded as unreachable from this module's code paths)ci.yml(build + test on pushes/PRs to main) and rewriterelease.yml: on a published GitHub release it verifies the tag matchesVERSION, builds against WSE jars extracted fromwowza/wowza-streaming-engine:latest-slim, and attaches the jars as release assetsRelease procedure
Bump
VERSION, merge, then publish a GitHub release whose tag matches theVERSIONcontents — CI builds and attacheswse-plugin-s3upload-<version>.jar,aws-java-sdk-s3-1.12.797.jar, andaws-java-sdk-core-1.12.797.jar.🤖 Generated with Claude Code