2.3.1.1 release notes
2.3.1.1 (reissue of 2.3.1.0 with a critical bug fix)
- Fixed an NPE that would occur when configuring a brand new project for its connection, resulting in a blank IC2 project configuration screen. Sincere apologies for such a heinous oversight!
- Also note that I have already addressed both described shortcomings of the new deploy-before-test feature described below. Next week's build will fix the issue with a push cancelled due to conflict detection and add support for multi-module projects.
2.3.1.0
- Issue 579 - Added a new Apex unit testing configuration option, Illuminated Cloud | Configure Application | Unit Tests and Code Coverage | Unit Tests | Deploy before running unit tests (disabled by default), that, when enabled, attempts to bring the Salesforce organization up to date before starting unit test execution for the requested set of Apex test classes/methods.
The Salesforce organization is updated according to the project type and connection configuration as follows:- Source-tracked orgs are updated using Push Metadata.
- Non-source-tracked orgs that are not configured to use conflict detection or are configured to use conflict detection with dedicated logins are updated using Deploy Modified Metadata.
- Non-source-tracked orgs that are configured to use conflict detection with shared logins — which is incompatible with Deploy Modified Metadata as both mechanisms use the same timestamp comparisons for different purposes — are updated using Deploy All Metadata for all test classes included in the unit test run configuration and their transitive dependencies including not just referenced Apex types but also referenced SObjects/fields, custom labels, Visualforce pages/components, Flows, DataWeave scripts, etc.
Note that there is a known issue when conflicts are detected during the pre-test run push where, if the user chooses to overwrite the server, the deployment will be seen as failed and unit tests will not be executed when the push ignoring conflicts completes. I'll take care of that for the next build.
Also note that this feature does not currently support bringing multi-module projects completely up-to-date before unit test execution. At present if the requested set of tests spans multiple modules, no attempt is made to bring the organization up-to-date before running tests; if all tests are from a single module, only metadata from that module is deployed even if there are out-of-date metadata files in its dependencies. As appropriate, a message is written to the unit test execution output console with whatever actions were taken (or not taken) and why. Depending on end user feedback, I may look at supporting this feature for multiple modules in the future, but trust that it's actually quite complex when the deployment requires multiple chained asynchronous operations followed by a conditionally-executed unit test execution, and my guess is that the current implementation addresses the vast majority of users' needs. - Issue 2557 - Fixed a false positive from the Apex Modifier Agreement code inspection where a property that is both
@AuraEnabled
andstatic
would be incorrectly reported as invalid. Fields with that annotation/modifier combination are still correctly reported as invalid. - Issue 2559 - Fixed an issue with PMD 7.1.0. My guess is that this won't be the last minor fix required to support new PMD 7 builds. The change from PMD 6 to PMD 7 was quite significant, and I'm sure things will continue to settle slightly for the next several minor updates. I'm always trying to stay on top of new builds and any required changes, but if you update to a brand new PMD 7 version and find things to be broken, please report it to me and return to the previous working version until I release an IC2 update that addresses the breaking changes.
- Issue 2560 - Fixed an Apex parser issue with SOQL time literals.
- Issue 2561 - Fixed an error that could occur when pushing or pulling metadata immediately after opening a project.
- Fixed a few issues with Deploy Modified Metadata not properly performing dirty checks for "pseudo-decomposed" metadata types such as custom object translations and territory metadata. If you've found any other issues where this action does not properly detect the out-of-date/up-to-date state of local files, please report them so that I can ensure that it's as reliable and accurate as possible.
- Implemented several Go To Related improvements for cross-metadata type relationships:
- SObject fields in OST stub classes are now properly cross-correlated with the corresponding XML metadata files/elements.
- Flow interview OST stub classes are now properly cross-correlated with the corresponding XML metadata files.
- DataWeave script OST stub classes are now properly cross-correlated with the corresponding DataWeave script files.
- Added inspection suppression for Aura JavaScript source files where the standard component/event/helper parameters would be flagged as unused even though they're required and the top-level
({...});
expression would be flagged as a bad expression statement. - Implemented a few fixes for "Slow operations are prohibited on EDT" messages in
idea.log
. I have another set of fixes on a separate branch that seems to address the vast majority of the remaining instances of this noisy logged message, but those changes require significantly more testing and will be included in a future build once I feel confident they aren't causing other issues. - Other related fixes and improvements.