metron-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (METRON-777) Create a plugin system for Metron based on 'NAR'
Date Wed, 02 Aug 2017 17:22:00 GMT


ASF GitHub Bot commented on METRON-777:

Github user ottobackwards commented on the issue:
    1.  I don't think we want to, or have to track it as upstream.  But we do want to keep
track of bug fixes and improvements to areas where we have not deviated.  That is my current
    2. I certainly did look at [#468](  Here is
how we are related:
    - 777 uses the same VFS Classloader, although I have modified a new version of the classloader
to load a bundle as a compound filesystem.  That is to say, instead of VFSClassloader loading
a number of Jar uris, it loads a bundle, and then finds all the embedded dependency jars as
well.  This I believe is an improvement on the NAR system, since there is no longer a requirement
to unbundle the NAR into a working directory and all the overhead that has.
    - 777 uses the ClassIndex System.  I have replaced the NAR service loader dependency (
in the archetype ) with ClassIndex.  I have also made the loaders work with class index's
multiple ways for marking classes.  This is an improvement on the NAR system because:
    1. You do not have to manually maintain the service file in the jar metadata
    2. It is faster
    One of my goals is to have Extensions/Bundles+archetypes for Stellar libraries as well.
 I believe that 777 is done in a way that is comparable with that goal, and enables it.

> Create a plugin system for Metron based on 'NAR'
> ------------------------------------------------
>                 Key: METRON-777
>                 URL:
>             Project: Metron
>          Issue Type: New Feature
>            Reporter: Otto Fowler
>            Assignee: Otto Fowler
> The success of the Metron project will be greatly dependent on community participation,
and with that the ability to adapt and extend Metron without having to maintain a fork of
the project.
> As organizations and individuals look to extend the Metron system with custom parsers,
enrichments, and stellar functions that may be proprietary in nature, the ability to develop
and deploy these extensions outside the Metron code base is critically important.
> To that end, and after community discussion and proposal we create or formalize the 'plugin'
development story in Metron.  
> The proposal is to adapt the Apache Nifi NAR system for use in Metron.  This will provide
the system with:
> * archetype(s) for developer projects and independent development
> * defined packaging and metadata for 'plugin' products
> * loading and instantiation with classloader isolation capabilities
> * removing the necessity for shading plugin jars
> These capabilities will also enable other features, such as plugin lifecycle, plugin
configuration+redeployment, and other things.
> The plugin archetypes and their installation will be a followon

This message was sent by Atlassian JIRA

View raw message