# HG changeset patch # User iignatyev # Date 1495128140 25200 # Node ID 0de84426b2d6e4af38a751643a984d4d09dbdf5d # Parent c42dc7b58b4d4301ea676a76326fd9bbd403d595 8180395: move FilterClassLoader and ParentLastURLClassLoader to top level testlibrary Reviewed-by: psandoz diff -r c42dc7b58b4d -r 0de84426b2d6 jdk/test/lib/testlibrary/jdk/testlibrary/FilterClassLoader.java --- a/jdk/test/lib/testlibrary/jdk/testlibrary/FilterClassLoader.java Wed Jul 05 23:27:00 2017 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package jdk.testlibrary; - -import java.util.function.Predicate; -/** - * A classloader, which using target classloader in case provided condition - * for class name is met, and using parent otherwise - */ -public class FilterClassLoader extends ClassLoader { - - private final ClassLoader target; - private final Predicate condition; - - public FilterClassLoader(ClassLoader target, ClassLoader parent, - Predicate condition) { - super(parent); - this.condition = condition; - this.target = target; - } - - @Override - public Class loadClass(String name) throws ClassNotFoundException { - if (condition.test(name)) { - return target.loadClass(name); - } - return super.loadClass(name); - } -} diff -r c42dc7b58b4d -r 0de84426b2d6 jdk/test/lib/testlibrary/jdk/testlibrary/ParentLastURLClassLoader.java --- a/jdk/test/lib/testlibrary/jdk/testlibrary/ParentLastURLClassLoader.java Wed Jul 05 23:27:00 2017 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package jdk.testlibrary; - -import java.net.URL; -import java.net.URLClassLoader; - -/** - * An url classloader, which trying to load class from provided URL[] first, - * and using parent classloader in case it failed - */ -public class ParentLastURLClassLoader extends URLClassLoader { - - public ParentLastURLClassLoader(URL urls[], ClassLoader parent) { - super(urls, parent); - } - - @Override - public Class loadClass(String name) throws ClassNotFoundException { - try { - Class c = findClass(name); - if (c != null) { - return c; - } - } catch (ClassNotFoundException e) { - // ignore - } - return super.loadClass(name); - } -}