Backend Release 2022-01-11
- Copado now supports Vlocity version 1.14.16.
- Copado now supports PMD version 6.40. This new version of PMD includes the following changes:
- Updated Apex support: The Apex language support has been bumped to version 54.0 (Spring ‘22).
- New rules:
- EagerlyLoadedDescribeSObjectResult. This rule finds DescribeSObjectResults which could have been loaded eagerly via SObjectType.getDescribe().
- Modified rules:
- ApexUnitTestClassShouldHaveAsserts has a new property additionalAssertMethodPattern. When specified the pattern is evaluated against each invoked method name to determine whether it represents a test assertion in addition to the standard names.
- ApexDoc has a new property reportMissingDescription. If set to false (default is true if unspecified) doesn’t report an issue if the @description tag is missing. This is consistent with the ApexDoc dialect supported by derivatives such as SfApexDoc and also with analogous documentation tools for other languages, e.g., JavaDoc, ESDoc/JSDoc, etc.
- ApexCRUDViolation has new properties that allow the specification of regular-expression-based patterns for additional methods that should be considered valid for pre-CRUD authorization beyond those offered by the system Apex checks and ESAPI, e.g., sirono-common’s AuthorizationUtil class. Two new properties have been added per-CRUD operation, one to specify the naming pattern for a method that authorizes that operation and another to specify the argument passed to that method that contains the SObjectType instance of the type being authorized.
- EmptyStatementBlock has two new properties:
- Setting reportEmptyPrivateNoArgConstructor to false ignores empty private no-arg constructors that are commonly used in singleton pattern implementations and utility classes in support of prescribed best practices.
- Setting reportEmptyVirtualMethod to false ignores empty virtual methods that are commonly used in abstract base classes as default no-op implementations when derived classes typically only override a subset of virtual methods.
- By default, both properties are true to not change the default behaviour of this rule.
- EmptyCatchBlock has two new properties modeled after the analogous Java rule:
- The allowCommentedBlocks property, when set to true (defaults to false), ignores empty blocks containing comments.
- The allowExceptionNameRegex property is a regular expression for exception variable names for which empty catch blocks should be ignored by this rule. For example, using the default property value of ^(ignored|expected)$, the following empty catch blocks will not be reported:
- OneDeclarationPerLine has a new property reportInForLoopInitializer. If set to false (default is true if unspecified), it doesn’t report an issue for multiple declarations in a for loop’s initializer section. This supports the common idiom of one declaration for the loop variable and another for the loop bounds condition.
- When opening the commit page in the user story, you will no longer receive the following error message: "Error invoking Salesforce REST API: javax.net.ssl.SSLException: Connection reset" (KI-00512).