IBM / dbb-zappbuild

zAppBuild is a generic build solution for building z/OS applications using Apache Groovy build scripts and IBM Dependency Based Build (DBB) APIs.
Apache License 2.0
41 stars 140 forks source link

Search path configuration updates #267

Closed dennis-behm closed 1 year ago

dennis-behm commented 1 year ago

See issue #262.

This PR is cleaning up the dependency and impact search configurations for the removed DependencyResolver and ImpactResolver APIs - see N&N in the DBB docs.

This PR includes:

lburgess07 commented 1 year ago

Also, since we are cleaning up old APIs, can we completely remove the BuildUtilities methods that are commented out: https://github.com/IBM/dbb-zappbuild/blob/develop/utilities/BuildUtilities.groovy#L308-L353 https://github.com/IBM/dbb-zappbuild/blob/develop/utilities/BuildUtilities.groovy#L689-L715 The commented out methods are supporting APIs that have been removed in 2.0, which is why I commented them out, but I think we should remove the code entirely.

dennis-behm commented 1 year ago

I see that you are removing the samples/MortgageApplication/application-conf/Assembler.properties file. I imagine you are doing this, and it is safe to do so, because there aren't any ASM source files in MortgageApplication that we are building. So I'm not sure why it was in there in the first place. Just wanted to confirm this is the reason for removal?

Yes, I wanted to clean up the Mortgageapplicatio sample. While there is no ASM source, I think we can get rid of it.

raylamgit commented 1 year ago

At Cobol.groovy line 337 I added my codes to switch SYSLMOD from LOAD to CICSLOAD

// If cics then the load will be CICSLOAD if (buildUtils.isCICS(logicalFile)) { linkedit.dd(new DDStatement().name("SYSLMOD").dsn("${props.cobol_loadcicsPDS}($member)").options('shr').output(true).deployType(deployType)) } else { linkedit.dd(new DDStatement().name("SYSLMOD").dsn("${props.cobol_loadPDS}($member)").options('shr').output(true).deployType(deployType)) }

It looks like the ImpactUtilities.groovy is checking the LOAD only, and I have the following error, because my load module is at RLAM.RAYGENAP.CICSLOAD(LGICDB01) Is there a way that I point to a different SYSLMOD and not causing ImpactUtilities to fail.

*** Scanning load module for raygenapp/base/src/COBOL/LGICDB01.cbl com.ibm.dbb.build.ValidationException: BGZTK0046E Could not scan load module //'RLAM.RAYGENAP.LOAD(LGICDB01)' because it does not exist. . at ImpactUtilities.saveStaticLinkDependencies(ImpactUtilities.groovy:909)

def saveStaticLinkDependencies(String buildFile, String loadPDS, LogicalFile logicalFile) { MetadataStore metadataStore = MetadataStoreFactory.getMetadataStore() if (metadataStore && !props.error) { LinkEditScanner scanner = new LinkEditScanner() if (props.verbose) println " Scanning load module for $buildFile" LogicalFile scannerLogicalFile = scanner.scan(buildUtils.relativizePath(buildFile), loadPDS) if (props.verbose) println " Logical file = \n$scannerLogicalFile"

impactUtilities exception.txt

One way to circumvent my issue it to set cobol_scanLoadModule=false, however this will disable the cobol_scanLoadModule.