GitHub user ottobackwards reopened a pull request:

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

    METRON-1212 The bundle System and Maven Plugin (Feature Branch)

    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 
whose 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
    I have changed the InitContext operations to have explicit builders, and 
made it so that creating a context can be done separately from initialization.  
Two contexts can then be 'merged'.  This is to allow for the addition of new 
bundles after initialization.
    
    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
    
    *` cd bundles-maven-plugin && mvn -q install && cd .. ` must be run once to 
install the maven plugin
    * This review is code review and test code review and running only
    * [Test Project](https://github.com/ottobackwards/test-bundles-plugin) can 
be examined as a simple example of how to create bundles.
    * The README.md has getting started and quickstart sections with some 
overview of creating by hand
    
    ### 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/865.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 #865
    
----
commit 207d367e360074ad53d6f7ece4e1f1febc5a64e1
Author: Otto Fowler <ottobackwards@...>
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

commit 63134bb7af555fe0896152e7f3a8ba5841a8c1e0
Author: Otto Fowler <ottobackwards@...>
Date:   2017-09-27T11:48:50Z

    update readme based on new build options around delay loading

commit 1971262db7f68e9501bf3de1c6b6a10032ace0fc
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-25T18:43:28Z

    fix versions

commit 4f618979038f4a0ab8685ca22de0d2857df71444
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-27T16:14:21Z

    expanded the readme with some getting started and quickstart information

commit 98f5e183e1bda7e589772e300094dfa21a436dd9
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-27T16:17:58Z

    further refinement

commit 773011f65067097cfe3d5750f7397c046621f7cd
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-27T19:59:44Z

    add some doc around this test project

commit 6a592267295ab2223fd9a628d75f3afb6232fd6f
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-27T20:04:36Z

    clarify that the code is not built

commit ea802f2ed8822c35931f0a26955837f6c1ba9de9
Author: Otto Fowler <ottobackwards@...>
Date:   2017-10-27T20:07:34Z

    more fixes

commit 1d18bd2582a62fbbf9edc18ae73ec2e1d93e5f88
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-08T15:25:41Z

    add in the instructions for building metron with the plugin

commit 7c3296a8ab8d0f241d513e7935641368d7dce533
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-08T15:34:49Z

    plugin build note

commit 4c8363a58841c56512696bbe8b899cd76e899bc7
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-09T16:10:13Z

    spelling fix, and note on @IndexSubclasses

commit 5a46767cff88999760c82fc1f3fefc3be483e1da
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-09T16:26:14Z

    note on ClassIndex

commit cd1e574d611c1fe520fcfadfa70244edce4c6e2f
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-15T16:55:56Z

    Added a usage guide the describes how to create a bundle and use it
    Clean up the bundles-testing

commit 3c1545f1b24d1662bfd7f159ceb419c1c0f67192
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-15T16:59:31Z

    fix name

commit 567cdeaf4de00cb3ec32b1c5794d958f9f39d894
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-22T14:15:59Z

    refactored to metron-bundles directory

commit 2bbd3f7244ad77a76ca4984dde2c183b3af96fc5
Author: Otto Fowler <ottobackwards@...>
Date:   2017-11-22T14:52:47Z

    fix parent

commit e4d9ac279c4949cdbbbd6f76c1741f6bdaeb9211
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-12T20:00:32Z

    remove ./ pathing in tests

commit d13b13012fb8badbcb41003ec82c6de844a64624
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-12T20:15:22Z

    change tests to try to track down issue in travis

commit 37587689e9feadeb54465aa7319f114a4e11255b
Author: cstella <cestella@...>
Date:   2017-12-12T20:24:07Z

    METRON-1306: When index template install fails, we should fail the install 
closes apache/incubator-metron#834

commit 633ccf0a9a73b5ae408cb30fb3a804b301e7dbed
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-12T20:31:51Z

    trying to go to older trusty

commit 6ad350adb5b3b4bf040464da8fab4b0385444102
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-12T20:54:27Z

    revert travis version, do not put stuff into target

commit 4d9262dae01336b477ec7a1c92ad7c3bef0974b4
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-12T21:17:34Z

    try to not use target in these tests

commit 59fec256855ba21b9f4b4981979e340afde06312
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-13T11:53:13Z

    fixup copies

commit 6ca08b9f598b649d60c6b6468164a374b7f6f555
Author: MohanDV <mohan.dv@...>
Date:   2017-12-13T15:55:04Z

    METRON-1343 Swagger UI for User Controller needs request method (MohanDV 
via ottobackwards) closes apache/metron#862

commit d9ed1bad1f5b2e2471fbea11353f2947f7f52e13
Author: nickwallen <nick@...>
Date:   2017-12-14T15:59:27Z

    METRON-1349 Full Dev Builds Metron Twice (nickwallen) closes 
apache/metron#866

commit c4cee6af64eda4db4da3eff86abab7d4ae4ec56a
Author: mmiklavc <michael.miklavcic@...>
Date:   2017-12-14T20:29:49Z

    METRON-1345: Update EC2 README for custom Ansible (mmiklavc via mmiklavc) 
closes apache/metron#859

commit 7d16af7868e22acacd7cfa44dccc7a5fe053e08c
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-15T13:47:33Z

    Merge remote-tracking branch 'apache/master' into fifth_bundles

commit 558df79961ef9295784fe0cd246aac80e009387d
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-15T14:54:40Z

    format fixes based on review

commit ad3d46b681702d4cf76d1b68d322a1046bd65174
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-15T22:27:27Z

    fix typo per review

commit 306ef833067f8e4dc146ab3f5a98dd78590fb713
Author: Otto Fowler <ottobackwards@...>
Date:   2017-12-30T14:35:22Z

    add headers to markdown files

----


---

Reply via email to