The Paar task type is used for packaging REST services.

The Paar task types expects the availability of PAS for OpenEdge server project with all relevant files and folders such as .service/, PASOEContent/, and so on.

Paar extends from Jar task type of Gradle and hence supports all the properties and methods supported by Jartask type. The following tables describe the extra configurations added by the Paar task type along with some common configurations inherited from the Jar task type of Gradle.

Methods

Method Description Example
manifest(configureClosure)

Configures the manifest for the Paar archive type.

Execute the given closure configuration to configure the manifest property.

manifest {
	attributes "Implementation-Title": "My ABL Service"
	attributes "Implementation-Version": "1.0.0"
	from ("<another-manifest-file-path>")
}

Properties

Property Required? Description Example Default value
serviceName

Yes

The name of the ABL service.

ablRestServiceName="myABLRestService"

None

archiveBaseName

No

The base name of the archive.

archiveBaseName="myABLRestService"

serviceName

archiveAppendix

No

The appendix part of the archive name, if any.

archiveAppendix="appendixName"

None

archiveVersion

No

The version part of the archive name.

archiveVersion ="1.0.0"

None

archiveClassifier

No

The classifier part of the archive name, if any.

archiveClassifier ="source"

None

archiveExtension

No

The extension used for the Paar archive type.

archiveExtension ="customExt"

paar

archiveFileName

No

Displays the archive name in the following format:

[archiveBaseName] -[archiveAppendix] -[archiveVersion]-[archiveClassifier] .[archiveExtension]

archiveFileName="myArchive.customExt" ${serviceName}.paar"
destinationDirectory

Yes

The directory where the archive is placed.

destinationDirectory=project.file "${buildDir}/dist" project.distsDir
manifest

No

The manifest for the Paar archive, which is placed in the WEB-INF/ folder.

You can configure it the same way as you configure org.gradle.api .java.archives.Manifest

Note: The format for Build-Date is DateTimeFormatter .ISO_OFFSET_DATE_TIME.
manifest.attributes "Implementation-Title": "My Server ABL Application"
manifest.attributes "Implementation-Version": "1.0.0"
Manifest-Version: 1.0
ABL-Service-Name: ${serviceName}
ABL-Service-Version: 0.0.0.0
ABL-Service-Type: REST
Package-Type: paar
Build-Date: <build-date-time>
OpenEdge-Tool: OpenEdge DevOps Framework
projectLocation

Yes

Specifies the path to the Progress Developer Studio for OpenEdge server project.

projectLocation=project.file "<path-to-project>"

None

verbose

No

Use this property to enable logs.

verbose = true

false

Sample code snippet

The following code snippet is an example using the paar task type:
task createPaar(type: Paar) {
  serviceName = "myABLRestService"
  projectLocation = project.file "./"
  destinationDirectory = project.file "$buildDir/dist"
  verbose = true
  manifest {
    attributes "Implementation-Title": "My ABL REST Service"
    attributes "Implementation-Version": "1.0.0"
    from ("PASOEContent/META-INF/MANIFEST.MF")
  }
}