Skip to content

WowzaMediaSystems/wse-plugin-builder

Repository files navigation

Wowza Streaming Engine Plugin Builder

A Gradle and Docker-based development environment for building and testing custom Java modules that extend Wowza Streaming Engine™.

Overview

The Wowza Streaming Engine Plugin Builder provides a modern, containerized development environment for building and testing custom Java modules that extend the functionality of the Wowza Streaming Engine™ media server software.

This project includes a streamlined Gradle-based build system and a Docker Compose setup that runs Wowza Streaming Engine in a local container. The approach allows developers to build, package, and deploy custom Wowza Streaming Engine extensions quickly and consistently across platforms.

Features

  • Gradle build system — Compile, package, and manage dependencies for your Wowza Streaming Engine Java modules with ease.
  • Docker Compose deployment — Spin up a fully configured Wowza Streaming Engine container for local testing and iteration.
  • Modular development — Extend Wowza Streaming Engine functionality using custom Java classes and interfaces.
  • Cross-platform setup — Works seamlessly on Windows, Linux, and macOS.

Usage

An example module, MyFirstPlugin, is included in this repository for testing and demonstration purposes. The example plugin includes:

  • Server Listener: com.wowza.wms.plugin.myFirstPlugin.MyFirstServerListener — Starts automatically when the Wowza Streaming Engine server launches.
  • Application Module: com.wowza.wms.plugin.myFirstPlugin.MyFirstModule — Initializes when an application starts and the first stream connects to it.

Both components simply log a startup message to the console:

**********************************************
* Welcome to my first Server Listener v1.0.0 *
**********************************************
********************************************************
* Welcome to my first Application Module Plugin v1.0.0 *
********************************************************

You can modify these sample modules by adding any custom logic inside the example methods we provide. For more, see our Custom Java module examples.

Prerequisites

Before you begin, make sure you have:

  • A Wowza Streaming Engine license key.
  • Install and run Docker Desktop, which includes the Docker Engine and the Docker Compose plugin.

1. Installation

Clone the repository and change to that directory:

git clone git@github.com:WowzaMediaSystems/wse-plugin-builder.git
cd wse-plugin-builder

Update the WSE_LICENSE_KEY variable in the docker-compose.yaml file with your Wowza Streaming Engine license key:

export WSE_LICENSE_KEY=[your-license-key]

2. Build the Docker image

Make sure Docker Desktop and Docker Engine are running. Then, initialize the project and build the Docker container. Run the following from the root of your project:

./build_builder.sh

This builds a new Docker image named wse-builder:local using the Dockerfile in this repository. The image provides a build environment for compiling custom Wowza Streaming Engine modules.

3. Compile the module to a .jar

Next, compile the module so it can be used as a plugin with Wowza Streaming Engine. Run the following from the root of your project:

./build.sh ./code/wse-plugin-my-first-plugin

This process generates the following plugin .jar file, which can be deployed and run with Wowza Streaming Engine:

code/wse-plugin-my-first-plugin/build/libs/wse-plugin-my-first-plugin-1.0.0.jar

4. Test your module

To test the newly created module, run the following from the root of your project:

docker compose up

This starts the Wowza Streaming Engine trial Docker image and maps the lib.addon directory to the newly created .jar file. With a successful setup, you can see the following in the combined Docker service logs in your terminal:

wse-1      | INFO server comment - Server.startShutdownHook: Start server shutdown hook
wse-1      | INFO server comment - **********************************************
wse-1      | INFO server comment - * Welcome to my first Server Listener v1.0.0 *
wse-1      | INFO server comment - **********************************************
wse-1      | INFO server comment - StatsManager:startManager() Enabled=true
wse-1      | INFO server comment - Wowza Streaming Engine is started!

To learn more about our Docker Compose workflows, see:

More resources

Wowza Media Systems™ provides developers with a platform to create streaming applications and solutions. See Wowza Developer Tools to learn more about our APIs and SDK.

You can also view our official Developer API and SDK documentation and these resources:

Contact

For questions or comments, contact Wowza Media Systems, LLC.

License

This code is distributed under the Wowza Public License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •