[ https://issues.apache.org/jira/browse/NIFI-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15648344#comment-15648344 ]
ASF subversion and git services commented on NIFI-2909: ------------------------------------------------------- Commit d1d053725b72d91fbfca1a2e86691e9c9a1a3f2f in nifi's branch refs/heads/master from [~bbende] [ https://git-wip-us.apache.org/repos/asf?p=nifi.git;h=d1d0537 ] NIFI-2909 Adding per-instance class loading capability through @RequiresInstanceClassLoading annotation NIFI-1712 Applying per-instance class loading to HBaseClientService to allow specifying Phoenix Client JAR -Refactoring the ClassLoading so that every processor, controller service, and reporting task gets an InstanceClassLoader with a parent of the NAR ClassLoader, and only components with @RequiresInstanceClassLoading will make a copy of the NAR ClassLoader resources, and addressing some review feedback This closes #1156 > Provide a framework mechanism for loading additional classpath resources > ------------------------------------------------------------------------ > > Key: NIFI-2909 > URL: https://issues.apache.org/jira/browse/NIFI-2909 > Project: Apache NiFi > Issue Type: Improvement > Reporter: Bryan Bende > Assignee: Bryan Bende > Fix For: 1.1.0 > > > We currently have several components with a property for specifying > additional classpath resources (DBCP connection pool, scripting processors, > JMS). Each of these components is responsible for handling this in its own > way. > The framework should provide a more integrated solution to make it easier for > component developers to deal with this scenario. Some requirements that need > to be met by this solution: > - Multiple instances of the same component with different resources added to > the classpath and not interfering with each other (i.e. two DBCP connection > pools using different drivers) > - Ability to modify the actual ClassLoader of the component to deal with > frameworks that use Class.forName() without passing in a ClassLoader, meaning > if a processor loads class A and class A calls Class.forName(classBName), > then class B needs to be available in the ClassLoader that loaded the > processor's class which in turn loaded class A > - A component developer should be able to indicate that a given > PropertyDescriptor represents a classpath resource and the framework should > take care of the ClassLoader manipulation -- This message was sent by Atlassian JIRA (v6.3.4#6332)