[ 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)