cameronlee314 opened a new pull request #1337: SAMZA-2498: [Job coordinator 
isolation] Classloader isolation for SamzaApplication.describe execution in job 
coordinator
URL: https://github.com/apache/samza/pull/1337
 
 
   Feature: 
https://cwiki.apache.org/confluence/display/SAMZA/SEP-24%3A+Cluster-based+Job+Coordinator+Dependency+Isolation#SEP-24:Cluster-basedJobCoordinatorDependencyIsolation-HandlingSamzaApplication.describe
   
   Changes:
   1. Add a method 
`IsolatingClassLoaderFactory.buildSamzaApplicationClassLoader` to construct a 
classloader for loading the `SamzaApplication` implementation for an app.
   2. If isolation is enabled, then call `buildSamzaApplicationClassLoader` to 
load the `SamzaApplication` implementation in the job coordinator.
   
   Tests:
   Deployed `wikipedia-feed` application (uses low-level API, has custom input 
descriptor, uses Kafka output descriptor) and `wikipedia-parser` application 
(uses low-level API, Kafka descriptors) in split deployment mode with some 
debug logs, and verified the following:
   1. `TaskApplicationDescriptorImpl` and `KafkaSystemDescriptor` came from the 
framework infrastructure classloader.
   2. `WikipediaSystemDescriptor` (custom descriptor) came from the application 
classloader.
   3. `WikipediaFeedTaskApplication` (impl of `SamzaApplication`) came from the 
newly built application describe classloader.
   4. Lambda which was used for the `TaskFactory` in 
`WikipediaFeedTaskApplication` came from the newly built application describe 
classloader, and it implemented the `StreamTaskFactory` interface which was 
loaded by the framework API classloader.
   5. Verified expected system-stream metadata from custom system 
(`WikipediaSystemFactory`)
   Deployed `wikipedia-parser` application (uses low-level API, Kafka 
descriptors) and verified the classloaders using debug logs.
   
   API/usage changes: None

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to