Class VersionsMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    public final class VersionsMojo
    extends org.apache.maven.plugin.AbstractMojo
    Find all object versions as semver in .xmir and replace them with appropriate narrow GitHub release hashes (7 lines) from Objectionary. The motivation of the mojo is to provide a safe and convenient way to resolve object versions that are used in Java class names and paths to the source files.
    Since:
    0.29.6
    See Also:
    Tags
    • Field Detail

      • project

        @Parameter(defaultValue="${project}",
                   readonly=true)
        protected org.apache.maven.project.MavenProject project
        Maven project.
      • session

        @Parameter(defaultValue="${session}",
                   readonly=true)
        protected org.apache.maven.execution.MavenSession session
        Maven session.
      • manager

        @Component
        protected org.apache.maven.plugin.BuildPluginManager manager
        Maven plugin manager.
      • foreign

        @Parameter(property="eo.foreign",
                   required=true,
                   defaultValue="${project.build.directory}/eo-foreign.csv")
        protected File foreign
        File with foreign "tojos".
      • external

        @Parameter(property="eo.external",
                   required=true,
                   defaultValue="${project.build.directory}/eo-external.csv")
        protected File external
        File with external "tojos".
      • foreignFormat

        @Parameter(property="eo.foreignFormat",
                   required=true,
                   defaultValue="csv")
        protected String foreignFormat
        Format of "foreign" file ("json" or "csv").
      • targetDir

        @Parameter(property="eo.targetDir",
                   required=true,
                   defaultValue="${project.build.directory}/eo")
        protected File targetDir
        Target directory.
      • scope

        @Parameter(property="eo.scope")
        protected String scope
        Current scope (either "compile" or "test").
      • placed

        @Parameter(property="eo.placed",
                   required=true,
                   defaultValue="${project.build.directory}/eo-placed.csv")
        protected File placed
        The path to a text file where paths of all added .class (and maybe others) files are placed.
        Since:
        0.11.0
      • placedFormat

        @Parameter(property="eo.placedFormat",
                   required=true,
                   defaultValue="json")
        protected String placedFormat
        Format of "placed" file ("json" or "csv").
      • transpiled

        @Parameter(property="eo.transpiled",
                   required=true,
                   defaultValue="${project.build.directory}/eo-transpiled.csv")
        protected File transpiled
        The path to a text file where paths of generated java files per EO program.
        Since:
        0.11.0
      • timeout

        @Parameter(property="eo.timeout")
        protected Integer timeout
        Mojo execution timeout in seconds.
        Since:
        0.28.12
      • transpiledFormat

        @Parameter(property="eo.transpiledFormat",
                   required=true,
                   defaultValue="csv")
        protected String transpiledFormat
        Format of "transpiled" file ("json" or "csv").
      • unrollExitError

        @Parameter(property="eo.unrollExitError")
        protected boolean unrollExitError
        If set to TRUE, the exception on exit will be printed in details to the log.
        Since:
        0.29.0
      • cache

        @Parameter(property="eo.cache")
        protected Path cache
        EO cache directory.
      • withVersions

        @Parameter(property="eo.withVersions",
                   defaultValue="false")
        protected boolean withVersions
        Used for object versioning implementation. If set to TRUE, external tojos are used instead of foreign ones and all inherited Mojos behave a bit differently.
      • externalTojos

        protected final ForeignTojos externalTojos
        External tojos.
      • placedTojos

        protected final PlacedTojos placedTojos
        Placed tojos.
      • transpiledTojos

        protected final TranspiledTojos transpiledTojos
        Cached transpiled tojos.
    • Constructor Detail

      • VersionsMojo

        public VersionsMojo()
    • Method Detail

      • execute

        public final void execute()
                           throws org.apache.maven.plugin.MojoFailureException,
                                  org.apache.maven.plugin.MojoExecutionException
        Execute it.
        Throws:
        org.apache.maven.plugin.MojoFailureException - If fails during build
        org.apache.maven.plugin.MojoExecutionException - If fails during execution
      • scopedTojos

        protected final ForeignTojos scopedTojos()
        Tojos to use, in my scope only.
        Returns:
        Tojos to use