Set proper File Origins for bundled plugins #1121
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Set proper
FileOrigin
s for bundled plugins.Bundled plugin classes have been incorrectly marked as
FileOrigin
where they should have been more specifically: as an instance ofIdeFileOrigin
. This resolves multiple tricky corner-cases where class origins are not reported correctly as a part of the Platform.This is an extension of #1120.
BundledPlugin
as aFileOrigin
. This corresponds to an origin of classes that belong to the same bundled plugin. This helps to discriminate between class origins in the verification rules, especially those that detect Platform invocations from Plugin invocations.lib
directories. These have been originally set toSingleJar
orSingleLib
. Treating regular plugins and bundled plugins as the same source might not be enough in some scenarios.BundledPluginClassFinder
that loads bundled plugin classes with correct origins.MainClassesLocator
that has been hardwired to JARs and libs.PluginDetailsProviderImpl
.DefaultPluginDetailsProvider
that supports bundled plugins with corresponding file origin resolution.PluginDetailsProviderImpl
references withDefaultPluginDetailsProvider
as a new bundle-supporting mechanism.MP-6729