You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2019/12/07 22:19:36 UTC

[wicket] branch master updated: WICKET-6714 resources from META-INF/resources

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

svenmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/master by this push:
     new d8e4fcb  WICKET-6714 resources from META-INF/resources
d8e4fcb is described below

commit d8e4fcb228452882ecdc917d44967a0bda9e4fcf
Author: Sven Meier <sv...@apache.org>
AuthorDate: Sat Dec 7 23:07:41 2019 +0100

    WICKET-6714 resources from META-INF/resources
    
    even without web root
---
 .../protocol/http/mock/MockServletContext.java     | 83 ++++++----------------
 .../MetaInfStaticResourceReferenceTest.java        |  2 +-
 2 files changed, 23 insertions(+), 62 deletions(-)

diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
index 8904e96..6a0f8e6 100755
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/mock/MockServletContext.java
@@ -17,8 +17,6 @@
 package org.apache.wicket.protocol.http.mock;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.InvocationHandler;
@@ -407,25 +405,15 @@ public class MockServletContext implements ServletContext
 	@Override
 	public String getRealPath(String name)
 	{
-		if (webappRoot == null)
-		{
-			return null;
-		}
-
-		if (name.startsWith("/"))
-		{
-			name = name.substring(1);
-		}
-
-		File f = new File(webappRoot, name);
-		if (!f.exists())
-		{
-			return null;
-		}
-		else
-		{
-			return f.getPath();
+		try {
+			URL url = getResource(name);
+			if (url != null) {
+				return url.getFile();
+			}
+		} catch (IOException e) {
+			log.error(e.getMessage(), e);
 		}
+		return null;
 	}
 
 	/**
@@ -468,30 +456,21 @@ public class MockServletContext implements ServletContext
 	@Override
 	public URL getResource(String name) throws MalformedURLException
 	{
-		if (webappRoot == null)
-		{
-			return null;
-		}
-
-		URL result = null;
-
 		if (name.startsWith("/"))
 		{
 			name = name.substring(1);
 		}
 
-		File f = new File(webappRoot, name);
-		if (f.exists())
+		if (webappRoot != null)
 		{
-			result = f.toURI().toURL();
-		}
-
-		if (result == null)
-		{
-			result = getClass().getClassLoader().getResource("META-INF/resources/" + name);
+			File f = new File(webappRoot, name);
+			if (f.exists())
+			{
+				return f.toURI().toURL();
+			}
 		}
 
-		return result;
+		return getClass().getClassLoader().getResource("META-INF/resources/" + name);
 	}
 
 	/**
@@ -504,33 +483,15 @@ public class MockServletContext implements ServletContext
 	@Override
 	public InputStream getResourceAsStream(String name)
 	{
-		if (webappRoot == null)
-		{
-			return null;
-		}
-
-		if (name.startsWith("/"))
-		{
-			name = name.substring(1);
-		}
-
-		File f = new File(webappRoot, name);
-		if (!f.exists())
-		{
-			return null;
-		}
-		else
-		{
-			try
-			{
-				return new FileInputStream(f);
-			}
-			catch (FileNotFoundException e)
-			{
-				log.error(e.getMessage(), e);
-				return null;
+		try {
+			URL url = getResource(name);
+			if (url != null) {
+				return url.openStream();
 			}
+		} catch (IOException e) {
+			log.error(e.getMessage(), e);
 		}
+		return null;
 	}
 
 	/**
diff --git a/wicket-core/src/test/java/org/apache/wicket/request/resource/MetaInfStaticResourceReferenceTest.java b/wicket-core/src/test/java/org/apache/wicket/request/resource/MetaInfStaticResourceReferenceTest.java
index dd899ca..135e42f 100644
--- a/wicket-core/src/test/java/org/apache/wicket/request/resource/MetaInfStaticResourceReferenceTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/request/resource/MetaInfStaticResourceReferenceTest.java
@@ -52,7 +52,7 @@ class MetaInfStaticResourceReferenceTest
 	void testWithServlet30() throws MalformedURLException
 	{
 		MockApplication application = new MockApplication();
-		MockServletContext servletContext = new MockServletContext(application, "/");
+		MockServletContext servletContext = new MockServletContext(application, null);
 		BaseWicketTester tester = new BaseWicketTester(application, servletContext);
 
 		MetaInfStaticResourceReference metaRes = new MetaInfStaticResourceReference(getClass(),