Github user bbende commented on the issue:

    https://github.com/apache/nifi/pull/1156
  
    @olegz thanks for reviewing, I posted a couple of replies to the inline 
comments.
    
    I also wanted to mention that after submitting this PR, I realized that a 
slight modification to the approach might open this feature up to a wider 
variety of use cases...
    
    In the current PR, when the component is annotated with 
@RequiresInstanceClassLoading it creates an InstanceClassLoader which copies 
all of the URL resources from the NAR ClassLoader. This was necessary to solve 
the HBase + Phoenix problem, but it many other cases it may be acceptable to 
just make a new InstanceClassLoader with a parent of the NAR ClassLoader.
    
    So I started working on a change where every single processor, cs, 
reporting task will get an InstanceClassLoader and by default it will be empty 
and have a parent of the NAR ClassLoader. Only components with the 
@RequiresInstanceClassLoading will force a full copy of the resources. 
    
    This should lets the HBaseControllerService use 
@RequiresInstanceClassLoading, and other components can still have properties 
that modify the classpath without making full copies.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to