Interface ICompiler
-
public interface ICompiler
Java 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.order
property 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
URLClassLoader
and invokingURLClassLoader.getURLs()
.Compilers are invoked in order of the specified
java.compile.order
(seeIJavaComponent.COMPILE_ORDER
). When declaring a compiler, acompiler.id
must 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.String
COMPILER_ID
The compiler ID must be defined in the compiler component - e.g.static java.lang.String
TYPE
Compilers must define this type
-
Method Summary
All Methods Instance Methods Default Methods Deprecated Methods Modifier and Type Method Description default ICompiler
ALL()
Retrieve the "all" compiler, that uses the compile order to decide on what more specific compilers to usedefault boolean
compile(ICompilationContext compilationContext)
A general purpose compiler api using a class loader as class path abstraction.default boolean
compile(java.lang.String compName, java.io.File[] src, java.io.File dest, java.lang.ClassLoader cl)
Deprecated.Implementcompile(ICompilationContext)
instead.default void
init(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.java
orscala
- 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
-
-