This is an automated email from the ASF dual-hosted git repository.

alien11689 pushed a commit to branch 
ARIES-2166-fix-web-url-handler-in-eclipse-osgi-above-3-17
in repository https://gitbox.apache.org/repos/asf/aries.git

commit b1e2a65cc8d2ed82347ae39d3fbf7b65114a1fa3
Author: Dominik Przybysz <[email protected]>
AuthorDate: Sat Feb 1 21:22:13 2025 +0100

    ARIES-2166: Fix web url handler in org.eclipse.osgi > 3.17.0
---
 web/web-itests/pom.xml                                      |  2 +-
 .../org/apache/aries/web/url/WAR_URLServiceHandler.java     | 13 +++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/web/web-itests/pom.xml b/web/web-itests/pom.xml
index f664390ed..0682caf7d 100644
--- a/web/web-itests/pom.xml
+++ b/web/web-itests/pom.xml
@@ -51,7 +51,7 @@
         
<org.apache.aries.util.version>1.2.0-SNAPSHOT</org.apache.aries.util.version>
         
<org.apache.aries.web.urlhandler.version>1.0.1-SNAPSHOT</org.apache.aries.web.urlhandler.version>
         
<org.apache.felix.configadmin.version>1.9.26</org.apache.felix.configadmin.version>
-        <org.eclipse.osgi.version>3.17.0</org.eclipse.osgi.version>
+        <org.eclipse.osgi.version>3.22.0</org.eclipse.osgi.version>
         <tinybundles.version>2.1.1</tinybundles.version>
         <url.version>2.5.3</url.version>
     </properties>
diff --git 
a/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WAR_URLServiceHandler.java
 
b/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WAR_URLServiceHandler.java
index 05047da23..52c4e076c 100644
--- 
a/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WAR_URLServiceHandler.java
+++ 
b/web/web-urlhandler/src/main/java/org/apache/aries/web/url/WAR_URLServiceHandler.java
@@ -18,9 +18,12 @@
  */
 package org.apache.aries.web.url;
 
+import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.net.URLConnection;
+import java.nio.file.Files;
+import java.nio.file.StandardCopyOption;
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.StringTokenizer;
@@ -69,8 +72,14 @@ public class WAR_URLServiceHandler extends 
AbstractURLStreamHandlerService imple
         firstProperty = false;
       }
     }
-        
-    return new WARConnection(new URL(url.getPath()), properties);
+      WARConnection warConnection = new WARConnection(new URL(url.getPath()), 
properties);
+      // in new version of org.eclipse.osgi > 3.17.0 we cannot return war 
connection
+      // since when its protocol is file then generated input stream is ignored
+      // and framework reads file again
+      // 
https://github.com/eclipse-equinox/equinox/blob/e35221a86afd24ee21b7b9d02db298a90ace1bc0/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java#L1158-L1181
+      File webbundle = File.createTempFile("webbundle", ".wab");
+      Files.copy(warConnection.getInputStream(), webbundle.toPath(), 
StandardCopyOption.REPLACE_EXISTING);
+      return webbundle.getAbsoluteFile().toURI().toURL().openConnection();
   }
 
   @Override

Reply via email to