blob: e2f347053299fab566f33dc7c46895e4e5235539 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008-2010 Sonatype, Inc.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Sonatype, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.m2e.core.project.configurator;
import java.util.List;
import java.util.Map;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
/**
* LifecycleMapping
*
* @author igor
* @noimplement subclass AbstractLifecycleMapping instead
*/
public interface ILifecycleMapping {
String getId();
String getName();
/**
* Configure Eclipse workspace project according to Maven build project configuration.
*/
void configure(ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException;
/**
* Undo any Eclipse project configuration done during previous call(s) to
* {@link #configure(ProjectConfigurationRequest, IProgressMonitor)}
*/
void unconfigure(ProjectConfigurationRequest request, IProgressMonitor monitor) throws CoreException;
/**
* Returns map of AbstractBuildParticipants by MojoExecutionKey that need to be executed during Eclipse workspace
* build. Map can be empty but cannot be null.
*/
Map<MojoExecutionKey, List<AbstractBuildParticipant>> getBuildParticipants(IMavenProjectFacade project,
IProgressMonitor monitor) throws CoreException;
//TODO Return Set instead of List
List<AbstractProjectConfigurator> getProjectConfigurators(IMavenProjectFacade project, IProgressMonitor monitor)
throws CoreException;
}