SAMZA-2498: [Job coordinator isolation] Classloader isolation for SamzaApplication.describe execution in job coordinator #1337
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Feature: https://cwiki.apache.org/confluence/display/SAMZA/SEP-24%3A+Cluster-based+Job+Coordinator+Dependency+Isolation#SEP-24:Cluster-basedJobCoordinatorDependencyIsolation-HandlingSamzaApplication.describe
Changes:
IsolatingClassLoaderFactory.buildSamzaApplicationClassLoader
to construct a classloader for loading theSamzaApplication
implementation for an app.buildSamzaApplicationClassLoader
to load theSamzaApplication
implementation in the job coordinator.Tests:
Deployed
wikipedia-feed
application (uses low-level API, has custom input descriptor, uses Kafka output descriptor) andwikipedia-parser
application (uses low-level API, Kafka descriptors) in split deployment mode with some debug logs, and verified the following:TaskApplicationDescriptorImpl
andKafkaSystemDescriptor
came from the framework infrastructure classloader.WikipediaSystemDescriptor
(custom descriptor) came from the application classloader.WikipediaFeedTaskApplication
(impl ofSamzaApplication
) came from the newly built application describe classloader.TaskFactory
inWikipediaFeedTaskApplication
came from the newly built application describe classloader, and it implemented theStreamTaskFactory
interface which was loaded by the framework API classloader.WikipediaSystemFactory
)Deployed
wikipedia-parser
application (uses low-level API, Kafka descriptors) and verified the classloaders using debug logs.API/usage changes: None