private synchronized Class getModelLoaderClass()

in cxf-xjc-plugin/src/main/java/org/apache/cxf/maven_plugin/XSDToJavaRunner.java [197:218]


    private synchronized Class<?> getModelLoaderClass() {
        if (modelLoaderClass == null) {
            try {
                ClassPool pool = ClassPool.getDefault();
                CtClass cc = pool.get("com.sun.tools.xjc.ModelLoader");
                cc.setName("com.sun.tools.xjc.ModelLoader");
                for (CtMethod m : cc.getMethods()) {
                    if ("buildDOMForest".equals(m.getName())) {
                        m.insertBefore("$1 = new " + CustomizedLogic.class.getName() + "();");
                    }
                }
                modelLoaderClass = cc.toClass();
            } catch (Throwable t) {
                try {
                    modelLoaderClass = Class.forName("com.sun.tools.xjc.ModelLoader");
                } catch (ClassNotFoundException e) {
                    //ignore
                }
            }
        }
        return modelLoaderClass;
    }