An ABL service is a set of business logic that you can access using an URL path. The Oeds task type allows you to package the ABL services into one deployment action. This package allows you to build a custom service quickly and to easily deploy to a PAS for OpenEdge instance. This package creates a single Oeds archive file for each transport, which makes the ABL Service easy to maintain and benefit from CI/CD processes

The Oeds task type extends from the Zip task type of Gradle and supports all the properties and methods supported by it. The following tables describe the extra configurations added by the Oeds task type along with some common configurations inherited from the Zip task type of Gradle.

Methods

Method Description Example
conf(configureClosure)

Adds the content to the conf/ directory of the oeds archive.

Execute the given closure configuration to configure the org.gradle.api. file.CopySpec

conf { from 'src/main/conf' }
static(configureCopySpec)

Adds the contents to the static/directory of the oeds archive.

Execute the given closure configuration to configureorg.gradle.api .file.CopySpec

Adds the content of various files such as, **/*.js, **/*.json, **/*.xml, **/*.css, **/*.png, and **/*.* to the static/ archive directory.

Note: static is a special Java keyword. Pay attention to the _ appended as suffix to the static method.
static_{ from 'src/main/static' }
openedge(configureCopySpec)

Adds the content of various files such as **/*.r, **/*.cls, **/*.p, **/*.w, and **/** to the openedge/ directory of the Oeds archive.

Execute the given closure configuration to configureorg.gradle.api .file.CopySpec

openedge { 
    from 'src/main/openedge'
    include '**/*.r'
    exclude '**/*.txt'
}
tlr(configureCopySpec)

Adds the content of build.xml, merge.properties, and merge.oeablSecurity to the tlr/ directory of the Oedsarchive.

tlr { 
    from 'src/main/tlr'
    include '**/*.properties'
    exclude '**/*.txt' 
}
svc(configureCopySpec)

Adds the content of ${oepas-ablsvc}.paar, ${oepas-ablsvc}.wsm, ${oepas-ablsvc}.map/.gen, ${oepas-ablsvc}.handlers, and ${oepas-ablsvc}.json to the svc/ directory of the Oeds archive.

svc { from 'src/main/svc' }
custom(configureCopySpec)

Adds the content of *.* file to the custom/ directory of Oeds archive.

custom { from 'src/main/custom' }
manifest(configureClosure)

Configures the manifest for Oeds 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.

serviceName="myABLService"

None

serviceType

Yes

The type of ABL service used. It can be one of the following:
  • REST
  • SOAP
  • WEB
  • STATIC
  • APSV

serviceType="REST"

None

archiveBaseName

No

The base name of the archive.

archiveBaseName="myABLService"

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 Oeds archive type.

archiveExtension="customExt"

oeds

archiveFileName

No

Displays the archive name in the following format:

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

archiveFileName="myArchive.customExt"

${serviceName}.oeds
destinationDirectory

No

The directory where the archive is placed.

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

project.distsDir

manifest

No

The manifest for the Oeds archive, which is placed in the conf/ 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-Type: ${serviceType}
ABL-Service-Version: 0.0.0.0
Package-Type: oeds
Build-Date: <build-date-time>
OpenEdge-Tool: OpenEdge DevOps Framework

Sample code snippet

The following code snippet is an example using the Oeds task type:
task createServiceArchive(type: Oeds){
  serviceName = "myABLService"
  serviceType = "REST"
  destinationDirectory = project.file "${buildDir}/dist"
  conf { 
    from 'src/main/conf'
    exclude '**/*.MF'   //exclude direct copy of manifest file and append using manifest section
  }
  static_ { from 'src/main/static' }
  openedge {     
    from 'src/main/openedge'    
    include '**/*.r'    
    exclude '**/*.txt'
  }
  tlr {     
    from 'src/main/tlr'    
    include '**/*.properties'    
    exclude '**/*.txt' 
  }
  svc { from 'src/main/svc' }
  custom { from 'src/main/custom' }
  manifest {
    attributes "Implementation-Title": "My ABL Service"
    attributes "Implementation-Version": "1.0.0"
    from ("src/main/conf/MANIFEST.MF")
  }
}