This is an automated email from the ASF dual-hosted git repository. dimuthuupe pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/airavata-mft.git
commit a764ea4897147858c57868f8e37bffa751833df5 Author: DImuthuUpe <[email protected]> AuthorDate: Fri Sep 1 14:13:16 2023 +0530 Loading resources as stream in TransportClassLoader --- .../mft/agent/transport/TransportClassLoader.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/agent/service/src/main/java/org/apache/airavata/mft/agent/transport/TransportClassLoader.java b/agent/service/src/main/java/org/apache/airavata/mft/agent/transport/TransportClassLoader.java index bcc2e94..2f3613f 100644 --- a/agent/service/src/main/java/org/apache/airavata/mft/agent/transport/TransportClassLoader.java +++ b/agent/service/src/main/java/org/apache/airavata/mft/agent/transport/TransportClassLoader.java @@ -23,6 +23,7 @@ import org.slf4j.LoggerFactory; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.net.URLClassLoader; import java.nio.file.Files; @@ -38,7 +39,7 @@ public class TransportClassLoader extends URLClassLoader { private final ClassLoader systemClassLoader; - private final Map<String, byte[]> classes; + private final Map<String, byte[]> content; public Map<String, byte[]> loadClassesFromFile(final Path path) throws IOException { try { @@ -65,6 +66,8 @@ public class TransportClassLoader extends URLClassLoader { result.putAll(unzipRecursively(os)); } else if (entry.getName().toLowerCase().endsWith(".class")) { result.put(entry.getName().replaceAll("/", ".").substring(0, entry.getName().length() - 6), os.toByteArray()); + } else { + result.put(entry.getName(), os.toByteArray()); } } } @@ -76,12 +79,12 @@ public class TransportClassLoader extends URLClassLoader { public TransportClassLoader(URL[] urls, ClassLoader parent, Path connectorPath) throws IOException { super(urls, parent); systemClassLoader = getSystemClassLoader(); - classes = loadClassesFromFile(connectorPath); + content = loadClassesFromFile(connectorPath); } @Override public final Class<?> findClass(String name) throws ClassNotFoundException { - final byte[] bytes = classes.get(name); + final byte[] bytes = content.get(name); if(bytes != null) { logger.debug("Found class {}", name); return defineClass(name, bytes, 0, bytes.length); @@ -120,4 +123,13 @@ public class TransportClassLoader extends URLClassLoader { } return loadedClass; } + + @Override + public InputStream getResourceAsStream(String name) { + if (content.containsKey(name)) { + return new ByteArrayInputStream(content.get(name)); + } else { + return super.getResourceAsStream(name); + } + } }
