public static Configuration makeConfiguration(ClassLoader classLoader, String className) {
        if (className == null) {
            className = configurationClass.getClass().getName();
        }
        try {
            Class theClass;
            ClassLoader loader = classLoader;
            if (loader == null) {
                try {
                    loader = Thread.currentThread().getContextClassLoader();
                } catch (Exception err) {
                    System.err.println("Failed to getContextClassLoader() - continuing");
                }
            }
            if (loader != null) {
                try {
                    theClass = loader.loadClass(className);
                } catch (Exception ex) {
                    theClass = Class.forName(className);
                }
            } else {
                theClass = Class.forName(className);
            }
            Configuration c = (Configuration)theClass.newInstance();
            if (c.isLicensed()) {
                return c;
            } else {
                return new Configuration();
            }
        } catch (ClassNotFoundException e) {
            return new Configuration();
        } catch (InstantiationException e) {
            return new Configuration();
        } catch (IllegalAccessException e) {
            return new Configuration();
        }


    }