Interface ICompiler
-
public interface ICompilerJava component (seeIJavaComponent) compiler extension interface.This interface is implemented by implementation of components of type
com.zfabrik.compiler.Supported configuration properties:
- compiler.id
- An identifier for the compiler to be used when defining the compile order
of a Java component using the
java.compile.orderproperty on the Java component.
Compiler extensions operate over a build result folder (usually .class files and other binary resources) that will be JARred at when all compilers have completed. Compilers will be passed a class path in the form of a class loader. When required, the actual files and folders of the classpath can be retrieved by casting that class loader to
URLClassLoaderand invokingURLClassLoader.getURLs().Compilers are invoked in order of the specified
java.compile.order(seeIJavaComponent.COMPILE_ORDER). When declaring a compiler, acompiler.idmust be specified that is used to reference the compiler when specifying the compiler order.An example compiler component declaration looks like this:
# # it's a compiler # com.zfabrik.component.type=com.zfabrik.java.compiler # # it's feature_x_compiler # compiler.id=feature_x_compiler # # it's implemented here # component.className=com.acme.impl.FeatureXCompiler
- Author:
- hb
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringCOMPILER_IDThe compiler ID must be defined in the compiler component - e.g.static java.lang.StringTYPECompilers must define this type
-
Method Summary
All Methods Instance Methods Default Methods Deprecated Methods Modifier and Type Method Description default ICompilerALL()Retrieve the "all" compiler, that uses the compile order to decide on what more specific compilers to usedefault booleancompile(ICompilationContext compilationContext)A general purpose compiler api using a class loader as class path abstraction.default booleancompile(java.lang.String compName, java.io.File[] src, java.io.File dest, java.lang.ClassLoader cl)Deprecated.Implementcompile(ICompilationContext)instead.default voidinit(ICompilerContext context)Compiler initialization
-
-
-
Field Detail
-
TYPE
static final java.lang.String TYPE
Compilers must define this type- See Also:
- Constant Field Values
-
COMPILER_ID
static final java.lang.String COMPILER_ID
The compiler ID must be defined in the compiler component - e.g.javaorscala- See Also:
- Constant Field Values
-
-
Method Detail
-
ALL
default ICompiler ALL()
Retrieve the "all" compiler, that uses the compile order to decide on what more specific compilers to use- Returns:
-
compile
@Deprecated default boolean compile(java.lang.String compName, java.io.File[] src, java.io.File dest, java.lang.ClassLoader cl)Deprecated.Implementcompile(ICompilationContext)instead.A general purpose compiler api using a class loader as class path abstraction. Returns true if the compilation passed otherwise it returns false.- Parameters:
compName- the name of the componentsrc- folder containing the source filesdest- destination folder will contain compile resultscl- class loader as class path abstraction- Returns:
- true, iff compilation succeeds
-
compile
default boolean compile(ICompilationContext compilationContext)
A general purpose compiler api using a class loader as class path abstraction. Returns true if the compilation passed otherwise it returnsfalse. This method to be implemented for part specific handling. It defaults to invocation ofcompile(String, File[], File, ClassLoader).- Parameters:
compName- the name of the componentsrc- folder containing the source filesdest- destination folder will contain compile resultscl- class loader as class path abstractionpart- of the component to compile- Returns:
- true, iff compilation succeeds
-
init
default void init(ICompilerContext context)
Compiler initialization
-
-