com.marvelution.maven.components.migration.manager.phases.MigrationPhase Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of maven-migration-manager Show documentation
Show all versions of maven-migration-manager Show documentation
Maven 2.x Plexus Migration Manager Component used by the maven-migrator-plugin
The newest version!
/*
* Licensed to Marvelution under one or more contributor license
* agreements. See the NOTICE file distributed with this work
* for additional information regarding copyright ownership.
* Marvelution licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package com.marvelution.maven.components.migration.manager.phases;
import com.marvelution.maven.components.migration.manager.MigrationResult;
import com.marvelution.maven.components.migration.manager.configuration.MigrationDescriptor;
import com.marvelution.maven.components.migration.manager.environment.MigrationEnvironment;
import com.marvelution.maven.components.migration.manager.exception.MigrationExecutionException;
import com.marvelution.maven.components.migration.manager.exception.MigrationFailureException;
/**
* A phase for the Migration cycle
*
* @author Mark Rekveld
*/
public interface MigrationPhase {
/**
* Plexus ROLE
*/
String ROLE = MigrationPhase.class.getName();
/**
* Execute the Phase
*
* @param descriptor the configuration to use
* @param environment the environmental configuration to use, such as Maven Settings, Maven home, Java home, etc.
* @return {@link MigrationResult}
* @throws MigrationExecutionException in case of exceptions during the execution
* @throws MigrationFailureException in case of failures during the execution
*/
MigrationResult execute(final MigrationDescriptor descriptor, final MigrationEnvironment environment)
throws MigrationExecutionException, MigrationFailureException;
/**
* Simulate the execution of the Phase. No changes are made to the current project.
*
* @param descriptor the configuration to use
* @param environment the environmental configuration to use, such as Maven Settings, Maven home, Java home, etc.
* @return {@link MigrationResult}
* @throws MigrationExecutionException in case of exceptions during the execution
* @throws MigrationFailureException in case of failures during the execution
*/
MigrationResult simulate(final MigrationDescriptor descriptor, final MigrationEnvironment environment)
throws MigrationExecutionException, MigrationFailureException;
/**
* Clean up after the phase
*
* @param descriptor the configuration to use
* @param environment the environmental configuration to use, such as Maven Settings, Maven home, Java home, etc.
* @return {@link MigrationResult}
*/
MigrationResult clean(final MigrationDescriptor descriptor, final MigrationEnvironment environment);
}