All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.marvelution.maven.components.migration.manager.MigrationManager Maven / Gradle / Ivy

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;

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;

/**
 * Migration Manager component interface
 * 
 * @author Mark Rekveld
 */
public interface MigrationManager {

	/**
	 * The Plexus role.
	 */
	String ROLE = MigrationManager.class.getName();

	/**
	 * Prepare a project for Migration
	 * 
	 * @param descriptor the configuration to pass to the preparation steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @throws MigrationExecutionException in case of exceptions during prepare phases
	 * @throws MigrationFailureException in case of failures during prepare phases
	 */
	void prepare(MigrationDescriptor descriptor, MigrationEnvironment environment) throws MigrationExecutionException,
					MigrationFailureException;

	/**
	 * Prepare a project for Migration
	 * 
	 * @param descriptor the configuration to pass to the preparation steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @param dryRun do not commit any changes to the file system or SCM
	 * @param resume resume a previous migration, if the properties file exists
	 * @throws MigrationExecutionException in case of exceptions during prepare phases
	 * @throws MigrationFailureException in case of failures during prepare phases
	 */
	void prepare(MigrationDescriptor descriptor, MigrationEnvironment environment, boolean dryRun, boolean resume)
					throws MigrationExecutionException, MigrationFailureException;

	/**
	 * Perform the Migration on a Project
	 * 
	 * @param descriptor the configuration to pass to the performing steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @throws MigrationExecutionException in case of exceptions during perform phases
	 * @throws MigrationFailureException in case of failures during perform phases
	 */
	void perform(MigrationDescriptor descriptor, MigrationEnvironment environment) throws MigrationExecutionException,
					MigrationFailureException;

	/**
	 * Perform the Migration on a Project
	 * 
	 * @param descriptor the configuration to pass to the performing steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @param clean indicator to clean or not after migration is done
	 * @throws MigrationExecutionException in case of exceptions during perform phases
	 * @throws MigrationFailureException in case of failures during perform phases
	 */
	void perform(MigrationDescriptor descriptor, MigrationEnvironment environment, boolean clean)
					throws MigrationExecutionException, MigrationFailureException;

	/**
	 * Roll-back the Migration of a Project
	 * 
	 * @param descriptor the configuration to pass to the roll-back steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @throws MigrationExecutionException in case of exceptions during roll-back phases
	 * @throws MigrationFailureException in case of failures during roll-back phases
	 */
	void rollback(MigrationDescriptor descriptor, MigrationEnvironment environment) throws MigrationExecutionException,
					MigrationFailureException;

	/**
	 * Clean-up after project is Migrated
	 * 
	 * @param descriptor the configuration to pass to the clean-up steps
	 * @param environment settings, maven-home, java-home, etc. to use during migration.
	 * @throws MigrationExecutionException in case of exceptions during clean phases
	 * @throws MigrationFailureException in case of failures during clean phases
	 */
	void clean(MigrationDescriptor descriptor, MigrationEnvironment environment) throws MigrationExecutionException,
					MigrationFailureException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy