[
https://issues.apache.org/jira/browse/KAFKA-3487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16007425#comment-16007425
]
ASF GitHub Bot commented on KAFKA-3487:
---------------------------------------
GitHub user kkonstantine opened a pull request:
https://github.com/apache/kafka/pull/3028
KAFKA-3487: Support classloading isolation in Connect.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/kkonstantine/kafka
KAFKA-3487-Support-classloading-isolation-in-Connect
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/kafka/pull/3028.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #3028
----
commit 6e3e92cfadfa7c03090476a0f025b5a6b7989d5c
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-05T00:00:29Z
KAFKA-3487: Support classloading isolation in Connect.
* Add module.path in worker config.
commit 84967f43712dd55523ca33e855fa0252f9cdb677
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-09T23:10:08Z
Add isolation package.
* Add a delegating class loader
* Add per module class loaders
* Add module factories
commit 7e1169b081c451d0f4a3920e75e0bf1961ee84e8
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-12T00:24:08Z
Add config property only for standalone currently.
commit d8cd6330c6304267a5d7b07c8ef48aa201d95ac8
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-09T23:19:24Z
Add maven-artifact dependency for module versioning.
commit 50c8a1b79366ce04231b7c88b9abc36871afc143
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-09T23:21:15Z
Replace connector factory with new module factory.
commit df22a391e920b2f24ad795df929968cd0d5e2dd1
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-11T18:19:39Z
Consolidating Modules factory class.
commit ba3a78dbcf10a94a2080d7f7ef87585826c27ea8
Author: Konstantine Karantasis <[email protected]>
Date: 2017-05-12T00:20:41Z
Setting thread context class loader to a modules loader.
----
> 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.15#6346)