mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
52 lines
2 KiB
Text
52 lines
2 KiB
Text
To develop a new Java {plugintype} for Logstash, you write a new Java class that
|
|
conforms to the Logstash Java {pluginclass} API, package it, and install it with the
|
|
logstash-plugin utility. We'll go through each of those steps.
|
|
|
|
[float]
|
|
=== Set up your environment
|
|
|
|
[float]
|
|
==== Copy the example repo
|
|
|
|
Start by copying the {pluginrepo}. The plugin API is currently part of the
|
|
Logstash codebase so you must have a local copy of that available. You can
|
|
obtain a copy of the Logstash codebase with the following `git` command:
|
|
|
|
[source,shell]
|
|
-----
|
|
git clone --branch <branch_name> --single-branch https://github.com/elastic/logstash.git <target_folder>
|
|
-----
|
|
|
|
The `branch_name` should correspond to the version of Logstash containing the
|
|
preferred revision of the Java plugin API.
|
|
|
|
NOTE: The beta version of the Java plugin API is available in the `6.7`
|
|
branch of the Logstash codebase.
|
|
|
|
Specify the `target_folder` for your local copy of the Logstash codebase. If you
|
|
do not specify `target_folder`, it defaults to a new folder called `logstash`
|
|
under your current folder.
|
|
|
|
[float]
|
|
==== Generate the .jar file
|
|
|
|
After you have obtained a copy of the appropriate revision of the Logstash
|
|
codebase, you need to compile it to generate the .jar file containing the Java
|
|
plugin API. From the root directory of your Logstash codebase ($LS_HOME), you
|
|
can compile it with `./gradlew assemble` (or `gradlew.bat assemble` if you're
|
|
running on Windows). This should produce the
|
|
`$LS_HOME/logstash-core/build/libs/logstash-core-x.y.z.jar` where `x`, `y`, and
|
|
`z` refer to the version of Logstash.
|
|
|
|
After you have successfully compiled Logstash, you need to tell your Java plugin
|
|
where to find the `logstash-core-x.y.z.jar` file. Create a new file named
|
|
`gradle.properties` in the root folder of your plugin project. That file should
|
|
have a single line:
|
|
|
|
[source,txt]
|
|
-----
|
|
LOGSTASH_CORE_PATH=<target_folder>/logstash-core
|
|
-----
|
|
|
|
where `target_folder` is the root folder of your local copy of the Logstash codebase.
|
|
|