class AbstractMavenPluginDescriptorSourcedParametersValidator extends AbstractMavenPluginParametersValidator {

    // plugin author can provide @Parameter( property = "session" ) in this case property will always evaluate
    // so, we need ignore those

    // source org.apache.maven.plugin.PluginParameterExpressionEvaluator
    private static final List<String> IGNORED_PROPERTY_VALUES = Arrays.asList(
            "basedir",
            "executedProject",
            "localRepository",
            "mojo",
            "mojoExecution",
            "plugin",
            "project",
            "reactorProjects",
            "session",
            "settings");

    private static final List<String> IGNORED_PROPERTY_PREFIX =
            Arrays.asList("mojo.", "pom.", "plugin.", "project.", "session.", "settings.");

    protected AbstractMavenPluginDescriptorSourcedParametersValidator(PluginValidationManager pluginValidationManager) {
        super(pluginValidationManager);
    }

    @Override
    protected boolean isIgnoredProperty(String strValue) {<FILL_FUNCTION_BODY>}
}

        if (!strValue.startsWith("${")) {
            return false;
        }

        String propertyName = strValue.replace("${", "").replace("}", "");

        if (IGNORED_PROPERTY_VALUES.contains(propertyName)) {
            return true;
        }

        return IGNORED_PROPERTY_PREFIX.stream().anyMatch(propertyName::startsWith);
    
<methods>public final void validate(org.apache.maven.execution.MavenSession, org.apache.maven.plugin.descriptor.MojoDescriptor, Class<?>, org.codehaus.plexus.configuration.PlexusConfiguration, org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator) <variables>protected final non-sealed org.apache.maven.plugin.PluginValidationManager pluginValidationManager