You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2020/03/31 17:41:15 UTC
[jspwiki] 03/14: added utility method to check if a class is
present in classpath
This is an automated email from the ASF dual-hosted git repository.
juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 7765bb242593344a310a92d0c03c3298e928d5e5
Author: juanpablo <ju...@apache.org>
AuthorDate: Tue Mar 31 19:15:12 2020 +0200
added utility method to check if a class is present in classpath
---
.../main/java/org/apache/wiki/util/ClassUtil.java | 15 ++++++++
.../java/org/apache/wiki/util/ClassUtilTest.java | 45 +++++++++-------------
2 files changed, 34 insertions(+), 26 deletions(-)
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
index 8fe90e2..8da9f83 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/ClassUtil.java
@@ -349,6 +349,21 @@ public final class ClassUtil {
return false;
}
+ /**
+ * Checks if a given class exists in classpath.
+ *
+ * @param className the class to check for existence.
+ * @return {@code true} if it exists, {@code false} otherwise.
+ */
+ public static boolean exists( final String className ) {
+ try {
+ Class.forName( className, false, ClassUtil.class.getClassLoader() );
+ return true;
+ } catch( final ClassNotFoundException e ) {
+ return false;
+ }
+ }
+
public static Map< String, String > getExtraClassMappings() {
return c_classMappingsExtra;
}
diff --git a/jspwiki-util/src/test/java/org/apache/wiki/util/ClassUtilTest.java b/jspwiki-util/src/test/java/org/apache/wiki/util/ClassUtilTest.java
index 9415647..6104b43 100644
--- a/jspwiki-util/src/test/java/org/apache/wiki/util/ClassUtilTest.java
+++ b/jspwiki-util/src/test/java/org/apache/wiki/util/ClassUtilTest.java
@@ -19,11 +19,11 @@
package org.apache.wiki.util;
-import java.util.List;
-
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
+import java.util.List;
+
public class ClassUtilTest
{
@@ -32,33 +32,30 @@ public class ClassUtilTest
* tests various kinds of searches on classpath items
*/
@Test
- public void testClasspathSearch() throws Exception
- {
- List< String > jarSearch = ClassUtil.classpathEntriesUnder( "META-INF" );
+ public void testClasspathSearch() {
+ final List< String > jarSearch = ClassUtil.classpathEntriesUnder( "META-INF" );
Assertions.assertNotNull( jarSearch );
Assertions.assertTrue( jarSearch.size() > 0 );
- List< String > fileSearch = ClassUtil.classpathEntriesUnder( "templates" );
+ final List< String > fileSearch = ClassUtil.classpathEntriesUnder( "templates" );
Assertions.assertNotNull( fileSearch );
Assertions.assertTrue( fileSearch.size() > 0 );
- List< String > nullSearch = ClassUtil.classpathEntriesUnder( "blurb" );
+ final List< String > nullSearch = ClassUtil.classpathEntriesUnder( "blurb" );
Assertions.assertNotNull( nullSearch );
- Assertions.assertTrue( nullSearch.size() == 0 );
+ Assertions.assertEquals( 0, nullSearch.size() );
- List< String > nullInputSearch = ClassUtil.classpathEntriesUnder( null );
+ final List< String > nullInputSearch = ClassUtil.classpathEntriesUnder( null );
Assertions.assertNotNull( nullInputSearch );
- Assertions.assertTrue( nullSearch.size() == 0 );
+ Assertions.assertEquals( 0, nullSearch.size() );
}
/**
* Tries to find an existing class.
*/
@Test
- public void testFindClass()
- throws Exception
- {
- Class< ? > foo = ClassUtil.findClass( "java.util", "List" );
+ public void testFindClass() throws Exception {
+ final Class< ? > foo = ClassUtil.findClass( "java.util", "List" );
Assertions.assertEquals( foo.getName(), "java.util.List" );
}
@@ -67,18 +64,8 @@ public class ClassUtilTest
* Non-existant classes should throw ClassNotFoundEx.
*/
@Test
- public void testFindClassNoClass()
- throws Exception
- {
- try
- {
- Class< ? > foo = ClassUtil.findClass( "org.apache.wiki", "MubbleBubble" );
- Assertions.fail( "Found class:" + foo );
- }
- catch( ClassNotFoundException e )
- {
- // Expected
- }
+ public void testFindClassNoClass() {
+ Assertions.assertThrows( ClassNotFoundException.class, () -> ClassUtil.findClass( "org.apache.wiki", "MubbleBubble" ) );
}
@Test
@@ -90,4 +77,10 @@ public class ClassUtilTest
Assertions.assertFalse( ClassUtil.assignable( "java.util.List", "java.util.HashMap" ) );
}
+ @Test
+ public void testExists() {
+ Assertions.assertTrue( ClassUtil.exists( "java.util.List" ) );
+ Assertions.assertFalse( ClassUtil.exists( "org.apache.wiski.FrisFrus" ) );
+ }
+
}