/* * Copyright (c) 1986-2015, Serkan OZAL, All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package tr.com.serkanozal.jillegal.agent.util; /** * Utility class for some common classloader related operations. * * @author Serkan OZAL */ public final class ClassLoaderUtil { private ClassLoaderUtil() { } /** * Gets an available classloader which can be * classloader of this class or system classloader. * * @return an available classloader to be used */ public static ClassLoader getClassLoader() { ClassLoader classLoader = ClassLoaderUtil.class.getClassLoader(); if (classLoader == null) { return ClassLoader.getSystemClassLoader(); } else { return classLoader; } } /** * Tries to load class with given <code>className</code>. * * @param className name of the class to be loaded * @return the loaded class if the class could be found with given <code>className</code>, * otherwise <code>null</code> */ public static Class<?> loadClass(String className) { try { return getClassLoader().loadClass(className); } catch (Throwable t) { LogUtil.error("Error at ClassLoaderUtil.loadClass(String className)", t); return null; } } }