Interface ICompiler
IJavaComponent
) 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 invoking URLClassLoader.getURLs()
.
Compilers are invoked in order of the specified java.compile.order
(see IJavaComponent.COMPILE_ORDER
). When
declaring a compiler, a compiler.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 -
Method Summary
Modifier and TypeMethodDescriptiondefault 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
(String compName, File[] src, File dest, ClassLoader cl) Deprecated.default void
init
(ICompilerContext context) Compiler initialization
-
Field Details
-
TYPE
Compilers must define this type- See Also:
-
COMPILER_ID
The compiler ID must be defined in the compiler component - e.g.java
orscala
- See Also:
-
-
Method Details
-
ALL
Retrieve the "all" compiler, that uses the compile order to decide on what more specific compilers to use- Returns:
-
compile
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
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
Compiler initialization
-
compile(ICompilationContext)
instead.