CPILint is an open source tool, that I’ve been working on since late 2018. In a nutshell, CPILint lets you automate your SAP Cloud Platform Integration governance, by verifying that your integration flows comply with your choice of rules about connectivity, development, security and more.
At the SAP Inside Track Walldorf event in January, I got to do a live demo of of the tool. Since then, I’ve made a number of improvements and additions to the code, and the beta test is getting close. In this blog post, I’d like to give you a quick update on what’s new with CPILint.
The tenant code is done
First and foremost, the code that interacts with the SAP Cloud Platform Integration tenant is complete and functioning. You can either check individual integration flows that you specify or every integration flow in your tenant. In the latter case, you have the option of skipping all SAP packages, individual integration flows or both, should you need to.
You also have the option of checking integration flows that have been downloaded to your local computer. Similar to the online use case, you can either check individual integration flows or all integration flows in a specific directory.
The command line is up and running
CPILint is a command line application, but all the command line options were not in place, when I demoed the tool in Walldorf. They’ve been added in the meantime, and that means that you are now able to activate all the tool’s functionality directly from the command line.
Here’s what the output of the
cpilint -help command looks like at the moment:
The command line interface was implemented using the Apache Commons CLI library, by the way.
3100+ lines of code
Since the demo in January, CPILint has crossed the 3000 lines of code mark. In fact, right now the project contains exactly 3122 lines of code (comments not included). Had I not been writing in Java 11, that number would have been much higher, though. The Stream API introduced in Java 8 is such a pleasure to work with, and results in code that is at the same time readable and compact. Now that’s not something you’re used to in Java 😉
Duplicate resources rule added
I’ve added a new rule that lets you check your integration flows for duplicate resources such as scripts, XSLT stylesheets etc. You can check for duplicates across all resource types, or limit the check to only the resource types you specify.
Duplicate resources are not necessarily a problem; there are cases where they cannot be avoided. But should you wish to check for them, you now have that option.
External parameters now work as expected
Also, CPILint now handles external parameters correctly. This means that if, say, a service endpoint is externalized, rules that inspect the endpoint address will now work properly.