You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2022/03/06 20:29:48 UTC
[olingo-odata2] 01/02: [OLINGO-1398] Improved jar file handling
This is an automated email from the ASF dual-hosted git repository.
mibo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata2.git
commit 24ce21927e635259479bac1cfd5e806a8eee832d
Author: mibo <mi...@apache.org>
AuthorDate: Sun Mar 6 21:26:53 2022 +0100
[OLINGO-1398] Improved jar file handling
---
.../odata2/annotation/processor/core/util/ClassHelper.java | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/util/ClassHelper.java b/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/util/ClassHelper.java
index 6a0dc3e..3162dad 100644
--- a/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/util/ClassHelper.java
+++ b/odata2-annotation-processor/annotation-processor-core/src/main/java/org/apache/olingo/odata2/annotation/processor/core/util/ClassHelper.java
@@ -24,6 +24,7 @@ import java.io.FilenameFilter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
+import java.net.JarURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -146,17 +147,18 @@ public class ClassHelper {
private static Collection<String> getClassFqnFromJar(final URI uri, final String packageToScan) {
final String jarFilePath;
- String filepath = uri.getSchemeSpecificPart().substring(5);
+ String filepath = uri.toString();
String[] split = filepath.split(JAR_RESOURCE_SEPARATOR);
- if (split.length == 2) {
- jarFilePath = split[0];
+ if (split.length > 1) {
+ jarFilePath = filepath.substring(0, filepath.lastIndexOf("!")+2);
} else {
throw new IllegalArgumentException("Illegal jar file path '" + filepath + "'.");
}
-
JarFile jarFile = null;
try {
- jarFile = new JarFile(jarFilePath);
+ URL url = new URL(jarFilePath);
+ JarURLConnection connection = (JarURLConnection) url.openConnection();
+ jarFile = connection.getJarFile();
List<String> classFileNames = new ArrayList<String>();
Enumeration<JarEntry> entries = jarFile.entries();