/** * Helper to check if a Eclipse plugin unconfiguration is needed. This usually happens if the * maven plugin has been unconfigured. * * @param curMavenProjectFacade the current {@code IMavenProjectFacade}. * @param oldMavenProjectFacade the previous {@code IMavenProjectFacade}. * @return {@code true} if the Eclipse plugin configuration needs to be deleted. * @throws CoreException */ private boolean checkUnconfigurationRequired( IProgressMonitor monitor, final IMavenProjectFacade curMavenProjectFacade, final IMavenProjectFacade oldMavenProjectFacade) throws CoreException { Preconditions.checkNotNull(curMavenProjectFacade); if (oldMavenProjectFacade == null) { return false; } final MavenPluginWrapper newMavenPlugin = this.getMavenPlugin(monitor, curMavenProjectFacade); final MavenPluginWrapper oldMavenPlugin = this.getMavenPlugin(monitor, oldMavenProjectFacade); if (!newMavenPlugin.isPluginConfigured() && oldMavenPlugin.isPluginConfigured()) { return true; } return false; }
private MavenPluginWrapper getMavenPlugin( IProgressMonitor monitor, final IMavenProjectFacade projectFacade) throws CoreException { return MavenPluginWrapper.newInstance( monitor, getMavenPluginGroupId(), getMavenPluginArtifactId(), getMavenPluginGoal(), projectFacade); }
@Override public void mavenProjectChanged( final MavenProjectChangedEvent mavenProjectChangedEvent, final IProgressMonitor monitor) throws CoreException { final IMavenProjectFacade mavenProjectFacade = mavenProjectChangedEvent.getMavenProject(); if (mavenProjectFacade != null) { final MavenProject mavenProject = mavenProjectFacade.getMavenProject(); if (mavenProject == null) { return; } final MavenPluginWrapper pluginWrapper = this.getMavenPlugin(monitor, mavenProjectFacade); final IProject project = mavenProjectFacade.getProject(); if (this.checkUnconfigurationRequired( monitor, mavenProjectFacade, mavenProjectChangedEvent.getOldMavenProject())) { this.unconfigureEclipsePlugin(project, monitor); return; } if (pluginWrapper.isPluginConfigured()) { // only call handler if maven plugin is configured or found. // we need a session. MavenExecutionRequest request = maven.createExecutionRequest(monitor); MavenSession session = maven.createSession(request, mavenProject); this.handleProjectConfigurationChange( session, mavenProjectFacade, project, monitor, pluginWrapper); } else { // TODO: redirect to eclipse logger. // this.console.logMessage(String.format( // "Will not configure the Eclipse Plugin for Maven Plugin [%s:%s]," // + // "(Could not find maven plugin instance or configuration in pom)", // this.getMavenPluginGroupId(), // this.getMavenPluginArtifactId())); } } super.mavenProjectChanged(mavenProjectChangedEvent, monitor); }
@Override public void configure(final ProjectConfigurationRequest request, final IProgressMonitor monitor) throws CoreException { final MavenProject mavenProject = request.getMavenProject(); if (mavenProject == null) { return; } final MavenPluginWrapper pluginWrapper = this.getMavenPlugin(monitor, request.getMavenProjectFacade()); final IProject project = request.getProject(); if (!pluginWrapper.isPluginConfigured()) { return; } this.handleProjectConfigurationChange( request.getMavenSession(), request.getMavenProjectFacade(), project, monitor, pluginWrapper); }