2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 import java.net.URLClassLoader;
26 * classloader that is used by Config to instantiate from JPF configured
27 * paths. This is a standard parent-first loader to avoid multiple class
28 * instances when using our Run*.jar tools
30 * The main reason for having our own classloader is dynamically configured resource
33 public class JPFClassLoader extends URLClassLoader {
39 //ClassLoader.registerAsParallelCapable(); // for jdk7
42 public JPFClassLoader (URL[] urls){
46 public JPFClassLoader (URL[] urls, String[] libs, ClassLoader parent){
53 protected String findLibrary (String libBaseName){
55 if (nativeLibs != null){
56 String libName = File.separator + System.mapLibraryName(libBaseName);
58 for (String libPath : nativeLibs) {
59 if (libPath.endsWith(libName)) {
65 return null; // means VM uses java.library.path to look it up
69 * we make it public since we add paths dynamically during JPF init
71 * Note this is ignored according to the javadocs if the provided url is already in the classpath.
72 * We do rely on this feature since me might add jpf.jar several times during bootstrap
75 public void addURL (URL url){
81 public void setNativeLibs (String[] libs){