Compiler Extension

    Summary

    Java compiler, used for byte code dynamic generation for RPC invocation.

    Extension Interface

    org.apache.dubbo.common.compiler.Compiler

    Extension Configuration

    No configuration required, the extension will be automatically discovered and loaded.

    Existing Extensions

    • org.apache.dubbo.common.compiler.support.JdkCompiler
    • org.apache.dubbo.common.compiler.support.JavassistCompiler

    Extension Guide

    Directory layout:

    src
     |-main
        |-java
            |-com
                |-xxx
                    |-XxxCompiler.java (Compiler implementation)
        |-resources
            |-META-INF
                |-dubbo
                    |-org.apache.dubbo.common.compiler.Compiler (plain text file with the content: xxx=com.xxx.XxxCompiler)
    

    XxxCompiler.java:

    package com.xxx;
     
    import org.apache.dubbo.common.compiler.Compiler;
     
    public class XxxCompiler implements Compiler {
        public Object getExtension(Class<?> type, String name) {
            // ...
        }
    }
    

    META-INF/dubbo/org.apache.dubbo.common.compiler.Compiler:

    xxx=com.xxx.XxxCompiler