static

in src/main/java/org/apache/bsf/BSF_Log.java [69:142]


    static { // try to demand load the apache commons logging LogFactory

        Class oac_LogFactory_ = null;
        // NOTUSED Method oac_LogFactoryGetLog_Clazz_ = null;
        Method oac_LogFactoryGetLog_String_ = null;

        try // rgf, 20070917: o.k., if not found, try definedClassLoader instead
        {
            ClassLoader cl = Thread.currentThread().getContextClassLoader();

            final String str4Log = "org.apache.commons.logging.Log";

            Class logClass = null;

            if (cl != null) // use current Thread's context class loader, if set
            {
                try {
                    logClass = cl.loadClass(str4Log);
                } catch (final ClassNotFoundException e1) // not found by contextClassLoader
                {
                }
            }

            if (logClass == null) // not found, try defined class loader instead
            {
                final ClassLoader defCL = BSFManager.getDefinedClassLoader();
                logClass = defCL.loadClass(str4Log);
                cl = defCL; // class found, hence we use the definedClassLoader here
            }

            oac_LogFactory_ = cl.loadClass("org.apache.commons.logging.LogFactory");

            // get method with Class object argument
            // NOTUSED oac_LogFactoryGetLog_Clazz_ = oac_LogFactory_.getMethod("getLog", new Class[] {Class.class});

            // get method with String object argument
            oac_LogFactoryGetLog_String_ = oac_LogFactory_.getMethod("getLog", new Class[] { String.class });

            // get the Log methods
            final String str[][] = { { "debug", "isDebugEnabled" }, { "error", "isErrorEnabled" }, { "fatal", "isFatalEnabled" }, { "info", "isInfoEnabled" },
                    { "trace", "isTraceEnabled" }, { "warn", "isWarnEnabled" } };
            int i = 0;
            for (; i < 6; i++) {
                final int j = i * 3;
                meths[j] = logClass.getMethod(str[i][0], new Class[] { Object.class });

                meths[j + 1] = logClass.getMethod(str[i][0], new Class[] { Object.class, Throwable.class });

                meths[j + 2] = logClass.getMethod(str[i][1], new Class[] {});

            }
        }

        catch (final ClassNotFoundException e)// o.k., so we do not use org.apache.commons.logging in this run
        {
            if (iDebug > 1) {
                e.printStackTrace();
            }
            oac_LogFactory_ = null; // make sure it does not get used
            oac_LogFactoryGetLog_String_ = null; // make sure it does not get used
        } catch (final NoSuchMethodException e)// o.k., so we do not use org.apache.commons.logging in this run
        {
            if (iDebug > 1) {
                e.printStackTrace();
            }
            oac_LogFactory_ = null; // make sure it does not get used
            oac_LogFactoryGetLog_String_ = null; // make sure it does not get used
        }

        // Set up final fields
        oac_LogFactory = oac_LogFactory_;
        // NOTUSED oac_LogFactoryGetLog_Clazz = oac_LogFactoryGetLog_Clazz_;
        oac_LogFactoryGetLog_String = oac_LogFactoryGetLog_String_;
    }