JEAF Maven Plugin
Introduction
As described before JEAF is optimized to provide very short startup times. This a fundamental non-functional requirement when implementing cloud applications. Only when your application startup is really fast then you can benefit from dynamic scaling as it is provided by all leading cloud solutions.
When profiling startup performance of many applications it turned out that initialization of most common frameworks took quite a lot of time. One of the main reasons for that is that many frameworks scan the applications classpath for initialization, dependency injection etc.
With JEAF we implemented a different approach. JEAF is also configured using annotations. But in order to improve startup time JEAF Maven Plugin analyzes the class path during build time and generates configuration files that are used to find the classes that hold the configuration values. This way time consuming activities during startup can be avoided.
Current Version
Overview about latest released versions can be found here:
Preconditions
As described in Maven Build Helper Plugin when working with JEAF or JEAF Generator then we need to make use of Maven Build Helper Plugin. So please refer to the mentioned site to ensure that is integrated properly.
How to use JEAF Maven Plugin
The following tables describe all available configuration parameters of JEAF Maven Plugin. As there are any of them they are grouped by topic:
Common Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
| At least one of | Configuration parameter defines the output directory to which the generated JEAF configuration files should be written. The plugin will analyze therefore all dependencies that are not of scope "test". |
| Configuration parameter defines the output directory to which the generated JEAF configuration files for test scope should be written. The plugin will analyze therefore all dependencies including also those of scope "test". | |
| optional | The plugin also supports writing files to target test directory. There the target directory has to be passed through this configuration parameter. |
| optional | The plugin also supports writing files to target test directory. There the target directory has to be passed through this configuration parameter. |
| Either configuration parameter | Parameter can be used to include classes that match some specific pattern. The pattern matching mechanism is rather simple. Thus only the following variants are supported:
|
| Parameter can be used to exclude classes that match some specific pattern. The pattern matching mechanism is rather simple. Thus only the following variants are supported:
| |
|
| If parameter is set to |
|
| If parameter is set to |
|
| If parameter is set to |
JEAF X-Fun and Tools Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
|
| Plugin scans the class path for JEAF X-Fun configuration ( |
|
| Plugin scans the class path for application info ( |
|
| Plugin scans the class path for information about the runtime environment ( |
|
| Plugin scans the class path for configuration provider config ( |
|
| Plugin scans the class path for trace configuration ( |
|
| Plugin scans the class path for trace object formatters ( |
|
| Plugin scans the class path for a startup info configuration ( |
|
| Plugin scans the class path for startup info writers ( |
|
| Plugin scans the class path for datatype converters ( |
|
| Plugin scans the class path for message resources ( |
|
| Plugin scans the class path for JEAF Tools configurations ( |
For further information about JEAF X-Fun and JEAF Tools please refer to:
JEAF Core Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
|
| Plugin scans the class path for life cycle manager factories ( |
|
| Plugin scans the class path for JEAF Core factories ( |
|
| Plugin scans the class path for JEAF Core configurations ( |
|
| Plugin scans the class path for JEAF scheduling configuration ( |
|
| Plugin scans the class path for JEAF security configuration ( |
|
| Plugin scans the class path for JEAF scheduler credentials ( |
|
| Plugin scans the class path for JEAF EJB Client Service Channel configuration ( |
|
| lugin scans the class path for JEAF EJB Container configuration ( |
|
| Plugin scans the class path for component factories ( |
|
| Plugin scans the class path for service provider factories ( |
|
| Plugin scans the class path for activity implementation ( |
For further information about JEAF Core please refer to:
JEAF Persistence Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
|
| Plugin scans the class path for JEAF Persistence configurations ( |
For further information about JEAF Core please refer to:
JEAF Workload Management Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
|
| Plugin scans the class path for JEAF workload manager configuration ( |
|
| Plugin scans the class path for JEAF workload mappings ( |
|
| Plugin scans the class path for JEAF workload pipeline configurations ( |
For further information about JEAF Workload Management please refer to:
JEAF Fast Lane Configuration Parameters
Configuration Parameter | Required / Optional / Default | Description |
---|---|---|
|
| Plugin scans the class path for JEAF FastLane web server configuration ( |
For further information about JEAF Fast Lane please refer to:
Sample Configuration
<!--
JEAF Maven Plugin will generate JEAF configuration files. Besides executing the
plugin during build no specific configurations are required to use JEAF X-Fun.
-->
<plugin>
<groupId>com.anaptecs.jeaf.maven</groupId>
<artifactId>jeaf-maven-plugin</artifactId>
<version>${maven.jeaf-plugin.version}</version>
<executions>
<!--
Cleanup run. All existing generated files will be deleted before they will be
generated again.
-->
<execution>
<id>Clean</id>
<goals>
<goal>GenerateJEAFConfig</goal>
</goals>
<phase>clean</phase>
<configuration>
<resourceGenDirectory>${basedir}/src-gen/main/resources</resourceGenDirectory>
<cleanMetaInfDirectory>true</cleanMetaInfDirectory>
<cleanOnly>true</cleanOnly>
</configuration>
</execution>
<!-- Generate configuration files. -->
<execution>
<id>GenerateConfigs</id>
<goals>
<goal>GenerateJEAFConfig</goal>
</goals>
<configuration>
<resourceGenDirectory>${basedir}/src-gen/main/resources</resourceGenDirectory>
<targetDirectory>${basedir}/target/classes</targetDirectory>
</configuration>
</execution>
</executions>
</plugin>