You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/04/22 14:06:45 UTC

[juneau] branch master updated: BasicRestInfoProvider tests

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

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


The following commit(s) were added to refs/heads/master by this push:
     new d364d9f  BasicRestInfoProvider tests
d364d9f is described below

commit d364d9fc0d7699aa430d8ad14b4a21346b9a8e90
Author: JamesBognar <ja...@apache.org>
AuthorDate: Sun Apr 22 10:06:31 2018 -0400

    BasicRestInfoProvider tests
---
 .../java/org/apache/juneau/utils/ClassUtilsTest.java    | 12 ++++++++++++
 .../java/org/apache/juneau/internal/ClassUtils.java     | 17 +++++++++++++++++
 .../org/apache/juneau/rest/BasicRestInfoProvider.java   |  7 +++++--
 .../apache/juneau/rest/BasicRestInfoProviderTest.java   |  5 +----
 4 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
index c0a59b7..ccad5f9 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
@@ -379,4 +379,16 @@ public class ClassUtilsTest {
 			c = 1;
 		}
 	}
+	
+	//====================================================================================================
+	// getSimpleName()
+	//====================================================================================================
+	@Test
+	public void getSimpleName() throws Exception {
+		assertEquals("ClassUtilsTest.G1", ClassUtils.getSimpleName(G1.class));
+		assertEquals("ClassUtilsTest.G2", ClassUtils.getSimpleName(G2.class));
+	}
+	
+	public class G1 {}
+	public static class G2 {}
 }
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
index d276fc9..7ebbe94 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
@@ -2042,4 +2042,21 @@ public final class ClassUtils {
 			return t.toString(); 
 		}
 	}
+	
+	/**
+	 * Returns the simple name of a class.
+	 * 
+	 * <p>
+	 * Similar to {@link Class#getSimpleName()}, but includes the simple name of an enclosing or declaring class.
+	 * 
+	 * @param c The class to get the simple name on.
+	 * @return The simple name of a class.
+	 */
+	public static String getSimpleName(Class<?> c) {
+		if (c.isLocalClass())
+			return getSimpleName(c.getEnclosingClass()) + '.' + c.getSimpleName();
+		if (c.isMemberClass())
+			return getSimpleName(c.getDeclaringClass()) + '.' + c.getSimpleName();
+		return c.getSimpleName();
+	}
 }
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
index 01cdac9..bdf6aea 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/BasicRestInfoProvider.java
@@ -169,6 +169,7 @@ public class BasicRestInfoProvider implements RestInfoProvider {
 
 		// Wasn't cached...need to create one.
 		
+		Object resource = context.getResource();
 		VarResolverSession vr = req.getVarResolverSession();
 		JsonParser jp = JsonParser.DEFAULT;
 		MessageBundle mb = context.getMessages();
@@ -176,12 +177,14 @@ public class BasicRestInfoProvider implements RestInfoProvider {
 		JsonSchemaSerializerSession js = req.getContext().getJsonSchemaSerializer().createSession();
 		
 		// Load swagger JSON from classpath.
-		ObjectMap omSwagger = context.getClasspathResource(ObjectMap.class, MediaType.JSON, getClass().getSimpleName() + ".json", locale);
+		ObjectMap omSwagger = context.getClasspathResource(ObjectMap.class, MediaType.JSON, ClassUtils.getSimpleName(resource.getClass()) + ".json", locale);
+		if (omSwagger == null)
+			omSwagger = context.getClasspathResource(ObjectMap.class, MediaType.JSON, resource.getClass().getSimpleName() + ".json", locale);
 		if (omSwagger == null)
 			omSwagger = new ObjectMap();
 		
 		// Combine it with @RestResource(swagger)
-		for (Map.Entry<Class<?>,RestResource> e : findAnnotationsMapParentFirst(RestResource.class, context.getResource().getClass()).entrySet()) {
+		for (Map.Entry<Class<?>,RestResource> e : findAnnotationsMapParentFirst(RestResource.class, resource.getClass()).entrySet()) {
 			RestResource rr = e.getValue();
 
 			if (! rr.title().isEmpty())
diff --git a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
index 75d42e5..626ae73 100644
--- a/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
+++ b/juneau-rest/juneau-rest-server/src/test/java/org/apache/juneau/rest/BasicRestInfoProviderTest.java
@@ -45,11 +45,8 @@ public class BasicRestInfoProviderTest {
 
 		@Override
 		public InputStream findResource(Class<?> baseClass, String name, Locale locale) throws IOException {
-			System.out.println("XXX - TestClasspathResourceFinder.findResource("+baseClass+", "+name+", " + locale + ")");
-			if (name.endsWith(".json")) {
-				System.out.println("XXX - InputStream1=" + BasicRestInfoProvider.class.getResourceAsStream("BasicRestinfoProviderTest_swagger.json"));
+			if (name.endsWith(".json")) 
 				return BasicRestInfoProvider.class.getResourceAsStream("BasicRestInfoProviderTest_swagger.json");
-			}
 			return super.findResource(baseClass, name, locale);
 		}
 	}

-- 
To stop receiving notification emails like this one, please contact
jamesbognar@apache.org.