Package org.eolang.hone
Class OptimizeMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.eolang.hone.OptimizeMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="optimize", defaultPhase=PROCESS_CLASSES) public final class OptimizeMojo extends org.apache.maven.plugin.AbstractMojo
Converts Bytecode to Bytecode in order to make it faster.This goal takes every .class file from the target/classes/ directory, converts it to .xmir format (which is XML representation of EO), then converts .xmir to .phi (which is 𝜑-calculus), then optimizes it via eo-phi-normalizer, and then back to .xmir and to .class. As a result, you obtain optimized Bytecode in the target/classes/ directory, which supposedly works faster than before.
The entire optimization pipeline happens inside Docker container, which is run from the image specified in the image parameter. The image may either be pulled or built locally. We recommend pulling it from the Docker Hub with the help of the pull goal. Also, we recommend deleting the image after optimization is done, with the help of the rmi goal.
- Since:
- 0.1.0
-
-
Constructor Summary
Constructors Constructor Description OptimizeMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
exec()
void
execute()
-
-
-
Field Detail
-
image
@Parameter(property="hone.image", defaultValue="yegor256/hone") protected String image
Docker image to use.- Since:
- 0.1.0
- Suppressed Checkstyle violations:
- VisibilityModifierCheck (5 lines)
-
sudo
@Parameter(property="hone.sudo", defaultValue="false") protected boolean sudo
Use "sudo" for "docker".- Since:
- 0.1.0
- Suppressed Checkstyle violations:
- VisibilityModifierCheck (5 lines)
-
-
Method Detail
-
exec
public void exec() throws IOException
- Throws:
IOException
-
execute
public final void execute() throws org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
-