/******************************************************************************* * Copyright (c) 2010 Per Kr. Soreide. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Per Kr. Soreide - initial API and implementation *******************************************************************************/ package bndtools.release.api; import aQute.bnd.osgi.Jar; /** * IReleaseParticipant contains methods for extending the release process * * The methods are called in the following order: * 1. preUpdateProjectVersions * 2. preRelease * 3. preJarRelease * 4. postJarRelease * 5. postRelease */ public interface IReleaseParticipant { public enum Scope { PRE_UPDATE_VERSIONS, PRE_RELEASE, PRE_JAR_RELEASE, POST_JAR_RELEASE, POST_RELEASE } /** * Gives a possibility to rank the registered IReleaseParticipants, are set in plugin.xml */ void setRanking(int ranking); /** * @return the ranking */ int getRanking(); /** * Called just before the the '*.bnd' and 'packageinfo' files in the project are updated. * Can be used to override the suggested versions in JarDiff's * @param context * @return if false, the release is canceled and postRelease is called with success = false */ boolean preUpdateProjectVersions(ReleaseContext context); /** * Called just before the build operation * @param context * @return if false, the release is canceled and postRelease is called with success = false */ boolean preRelease(ReleaseContext context); /** * Called after successful build and prior release to the specified RepsoitoryPlugin * @param context * @param jar * @return if false, the release is canceled and postRelease is called with success = false */ boolean preJarRelease(ReleaseContext context, Jar jar); /** * Called after release to the specified RepsoitoryPlugin * @param context * @param jar */ void postJarRelease(ReleaseContext context, Jar jar); /** * Always called at the end of the release * @param context * @param success All Jar's released successfully */ void postRelease(ReleaseContext context, boolean success); }