guoweiM commented on a change in pull request #10076: [FLINK-14465][runtime] 
Let `StandaloneJobClusterEntrypoint` use user code class loader
URL: https://github.com/apache/flink/pull/10076#discussion_r342914775
 
 

 ##########
 File path: 
flink-container/src/main/java/org/apache/flink/container/entrypoint/ClassPathJobGraphRetriever.java
 ##########
 @@ -133,9 +138,18 @@ private String getJobClassNameOrScanClassPath() throws 
FlinkException {
        }
 
        private String scanClassPathForJobJar() throws IOException {
-               LOG.info("Scanning class path for job JAR");
-               JarFileWithEntryClass jobJar = 
JarManifestParser.findOnlyEntryClass(jarsOnClassPath.get());
-
+               final JarFileWithEntryClass jobJar;
+               if (getUserClassPaths().isEmpty()) {
+                       LOG.info("Scanning system class path for job JAR");
+                       jobJar = 
JarManifestParser.findOnlyEntryClass(jarsOnClassPath.get());
+               } else {
+                       LOG.info("Scanning user class path for job JAR");
+                       final List<File> userJars = getUserClassPaths()
+                               .stream()
+                               .map(url -> new File(url.getFile()))
+                               .collect(Collectors.toList());
+                       jobJar = JarManifestParser.findOnlyEntryClass(userJars);
+               }
 
 Review comment:
   > Alternatively, I would remove support for looking for job jars in the 
system classpath and rename the retriever to something like 
UsrLibJobGraphRetriever.
   
   It's an option. There might be some of the situation that the user himself 
builds the image.
   So I think we might introduce two classes `UsrLibJobGraphRetriever` and 
`SysLibJobGraphRetriever`.  One is to retrieve the `jobgraph` from `usrlib`. 
The other is to retrieve the `jobgraph` from `lib`.
   
   We could introduce a ClassPathJobGraphRetrieverFactory to create the 
JobGraphRetriever according to whether the `usrlib` exsits or not.
   
   What do you think?

----------------------------------------------------------------
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:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to