Class CreateFlatpakMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.eclipse.cbi.maven.plugins.flatpakager.CreateFlatpakMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo
@Mojo(name="package-flatpak", defaultPhase=PACKAGE) public class CreateFlatpakMojo extends org.apache.maven.plugin.AbstractMojoCreate a Flatpak application from the archived product output of the tycho-p2-director-plugin and exports the application to a Flatpak repository. Signing the Flatpak repository is optional, but highly recommended.- Since:
- 1.1.5
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<AdditionalSource>additionalSourcesAn optional list of additional source files that should be installed into the Flatpak application.private java.lang.StringbranchThe branch of the application, defaults to "master" but can be set to identify the stream, for example: "Oxygen" or "4.7"private java.lang.StringcommandThe filename or path to the main binary of the application, defaults to "eclipse"private booleancontinueOnFailWhether the build should be stopped if the packaging process fails.private java.lang.StringdescriptionA longer description of the Flatpak application that may be shown in distro software centres.private java.lang.StringflatpakIdprivate java.io.FilegpgHomeThe location of the GPG secure keyring to use when signing the Flatpak application.private java.lang.StringgpgKeyThe GPG key to use when signing the Flatpak application.private java.lang.StringidA unique identifier for the Flatpak application, for example: "org.eclipse.Platform"private java.lang.StringlicenseThe license that the Flatpak application is distributed under.private java.lang.StringmaintainerAn optional email address that can be used to contact the project about invalid or incomplete metadata.private java.lang.StringminFlatpakVersionThe minimum version of Flatpak needed at runtime, that this application will support.private java.lang.StringnameA friendly name for the Flatpak application that will be shown to use in software centres and in desktop environments.private org.apache.maven.project.MavenProjectprojectprivate java.io.FilerepositoryThe repository to which the new Flatpak application should be exported.private java.lang.StringrepositoryUrlThe URL at which the Flatpak repository will be available to users, this is embedded into generated "flatpakrepo" and "flatpakref" files.private java.lang.StringruntimeVersionThe version of the Gnome runtime on which to build the Flatpak application.private java.util.List<java.lang.String>screenshotsAn optional list of URLs to screenshots that may be shown in distro software centres.private java.lang.StringserviceUrlAn optional URL for the Flatpak application packaging web service.private booleansignWhether the Flatpak application should be GPG signed.private booleanskipSkips the execution of this plugin.private java.io.FilesourceAn.tar.gzor.zipfile containing a Linux product from which to generate a Flatpak application.private java.lang.StringsummaryA short description of the Flatpak application that may be shown in distro software centres and in desktop environments.private inttimeoutMillisDefines the timeout in milliseconds for any communication with the packaging web service.
-
Constructor Summary
Constructors Constructor Description CreateFlatpakMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidbuildAndSignRepo(ExceptionHandler exceptionHandler, java.io.File targetDir)voidexecute()private voidexecuteProcess(ExceptionHandler exceptionHandler, java.util.List<java.lang.String> args, java.io.File targetDir)private voidexecuteProcessOnRemoteServer(HttpClient httpClient, HttpRequest request)private java.lang.StringfetchGpgKey(ExceptionHandler exceptionHandler)private voidgenerateManifest(java.io.File targetDir)private voidgenerateRefFiles(java.lang.String armouredGpgKey)
-
-
-
Field Detail
-
id
@Parameter(required=true) private java.lang.String id
A unique identifier for the Flatpak application, for example: "org.eclipse.Platform"- Since:
- 1.1.5
-
flatpakId
private java.lang.String flatpakId
-
name
@Parameter(required=true) private java.lang.String name
A friendly name for the Flatpak application that will be shown to use in software centres and in desktop environments.- Since:
- 1.1.5
-
summary
@Parameter(required=true) private java.lang.String summary
A short description of the Flatpak application that may be shown in distro software centres and in desktop environments.- Since:
- 1.1.5
-
description
@Parameter(required=true) private java.lang.String description
A longer description of the Flatpak application that may be shown in distro software centres.- Since:
- 1.1.5
-
maintainer
@Parameter private java.lang.String maintainer
An optional email address that can be used to contact the project about invalid or incomplete metadata.- Since:
- 1.1.5
-
screenshots
@Parameter private java.util.List<java.lang.String> screenshots
An optional list of URLs to screenshots that may be shown in distro software centres.- Since:
- 1.1.5
-
branch
@Parameter(required=true, defaultValue="master") private java.lang.String branchThe branch of the application, defaults to "master" but can be set to identify the stream, for example: "Oxygen" or "4.7"- Since:
- 1.1.5
-
command
@Parameter(required=true, defaultValue="eclipse") private java.lang.String commandThe filename or path to the main binary of the application, defaults to "eclipse"- Since:
- 1.1.5
-
runtimeVersion
@Parameter(required=true, defaultValue="3.28") private java.lang.String runtimeVersionThe version of the Gnome runtime on which to build the Flatpak application. Defaults to "3.28"- Since:
- 1.1.5
-
source
@Parameter(required=true) private java.io.File source
An.tar.gzor.zipfile containing a Linux product from which to generate a Flatpak application.- Since:
- 1.1.5
-
additionalSources
@Parameter private final java.util.List<AdditionalSource> additionalSources
An optional list of additional source files that should be installed into the Flatpak application. These files are simply copied into the sandbox at the given location. For example:<additionalSources> <additionalSource> <source>/path/to/local/file</source> <destination>/path/to/location/inside/the/sandbox</destination> </additionalSources> </additionalSources>- Since:
- 1.1.5
-
minFlatpakVersion
@Parameter(required=true, defaultValue="0.8.8") private java.lang.String minFlatpakVersionThe minimum version of Flatpak needed at runtime, that this application will support. Defaults to "0.8.8" (the version available on RHEL 7.5)- Since:
- 1.1.5
-
license
@Parameter(required=true, defaultValue="EPL-1.0") private java.lang.String licenseThe license that the Flatpak application is distributed under. It should be a valid SPDX license expression. For example:EPL-1.0Apache-2.0 AND LGPL-3.0-or-later
A full list of recognized licenses and their identifiers can be found at the SPDX OpenSource License Registry.
- Since:
- 1.1.5
-
repository
@Parameter(property="cbi.flatpakager.repo") private java.io.File repository
The repository to which the new Flatpak application should be exported. If not specified, a new repository will be created inside the build directory.- Since:
- 1.1.5
-
repositoryUrl
@Parameter(property="cbi.flatpakager.repoUrl", defaultValue="http://www.example.com/flatpak/repo") private java.lang.String repositoryUrlThe URL at which the Flatpak repository will be available to users, this is embedded into generated "flatpakrepo" and "flatpakref" files.- Since:
- 1.1.5
-
skip
@Parameter(property="cbi.flatpakager.skip", defaultValue="false") private boolean skipSkips the execution of this plugin.- Since:
- 1.1.5
-
continueOnFail
@Parameter(property="cbi.flatpakager.continueOnFail", defaultValue="false") private boolean continueOnFailWhether the build should be stopped if the packaging process fails.- Since:
- 1.1.5
-
sign
@Parameter(property="cbi.flatpakager.sign", defaultValue="false") private boolean signWhether the Flatpak application should be GPG signed.- Since:
- 1.1.5
-
gpgKey
@Parameter(property="cbi.flatpakager.gpgkey") private java.lang.String gpgKey
The GPG key to use when signing the Flatpak application.- Since:
- 1.1.5
-
gpgHome
@Parameter(property="cbi.flatpakager.gpghome") private java.io.File gpgHome
The location of the GPG secure keyring to use when signing the Flatpak application. Defaults to the ".gnupg" directory in the user's home.- Since:
- 1.1.5
-
serviceUrl
@Parameter(property="cbi.flatpakager.serviceUrl") private java.lang.String serviceUrl
An optional URL for the Flatpak application packaging web service.By default, the Flatpak application will be generated locally. If the Flatpak tools are unavailable locally, or the build is running on an architecture or OS where Flatpak is not supported, then a URL may be specified that indicated the location of the Flatpak packaging web service. For example:
http://build.eclipse.org:31338/flatpak-packager
- Since:
- 1.1.5
-
timeoutMillis
@Parameter(property="cbi.flatpakager.timeoutMillis", defaultValue="0") private int timeoutMillisDefines the timeout in milliseconds for any communication with the packaging web service. Defaults to zero, which is interpreted as an infinite timeout. This only means something if aserviceUrlis specified.- Since:
- 1.1.5
-
project
@Parameter(defaultValue="${project}", required=true, readonly=true) private org.apache.maven.project.MavenProject project
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException- Throws:
org.apache.maven.plugin.MojoExecutionException
-
fetchGpgKey
private java.lang.String fetchGpgKey(ExceptionHandler exceptionHandler) throws java.io.IOException, org.apache.maven.plugin.MojoExecutionException
- Throws:
java.io.IOExceptionorg.apache.maven.plugin.MojoExecutionException
-
generateManifest
private void generateManifest(java.io.File targetDir) throws java.io.IOException- Throws:
java.io.IOException
-
buildAndSignRepo
private void buildAndSignRepo(ExceptionHandler exceptionHandler, java.io.File targetDir) throws java.lang.InterruptedException, java.io.IOException, org.apache.maven.plugin.MojoExecutionException
- Throws:
java.lang.InterruptedExceptionjava.io.IOExceptionorg.apache.maven.plugin.MojoExecutionException
-
generateRefFiles
private void generateRefFiles(java.lang.String armouredGpgKey) throws java.io.IOException- Throws:
java.io.IOException
-
executeProcess
private void executeProcess(ExceptionHandler exceptionHandler, java.util.List<java.lang.String> args, java.io.File targetDir) throws java.lang.InterruptedException, java.io.IOException, org.apache.maven.plugin.MojoExecutionException
- Throws:
java.lang.InterruptedExceptionjava.io.IOExceptionorg.apache.maven.plugin.MojoExecutionException
-
executeProcessOnRemoteServer
private void executeProcessOnRemoteServer(HttpClient httpClient, HttpRequest request) throws java.io.IOException
- Throws:
java.io.IOException
-
-