[ https://issues.apache.org/jira/browse/KAFKA-3487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15338920#comment-15338920 ]
Randall Hauch commented on KAFKA-3487: -------------------------------------- [~ewencp] wrote: {quote} There's lots of other stuff you can do in this area too, e.g. URLClassLaoders that can just pull the jars from the network, or even more awesome would be a version that works from Central/Maven repos and can just auto-resolve all transitive dependencies in some variant of a URLClassLoader and allow all the connectors to be loaded completely dynamically (no more restarts to install new connectors!) {quote} Autoresolving classloaders work fine in many situations, but not all. Some environments do not have access to a Maven class loader, and it's not always repeatable/reliable. Yet not having to restart to install new connectors is still doable even with file-based JARs. > Support per-connector/per-task classloaders in Connect > ------------------------------------------------------ > > Key: KAFKA-3487 > URL: https://issues.apache.org/jira/browse/KAFKA-3487 > Project: Kafka > Issue Type: New Feature > Components: KafkaConnect > Affects Versions: 0.10.0.0 > Reporter: Ewen Cheslack-Postava > Assignee: Liquan Pei > Priority: Critical > Labels: needs-kip > > Currently we just use the default ClassLoader in Connect. However, this > limits how we can compatibly load conflicting connector plugins. Ideally we > would use a separate class loader per connector/task that is instantiated to > avoid potential conflicts. > Note that this also opens up options for other ways to provide jars to > instantiate connectors. For example, Spark uses this to dynamically publish > classes defined in the REPL and load them via URL: > https://ardoris.wordpress.com/2014/03/30/how-spark-does-class-loading/ But > much simpler examples (include URL in the connector class instead of just > class name) are also possible and could be a nice way to more support dynamic > sets of connectors, multiple versions of the same connector, etc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)