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

Chris Egerton commented on KAFKA-6417:
--------------------------------------

[~cotedm] after discussing this with [~kkonstantine] we think a reasonable 
solution might be to adapt the changes in plugin structure you suggested, but 
only issue a warning if any top-level JARs are found (possibly something like 
"there are JAR files at the top level of a directory on the plugin path; these 
will not be used either as plugins or as their dependencies"). He suggested 
only issuing a warning instead of failing to start Kafka Connect since a user 
might specify something like {{/usr/share/java}} for a directory on their 
plugin path, in which case it'd be pretty annoying to then have the Connect 
framework say "I'm not starting up until you clear all top-level JARs out of 
this directory".

We'd have to be careful to avoid the scenario described above, where people 
migrate uber JARs into a shared directory, but at this point I'm not sure 
there's anything else we can do besides updating docs (which should probably 
also be done).

> plugin.path pointing at a plugin directory causes ClassNotFoundException
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-6417
>                 URL: https://issues.apache.org/jira/browse/KAFKA-6417
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 1.0.0
>            Reporter: Dustin Cote
>            Priority: Major
>
> When using the {{plugin.path}} configuration for the Connect workers, the 
> user is expected to specify a list containing the following per the docs:
> {quote}
> The list should consist of top level directories that include any combination 
> of: a) directories immediately containing jars with plugins and their 
> dependencies b) uber-jars with plugins and their dependencies c) directories 
> immediately containing the package directory structure of classes of plugins 
> and their dependencies 
> {quote}
> This means we would expect {{plugin.path=/usr/share/plugins}} for a structure 
> like {{/usr/share/plugins/myplugin1}},{{/usr/share/plugins/myplugin2}}, etc. 
> However if you specify {{plugin.path=/usr/share/plugins/myplugin1}} the 
> resulting behavior is that dependencies for {{myplugin1}} are not properly 
> loaded. This causes a {{ClassNotFoundException}} that is not intuitive to 
> debug. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to