First step towards enabling external plugins#1271
Conversation
|
In a follow-up, we may want to include some of the |
…mentation so that we don't have to do a breaking change in the SDK. External plugins are always indy-dispatched without an opt-out.
|
@elastic/apm-agent-java any changes you want to do in the One thing we might want to consider, although being a very minor thing, is to remove the I have also changed the method name |
SylvainJuge
left a comment
There was a problem hiding this comment.
First pass on the review, mostly minor comments and questions.
What does this PR do?
Implements #937 (comment)
Makes it possible to load external plugins in an isolated class loader. The plugins depend on the
apm-agent-plugin-sdkand theapm-agent-apiartifacts to create a jar that can be place it into theplugins_dir. An example for such a plugin is inintegration-tests/external-plugin-test.As some parts are still missing, this is not mentioned in the changelog yet and the corresponding configuration is marked internal (thus not included in the generated docs).
apm-agent-plugin-sdk: used both by internal and external/community pluginsapm-agent-tracer-implmodule fromapm-agent-corefor now. It was more tricky than expected and not needed for external plugins.Missing bits before we can open this to the public:
ElasticApmPlugin#indyPlugin, making indy plugins the only optionelastic-apm-agentin their tests to activateapm-agent-api