You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@metron.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/09/27 11:13:00 UTC

[jira] [Commented] (METRON-1212) Bundles and Maven Plugin

    [ https://issues.apache.org/jira/browse/METRON-1212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16182387#comment-16182387 ] 

ASF GitHub Bot commented on METRON-1212:
----------------------------------------

GitHub user ottobackwards opened a pull request:

    https://github.com/apache/metron/pull/774

    METRON-1212 The bundle system and maven plugin 

    This PR contains the Bundle system and Maven Plugin.
    
    The bundle system and the plugin are adapted from the Apache Nifi project.  
    
    ## bundles-maven-plugin
    The bundles-maven-plugin is an adapted version of the jar dependency plugin who's function is to bundle a jar of jars based on the dependencies for a project.  It also creates metadata attributes.
    A project's jar, and it's non-provided dependency jars are place in a /lib entry in the bundle, with the bundle itself being in jar format.
    
    ## bundles-lib 
    The bundles-lib contains the functionality required to:
    - discover bundles
    - inspect bundles for exposed extension types
    - load the bundles
    - create special class loaders for bundles
    - deliver instances of extension types for use
    
    NAR exposed the bundles through many classes.  I have created the BundleSystem interface to expose a more usable, simplified api for our use cases.
    
    ### From the original PR for METRON-777:
    Metron Bundle Plugin
    - adaptation of the nifi plugin
    - more configurable wrt file extension/dependency and metadata naming
    bundle-lib
    - adaptation of nifi-nar-utils to be used outside of the nifi project
    - rudimentary extensibility to allow configuration and injection of service types and other things that were hard coded to nifi
    - refactored from File based to VFS based
    - rebranding to Bundle from Nar ( although the lib and the plugin allow that to be configured now )
    - added capability to the properties class to write to stream, adapted to uri from paths
    - added integration tests for hdfs
    - changed to be ClassIndex based instead of ServiceLoader. Service loader is slower, and Casey's ClassIndex work is great. This also removes the NAR's required manual maintenance of the service file.
    - refactored to use VFS to load the bundle/nar into the classloader AND to use VFS to load the dependency jars -> VFS as a composite filesystem. Thus going from NAR's 'working directory', exploded NARS to just loading the bundle/nar.
    
    ## Previous Review
    Please see [@mattf_apache's review](https://github.com/apache/metron/pull/530/files/c5f8c34e4de8e6d456b97edd6f8a0d33b4819d69)
    
    ## changes from that review
    In preparing this PR I have:
    - made checkstyle fixes
    - fixed several types
    - added a requested set of tests loading and executing simple interface/implementation from bundle beyond what is already in the bundle-lib tests
    
    ## Testing
    This review is code review and test code review and running only
    
    ### For all changes:
    - [x] Is there a JIRA ticket associated with this PR? If not one needs to be created at [Metron Jira](https://issues.apache.org/jira/browse/METRON/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel). 
    - [x] Does your PR title start with METRON-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
    - [x] Has your PR been rebased against the latest commit within the target branch (typically master)?
    - [x] Have you ensured that the full suite of tests and checks have been executed in the root metron \
    - [x] Have you written or updated unit tests and or integration tests to verify your changes?
    ### For documentation related changes:
    - [x] Have you ensured that format looks appropriate for the output in which it is rendered by building and verifying the site-book? 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ottobackwards/metron fifth_bundles

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/metron/pull/774.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #774
    
----
commit 8aa3372c506b065849a4d868d1fd920733d0396d
Author: Otto Fowler <ot...@gmail.com>
Date:   2017-09-27T10:29:42Z

    The bundle=lib and maven plugin for bundles.
    as compared to the feature branch the differences are:
    - Added some modules to test loading a bundle, and executing a function
    - checkstyle changes
    - some minor typo fixes

----


> Bundles and Maven Plugin
> ------------------------
>
>                 Key: METRON-1212
>                 URL: https://issues.apache.org/jira/browse/METRON-1212
>             Project: Metron
>          Issue Type: Sub-task
>            Reporter: Otto Fowler
>            Assignee: Otto Fowler
>
> The first effort will be to land the bundle system and supporting maven plugin on master



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)