Commit 578237db authored by Jonathan Doklovic's avatar Jonathan Doklovic

Merge branch 'release/1.0-m3'

parents be0ee97d 5dfabb40
......@@ -4,7 +4,7 @@
<parent>
<groupId>external.atlassian.jgitflow</groupId>
<artifactId>jgitflow-parent</artifactId>
<version>1.0-m2</version>
<version>1.0-m3</version>
</parent>
<artifactId>jgit-flow-core</artifactId>
......
......@@ -10,6 +10,7 @@ import com.atlassian.jgitflow.core.exception.JGitFlowIOException;
import com.atlassian.jgitflow.core.util.GitHelper;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.StoredConfig;
......@@ -73,8 +74,9 @@ public class GitFlowConfiguration
try
{
config.save();
config.load();
}
catch (IOException e)
catch (Exception e)
{
throw new JGitFlowIOException(e);
}
......@@ -93,8 +95,9 @@ public class GitFlowConfiguration
try
{
config.save();
config.load();
}
catch (IOException e)
catch (Exception e)
{
throw new JGitFlowIOException(e);
}
......@@ -184,8 +187,9 @@ public class GitFlowConfiguration
try
{
config.save();
config.load();
}
catch (IOException e)
catch (Exception e)
{
throw new JGitFlowIOException(e);
}
......
......@@ -121,29 +121,26 @@ public class JGitFlowInitCommand implements Callable<JGitFlow>
RevWalk walk = null;
try
{
String currentBranch = repo.getBranch();
//set origin if we need to
if (!Strings.isNullOrEmpty(defaultOriginUrl))
{
StoredConfig gitConfig = git.getRepository().getConfig();
String originUrl = gitConfig.getString(ConfigConstants.CONFIG_REMOTE_SECTION, Constants.DEFAULT_REMOTE_NAME, "url");
String newOriginUrl = defaultOriginUrl;
if (Strings.isNullOrEmpty(originUrl))
if (defaultOriginUrl.startsWith("file://"))
{
String newOriginUrl = defaultOriginUrl;
if (defaultOriginUrl.startsWith("file://"))
{
File originFile = new File(defaultOriginUrl.substring(7));
newOriginUrl = "file://" + originFile.getCanonicalPath();
}
gitConfig.setString(ConfigConstants.CONFIG_REMOTE_SECTION, Constants.DEFAULT_REMOTE_NAME, "url", newOriginUrl);
gitConfig.setString(ConfigConstants.CONFIG_REMOTE_SECTION, Constants.DEFAULT_REMOTE_NAME, "fetch", "+refs/heads/*:refs/remotes/origin/*");
gitConfig.save();
File originFile = new File(defaultOriginUrl.substring(7));
newOriginUrl = "file://" + originFile.getCanonicalPath();
}
gitConfig.setString(ConfigConstants.CONFIG_REMOTE_SECTION, Constants.DEFAULT_REMOTE_NAME, "url", newOriginUrl);
gitConfig.setString(ConfigConstants.CONFIG_REMOTE_SECTION, Constants.DEFAULT_REMOTE_NAME, "fetch", "+refs/heads/*:refs/remotes/origin/*");
gitConfig.save();
gitConfig.load();
git.fetch().setRemote(Constants.DEFAULT_REMOTE_NAME).call();
gitConfig.load();
git.fetch().setRemote(Constants.DEFAULT_REMOTE_NAME).call();
}
}
if (!force && gfConfig.gitFlowIsInitialized())
......@@ -159,7 +156,7 @@ public class JGitFlowInitCommand implements Callable<JGitFlow>
context.setMaster(gfConfig.getMaster());
}
//TODO: we should set an allowFetch flag and do a complete fetch before the local/remote checks if needed.
//if no local master exists, but a remote does, check it out
if (!GitHelper.localBranchExists(git, context.getMaster()) && GitHelper.remoteBranchExists(git, context.getMaster(), reporter))
{
......@@ -188,6 +185,7 @@ public class JGitFlowInitCommand implements Callable<JGitFlow>
throw new SameBranchException("master and develop branches cannot be the same: [" + context.getMaster() + "]");
}
reporter.infoText(SHORT_NAME, "setting develop in config to '" + context.getDevelop() + "'");
gfConfig.setDevelop(context.getDevelop());
//Creation of HEAD
......@@ -219,6 +217,7 @@ public class JGitFlowInitCommand implements Callable<JGitFlow>
refUpdate.link(Constants.R_HEADS + context.getMaster());
git.commit().setMessage("Initial Commit").call();
}
//creation of develop
......@@ -257,6 +256,11 @@ public class JGitFlowInitCommand implements Callable<JGitFlow>
gfConfig.setPrefix(prefixName, context.getPrefix(prefixName));
}
if (!Strings.isNullOrEmpty(currentBranch) && !currentBranch.equals(repo.getBranch()) && (GitHelper.localBranchExists(git, currentBranch) || GitHelper.remoteBranchExists(git, currentBranch, reporter)))
{
git.checkout().setName(currentBranch).call();
}
}
catch (IOException e)
{
......
......@@ -12,6 +12,7 @@ import com.atlassian.jgitflow.core.util.GitHelper;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Ref;
......@@ -85,7 +86,14 @@ public abstract class AbstractBranchCreatingCommand<C, T> extends AbstractGitFlo
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, branchToPush, ConfigConstants.CONFIG_KEY_REMOTE, Constants.DEFAULT_REMOTE_NAME);
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, branchToPush, ConfigConstants.CONFIG_KEY_MERGE, Constants.R_HEADS + branchToPush);
config.save();
try
{
config.load();
}
catch (ConfigInvalidException e)
{
throw new JGitFlowGitAPIException("unable to load config",e);
}
runExtensionCommands(pushExtension.afterPush());
}
}
......
......@@ -94,7 +94,7 @@ public class FeatureFinishCommand extends AbstractBranchMergingCommand<FeatureFi
@Override
public MergeResult call() throws NotInitializedException, JGitFlowGitAPIException, LocalBranchMissingException, JGitFlowIOException, DirtyWorkingTreeException, MergeConflictsNotResolvedException, BranchOutOfDateException, JGitFlowExtensionException, GitAPIException
{
MergeResult mergeResult = null;
MergeResult mergeResult = createEmptyMergeResult();
String prefixedBranchName = runBeforeAndGetPrefixedBranchName(extension.before(), JGitFlowConstants.PREFIXES.FEATURE);
......
......@@ -11,6 +11,7 @@ import com.atlassian.jgitflow.core.extension.impl.EmptyFeatureStartExtension;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.StoredConfig;
......@@ -83,7 +84,7 @@ public class FeaturePublishCommand extends AbstractGitFlowCommand<FeaturePublish
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_REMOTE, Constants.DEFAULT_REMOTE_NAME);
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_MERGE, Constants.R_HEADS + prefixedBranchName);
config.save();
config.load();
//checkout the branch
git.checkout().setName(prefixedBranchName).call();
......@@ -96,6 +97,10 @@ public class FeaturePublishCommand extends AbstractGitFlowCommand<FeaturePublish
{
throw new JGitFlowGitAPIException(e);
}
catch (ConfigInvalidException e)
{
throw new JGitFlowGitAPIException(e);
}
finally
{
reporter.endCommand();
......
......@@ -11,6 +11,7 @@ import com.atlassian.jgitflow.core.extension.impl.EmptyHotfixStartExtension;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.StoredConfig;
......@@ -81,7 +82,7 @@ public class HotfixPublishCommand extends AbstractGitFlowCommand<HotfixPublishCo
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_REMOTE, Constants.DEFAULT_REMOTE_NAME);
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_MERGE, Constants.R_HEADS + prefixedBranchName);
config.save();
config.load();
//checkout the branch
git.checkout().setName(prefixedBranchName).call();
......@@ -94,6 +95,10 @@ public class HotfixPublishCommand extends AbstractGitFlowCommand<HotfixPublishCo
{
throw new JGitFlowGitAPIException(e);
}
catch (ConfigInvalidException e)
{
throw new JGitFlowGitAPIException(e);
}
finally
{
reporter.endCommand();
......
......@@ -111,6 +111,7 @@ public class ReleaseFinishCommand extends AbstractBranchMergingCommand<ReleaseFi
{
doFetchIfNeeded(extension);
ensureLocalBranchesNotBehindRemotes(prefixedBranchName, gfConfig.getMaster(), gfConfig.getDevelop());
//checkout the branch to merge just so we can run any extensions that need to be on this branch
......
......@@ -11,6 +11,7 @@ import com.atlassian.jgitflow.core.extension.impl.EmptyReleaseStartExtension;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ConfigConstants;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.StoredConfig;
......@@ -81,6 +82,7 @@ public class ReleasePublishCommand extends AbstractGitFlowCommand<ReleasePublish
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_REMOTE, Constants.DEFAULT_REMOTE_NAME);
config.setString(ConfigConstants.CONFIG_BRANCH_SECTION, prefixedBranchName, ConfigConstants.CONFIG_KEY_MERGE, Constants.R_HEADS + prefixedBranchName);
config.save();
config.load();
//checkout the branch
git.checkout().setName(prefixedBranchName).call();
......@@ -94,6 +96,10 @@ public class ReleasePublishCommand extends AbstractGitFlowCommand<ReleasePublish
{
throw new JGitFlowGitAPIException(e);
}
catch (ConfigInvalidException e)
{
throw new JGitFlowGitAPIException(e);
}
finally
{
reporter.endCommand();
......
......@@ -7,7 +7,10 @@ import com.atlassian.jgitflow.core.JGitFlowConstants;
import com.atlassian.jgitflow.core.JGitFlowReporter;
import com.atlassian.jgitflow.core.exception.*;
import org.eclipse.jgit.api.CreateBranchCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.revwalk.RevCommit;
......@@ -68,6 +71,23 @@ public class RequirementHelper
*/
public void requireLocalBranchExists(String branch) throws LocalBranchMissingException, JGitFlowGitAPIException
{
if (!GitHelper.localBranchExists(git, branch) && GitHelper.remoteBranchExists(git, branch, reporter))
{
try
{
git.checkout()
.setName(branch)
.setCreateBranch(true)
.setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK)
.setStartPoint(Constants.DEFAULT_REMOTE_NAME + "/" + branch)
.call();
}
catch (GitAPIException e)
{
throw new JGitFlowGitAPIException("error checking out remote branch.", e);
}
}
if (!GitHelper.localBranchExists(git, branch))
{
reporter.errorText(commandName, "localBranchExists() failed: '" + branch + "' does not exist");
......
package ut.com.atlassian.jgitflow.core;
import java.io.File;
import java.util.List;
import com.atlassian.jgitflow.core.InitContext;
import com.atlassian.jgitflow.core.JGitFlow;
......@@ -393,4 +394,36 @@ public class GitFlowInitTest extends BaseGitFlowTest
assertEquals("", flow.getVersionTagPrefix());
}
@Test
public void initWithNoMasterReturnsToCurrentBranch() throws Exception
{
String featureBranch = "feature/my-feature";
Git git = null;
Git remoteGit = null;
File workDir = newDir();
remoteGit = RepoUtil.createRepositoryWithMasterAndDevelop(newDir());
remoteGit.checkout().setName("develop").call();
remoteGit.add().addFilepattern(".").call();
remoteGit.commit().setMessage("initial commit").call();
remoteGit.branchDelete().setBranchNames("master").setForce(true).call();
remoteGit.branchCreate().setName(featureBranch).call();
git = Git.cloneRepository().setDirectory(workDir).setURI("file://" + remoteGit.getRepository().getWorkTree().getPath()).setBranch(featureBranch).setCloneAllBranches(false).call();
assertEquals(featureBranch,git.getRepository().getBranch());
JGitFlowInitCommand initCommand = new JGitFlowInitCommand();
JGitFlow flow = initCommand.setDirectory(git.getRepository().getWorkTree()).call();
//make sure we're STILL on the feature
assertEquals(featureBranch,git.getRepository().getBranch());
}
}
......@@ -3,7 +3,7 @@
<parent>
<artifactId>jgitflow-parent</artifactId>
<groupId>external.atlassian.jgitflow</groupId>
<version>1.0-m2</version>
<version>1.0-m3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -3,7 +3,7 @@
<parent>
<artifactId>jgitflow-parent</artifactId>
<groupId>external.atlassian.jgitflow</groupId>
<version>1.0-m2</version>
<version>1.0-m3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -4,7 +4,7 @@
<parent>
<groupId>external.atlassian.jgitflow</groupId>
<artifactId>jgitflow-parent</artifactId>
<version>1.0-m2</version>
<version>1.0-m3</version>
</parent>
<artifactId>jgitflow-maven-plugin</artifactId>
......
......@@ -28,6 +28,8 @@ import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.jgit.api.errors.GitAPIException;
import static com.google.common.collect.Lists.newArrayList;
/**
* @since version
*/
......@@ -50,7 +52,7 @@ public class DefaultMavenExecutionHelper implements MavenExecutionHelper
public void execute(MavenProject project, MavenSession session) throws MavenExecutorException
{
ReleaseContext ctx = contextProvider.getContext();
String goal = "clean deploy";
if (ctx.isNoDeploy())
......@@ -65,7 +67,7 @@ public class DefaultMavenExecutionHelper implements MavenExecutionHelper
public void execute(MavenProject project, MavenSession session, String goals) throws MavenExecutorException
{
ReleaseContext ctx = contextProvider.getContext();
List<String> argList = new ArrayList<String>();
Properties userProps = session.getUserProperties();
......@@ -99,74 +101,91 @@ public class DefaultMavenExecutionHelper implements MavenExecutionHelper
@Override
public MavenSession reloadReactor(MavenProject rootProject, MavenSession oldSession) throws ReactorReloadException
{
Stack<File> projectFiles = new Stack<File>();
projectFiles.push(rootProject.getFile());
List<MavenProject> reactorProjects = new ArrayList<MavenProject>();
List<File> pomFiles = newArrayList(rootProject.getFile());
try
{
while (!projectFiles.isEmpty())
MavenProject project = null;
//try maven3 first
try
{
File file = (File) projectFiles.pop();
MavenProject project = null;
//try maven3 first
try
if (rootProject.getFile().exists() && rootProject.getFile().canRead())
{
Method getRequestMethod = oldSession.getClass().getMethod("getRequest");
Object mavenExecutionRequest = getRequestMethod.invoke(oldSession);
Method getProjectBuildingRequest = mavenExecutionRequest.getClass().getMethod("getProjectBuildingRequest");
Object pbr = getProjectBuildingRequest.invoke(mavenExecutionRequest);
Object pb = oldSession.getContainer().lookup("org.apache.maven.project.ProjectBuilder");
Class requestClass = Class.forName("org.apache.maven.project.ProjectBuildingRequest");
Method buildMethod = pb.getClass().getMethod("build", File.class, requestClass);
Object result = buildMethod.invoke(pb, file, pbr);
Method getProjectMethod = result.getClass().getMethod("getProject");
getProjectMethod.setAccessible(true);
project = (MavenProject) getProjectMethod.invoke(result);
}
catch (Exception e)
{
// MJF-112: Check that the exception is a result of not having Maven 3
// installed, or a genuine project configuration error
try
{
oldSession.getClass().getMethod("getProjectBuilderConfiguration");
}
catch (NoSuchMethodException e1)
Method buildMethod = pb.getClass().getMethod("build", List.class, boolean.class, requestClass);
List results = (List) buildMethod.invoke(pb, pomFiles, true, pbr);
for (Object result : results)
{
// There is no Maven 2 environment, just report the error
throw e;
Method getProjectMethod = result.getClass().getMethod("getProject");
getProjectMethod.setAccessible(true);
project = (MavenProject) getProjectMethod.invoke(result);
project.setActiveProfiles(rootProject.getActiveProfiles());
reactorProjects.add(project);
}
}
// Fallback to Maven 2 API
project = projectBuilder.build(file, oldSession.getProjectBuilderConfiguration());
}
catch (Exception e)
{
// MJF-112: Check that the exception is a result of not having Maven 3
// installed, or a genuine project configuration error
try
{
oldSession.getClass().getMethod("getProjectBuilderConfiguration");
}
catch (NoSuchMethodException e1)
{
// There is no Maven 2 environment, just report the error
throw e;
}
project.setActiveProfiles(rootProject.getActiveProfiles());
List<String> moduleNames = project.getModules();
Stack<File> projectFiles = new Stack<File>();
projectFiles.push(rootProject.getFile());
for (String moduleName : moduleNames)
while (!projectFiles.isEmpty())
{
//if moduleName is a file treat as explicitly defined pom.xml
File baseFile = new File(file.getParentFile(), moduleName);
if (baseFile.isFile())
File file = (File) projectFiles.pop();
if (!file.exists() || !file.canRead())
{
projectFiles.push(baseFile);
continue;
}
else
// Fallback to Maven 2 API
project = projectBuilder.build(file, oldSession.getProjectBuilderConfiguration());
project.setActiveProfiles(rootProject.getActiveProfiles());
List<String> moduleNames = project.getModules();
for (String moduleName : moduleNames)
{
projectFiles.push(new File(baseFile, File.separator + "pom.xml"));
//if moduleName is a file treat as explicitly defined pom.xml
File baseFile = new File(file.getParentFile(), moduleName);
if (baseFile.isFile())
{
projectFiles.push(baseFile);
}
else
{
projectFiles.push(new File(baseFile, File.separator + "pom.xml"));
}
}
reactorProjects.add(project);
}
reactorProjects.add(project);
}
ReactorManager reactorManager = new ReactorManager(reactorProjects);
MavenSession newSession = new MavenSession(
oldSession.getContainer()
......
......@@ -51,6 +51,13 @@ public abstract class AbstractJGitFlowMojo extends AbstractMojo
@Parameter(defaultValue = "false", property = "enableSshAgent")
protected boolean enableSshAgent = false;
/**
* Whether to allow SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
*
*/
@Parameter( defaultValue = "false", property = "allowSnapshots" )
protected boolean allowSnapshots = false;
@Parameter(defaultValue = "false", property = "allowUntracked")
protected boolean allowUntracked = false;
......
......@@ -67,6 +67,7 @@ public class FeatureFinishMojo extends AbstractJGitFlowMojo
.setDefaultFeatureName(featureName)
.setEnableSshAgent(enableSshAgent)
.setAllowUntracked(allowUntracked)
.setAllowSnapshots(allowSnapshots)
.setPushFeatures(pushFeatures)
.setAllowRemote(isRemoteAllowed())
.setAlwaysUpdateOrigin(alwaysUpdateOrigin)
......
......@@ -45,6 +45,7 @@ public class FeatureStartMojo extends AbstractJGitFlowMojo
.setEnableFeatureVersions(enableFeatureVersions)
.setEnableSshAgent(enableSshAgent)
.setAllowUntracked(allowUntracked)
.setAllowSnapshots(allowSnapshots)
.setPushFeatures(pushFeatures)
.setStartCommit(startCommit)
.setAllowRemote(isRemoteAllowed())
......
......@@ -26,13 +26,6 @@ public class HotfixFinishMojo extends AbstractJGitFlowMojo
@Parameter( defaultValue = "false", property = "autoVersionSubmodules" )
private boolean autoVersionSubmodules = false;
/**
* Whether to allow SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
*
*/
@Parameter( defaultValue = "false", property = "allowSnapshots" )
private boolean allowSnapshots = false;
/**
* Default version to use for new local working copy.
*
......
......@@ -26,13 +26,6 @@ public class HotfixStartMojo extends AbstractJGitFlowMojo
@Parameter( defaultValue = "false", property = "autoVersionSubmodules" )
private boolean autoVersionSubmodules = false;
/**
* Whether to allow SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
*
*/
@Parameter( defaultValue = "false", property = "allowSnapshots" )
private boolean allowSnapshots = false;
/**
* Default version to use when preparing a release
*
......
......@@ -28,21 +28,7 @@ public class ReleaseFinishMojo extends AbstractJGitFlowMojo
*/
@Parameter( defaultValue = "false", property = "autoVersionSubmodules" )
private boolean autoVersionSubmodules = false;
/**
* Whether to allow SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
*
*/
@Parameter( defaultValue = "false", property = "allowSnapshots" )
private boolean allowSnapshots = false;
/**
* Default version to use for new local working copy.
*
*/
@Parameter( property = "developmentVersion", defaultValue = "")
private String developmentVersion = "";
@Parameter( defaultValue = "false", property = "pushReleases" )
private boolean pushReleases = false;
......@@ -100,7 +86,6 @@ public class ReleaseFinishMojo extends AbstractJGitFlowMojo
ReleaseContext ctx = new ReleaseContext(getBasedir());
ctx.setInteractive(getSettings().isInteractiveMode())
.setAutoVersionSubmodules(autoVersionSubmodules)
.setDefaultDevelopmentVersion(developmentVersion)
.setReleaseBranchVersionSuffix(releaseBranchVersionSuffix)
.setPushReleases(pushReleases)
.setKeepBranch(keepBranch)
......
......@@ -26,18 +26,19 @@ public class ReleaseStartMojo extends AbstractJGitFlowMojo
@Parameter(defaultValue = "false", property = "autoVersionSubmodules")
private boolean autoVersionSubmodules = false;
/**
* Whether to allow SNAPSHOT dependencies. Default is to fail when finding any SNAPSHOT.
*/
@Parameter(defaultValue = "false", property = "allowSnapshots")
private boolean allowSnapshots = false;
/**
* Default version to use when preparing a release
*/
@Parameter(property = "releaseVersion", defaultValue = "")
private String releaseVersion = "";
/**
* Default version to use for new local working copy.
*
*/
@Parameter( property = "developmentVersion", defaultValue = "")
private String developmentVersion = "";
@Parameter(property = "releaseBranchVersionSuffix", defaultValue = "")
private String releaseBranchVersionSuffix = "";
......@@ -69,6 +70,7 @@ public class ReleaseStartMojo extends AbstractJGitFlowMojo
ctx.setAutoVersionSubmodules(autoVersionSubmodules)
.setInteractive(getSettings().isInteractiveMode())
.setDefaultReleaseVersion(releaseVersion)
.setDefaultDevelopmentVersion(developmentVersion)
.setReleaseBranchVersionSuffix(releaseBranchVersionSuffix)
.setAllowSnapshots(allowSnapshots)
.setUpdateDependencies(updateDependencies)
......
......@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import com.atlassian.jgitflow.core.JGitFlow;
import com.atlassian.jgitflow.core.JGitFlowConstants;
import com.atlassian.jgitflow.core.exception.JGitFlowException;
import com.atlassian.jgitflow.core.exception.JGitFlowGitAPIException;