| package org.apache.maven.shared.release.config; |
| |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF 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. |
| */ |
| |
| import java.util.List; |
| |
| import org.apache.maven.model.Scm; |
| |
| /** |
| * |
| * @author Robert Scholte |
| */ |
| public interface ReleaseDescriptor |
| { |
| /** |
| * Get if updateDependencies is false, dependencies version won't be updated to the next development version. |
| * |
| * @return boolean |
| */ |
| boolean isUpdateDependencies(); |
| |
| /** |
| * Get whether to use the release profile that adds sources and javadocs to the released artifact, if appropriate. |
| * If set to true, this will set the property "performRelease" to true. |
| * |
| * @return boolean |
| */ |
| boolean isUseReleaseProfile(); |
| |
| /** |
| * Get whether to use the parent pom version for submodule versions. |
| * |
| * @return boolean |
| */ |
| boolean isAutoVersionSubmodules(); |
| |
| /** |
| * Get whether a SNAPSHOT of the release plugin is allowed. |
| * |
| * @return boolean |
| */ |
| boolean isSnapshotReleasePluginAllowed(); |
| |
| /** |
| * Get the commits must be done by modules or not. Set it to true in case of flat directory structure. |
| * |
| * @return boolean |
| */ |
| boolean isCommitByProject(); |
| |
| /** |
| * Get whether to create a branch instead of do a release. |
| * |
| * @return boolean |
| */ |
| boolean isBranchCreation(); |
| |
| /** |
| * Get whether to update branch POM versions. |
| * |
| * @return boolean |
| */ |
| boolean isUpdateBranchVersions(); |
| |
| /** |
| * Get whether to update working copy POM versions. |
| * |
| * @return boolean |
| */ |
| boolean isUpdateWorkingCopyVersions(); |
| |
| /** |
| * Get whether to suppress a commit of changes to the working copy before a tag or branch is created. |
| * |
| * @return boolean |
| */ |
| boolean isSuppressCommitBeforeTagOrBranch(); |
| |
| /** |
| * Get should timestamped SNAPSHOT dependencies be allowed? Default is to fail when any SNAPSHOT dependency is |
| * found. |
| * |
| * @return boolean |
| */ |
| boolean isAllowTimestampedSnapshots(); |
| |
| /** |
| * Get whether to update branch versions to SNAPSHOT. |
| * |
| * @return boolean |
| */ |
| boolean isUpdateVersionsToSnapshot(); |
| |
| /** |
| * Get nOTE : currently only implemented with svn scm. Enable a workaround to prevent issue due to svn client > |
| * 1.5.0 (http://jira.codehaus.org/browse/SCM-406). |
| * |
| * @return boolean |
| */ |
| boolean isRemoteTagging(); |
| |
| /** |
| * Get if the scm provider should use local checkouts via file://${basedir} instead of doing a clean checkout over |
| * the network. This is very helpful for releasing large projects! |
| * |
| * @return boolean |
| */ |
| boolean isLocalCheckout(); |
| |
| /** |
| * Get should distributed changes be pushed to the central repository? For many distributed SCMs like Git, a change |
| * like a commit is only stored in your local copy of the repository. Pushing the change allows your to more easily |
| * share it with other users. |
| * |
| * @return boolean |
| */ |
| boolean isPushChanges(); |
| |
| /** |
| * Get default version to use for new working copy. |
| * |
| * Some SCMs may require a Work Item or a Task to allow the |
| * changes to be pushed or delivered. |
| * This field allows you to specify that Work Item |
| * or Task. It is optional, and only relevant if pushChanges is true. |
| * |
| * @return String |
| */ |
| String getWorkItem(); |
| |
| /** |
| * Get default version to use for new working copy. |
| * |
| * @return String |
| */ |
| String getDefaultDevelopmentVersion(); |
| |
| /** |
| * Get relative path of the project returned by the checkout command. |
| * |
| * @return String |
| */ |
| String getScmRelativePathProjectDirectory(); |
| |
| /** |
| * Get the directory where the tag will be checked out. |
| * |
| * @return String |
| */ |
| String getCheckoutDirectory(); |
| |
| /** |
| * Get the goals to execute in perform phase for the release. |
| * |
| * @return String |
| */ |
| String getPerformGoals(); |
| |
| /** |
| * Get default version to use for the tagged release or the new branch. |
| * |
| * @return String |
| */ |
| String getDefaultReleaseVersion(); |
| |
| /** |
| * Get nOTE : currently only implemented with svn scm. It contains the revision of the committed released pom to |
| * remotely tag the source code with this revision. |
| * |
| * @return String |
| */ |
| String getScmReleasedPomRevision(); |
| |
| /** |
| * Get whether to add the model schema to the top of the rewritten POM if it wasn't there already. If |
| * <code>false</code> then the root element will remain untouched. |
| * |
| * @return boolean |
| */ |
| boolean isAddSchema(); |
| |
| /** |
| * Get whether to generate release POMs. |
| * |
| * @return boolean |
| */ |
| boolean isGenerateReleasePoms(); |
| |
| /** |
| * Get whether the release process is interactive and the release manager should be prompted to confirm values, or |
| * whether the defaults are used regardless. |
| * |
| * @return boolean |
| */ |
| boolean isInteractive(); |
| |
| /** |
| * Get whether to use edit mode when making SCM modifications. This setting is disregarded if the SCM does not |
| * support edit mode, or if edit mode is compulsory for the given SCM. |
| * |
| * @return boolean |
| */ |
| boolean isScmUseEditMode(); |
| |
| /** |
| * |
| * @return list of profiles to activate |
| */ |
| List<String> getActivateProfiles(); |
| |
| /** |
| * Get the last completed phase. |
| * |
| * @return String |
| */ |
| String getCompletedPhase(); |
| |
| /** |
| * Method getCheckModificationExcludes. |
| * |
| * @return List |
| */ |
| List<String> getCheckModificationExcludes(); |
| |
| /** |
| * Get additional arguments to pass to any executed Maven process. |
| * |
| * @return String |
| */ |
| String getAdditionalArguments(); |
| |
| /** |
| * Get the goals to execute in preparation for the release. |
| * |
| * @return String |
| */ |
| String getPreparationGoals(); |
| |
| /** |
| * Get the goals to execute in on completion of preparation for the release. |
| * |
| * @return String |
| */ |
| String getCompletionGoals(); |
| |
| /** |
| * Get the file name of the POM to pass to any executed Maven process. |
| * |
| * @return String |
| */ |
| String getPomFileName(); |
| |
| /** |
| * Get the prefix of SCM modification messages. |
| * |
| * @return String |
| */ |
| String getScmCommentPrefix(); |
| |
| /** |
| * Get pass phrase for the private key. |
| * |
| * @return String |
| */ |
| String getScmPrivateKeyPassPhrase(); |
| |
| /** |
| * Get the password for the user interacting with the scm. |
| * |
| * @return String |
| */ |
| String getScmPassword(); |
| |
| /** |
| * Get private key for an SSH based SCM repository. |
| * |
| * @return String |
| */ |
| String getScmPrivateKey(); |
| |
| /** |
| * Get tag or branch name: the identifier for the tag/branch. Example: maven-release-plugin-2.0. |
| * |
| * @return String |
| */ |
| String getScmReleaseLabel(); |
| |
| /** |
| * Get where you are going to put your tagged sources Example https://svn.apache.org/repos/asf/maven/plugins/tags. |
| * |
| * @return String |
| */ |
| String getScmTagBase(); |
| |
| /** |
| * Get where you are going to put your branched sources Example |
| * https://svn.apache.org/repos/asf/maven/plugins/branches. |
| * |
| * @return String |
| */ |
| String getScmBranchBase(); |
| |
| /** |
| * Get the id can be used to get the credentials by the server-id from the settings.xml. |
| * |
| * @return String |
| */ |
| String getScmId(); |
| |
| /** |
| * Get this is a MavenSCM of where you're going to get the sources to make the release with. Example: |
| * scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-release-plugin. |
| * |
| * @return String |
| */ |
| String getScmSourceUrl(); |
| |
| /** |
| * Get the user name to interact with the scm. |
| * |
| * @return String |
| */ |
| String getScmUsername(); |
| |
| /** |
| * Get wait the specified number of seconds before creating a tag. |
| * |
| * @return int |
| */ |
| int getWaitBeforeTagging(); |
| |
| /** |
| * Get the directory where the release is performed. |
| * |
| * @return String |
| */ |
| String getWorkingDirectory(); |
| |
| /** |
| * Get specifies the format for generating a tag name. Property expansion is used with the optional prefix of |
| * project, where properties are delimited with @{ and }. |
| * |
| * @return String |
| */ |
| String getScmTagNameFormat(); |
| |
| /** |
| * Get the role-hint for the NamingPolicy implementation used to calculate the project branch and tag names. |
| * |
| * @return String |
| */ |
| String getProjectNamingPolicyId(); |
| |
| /** |
| * Get the role-hint for the VersionPolicy implementation used to calculate the project versions. |
| * |
| * @return String |
| */ |
| String getProjectVersionPolicyId(); |
| |
| /** |
| * Get the role-hint for the release Strategy implementation. |
| * |
| * @return String |
| */ |
| String getReleaseStrategyId(); |
| |
| /** |
| * Retrieve the original version for the resolved snapshot dependency. |
| * |
| */ |
| String getDependencyOriginalVersion( String artifactKey ); |
| |
| /** |
| * Retrieve the release version for the resolved snapshot dependency. |
| * |
| */ |
| String getDependencyReleaseVersion( String artifactKey ); |
| |
| /** |
| * Retrieve the release version for the resolved snapshot dependency. |
| * |
| */ |
| String getDependencyDevelopmentVersion( String artifactKey ); |
| |
| |
| String getProjectOriginalVersion( String projectKey ); |
| |
| String getProjectDevelopmentVersion( String projectKey ); |
| |
| String getProjectReleaseVersion( String key ); |
| |
| /** |
| * Method getOriginalScmInfo. |
| * |
| * @return Map |
| */ |
| Scm getOriginalScmInfo( String projectKey ); |
| |
| // Modifiable |
| void addDependencyOriginalVersion( String versionlessKey, String string ); |
| |
| void addDependencyReleaseVersion( String versionlessKey, String version ); |
| |
| void addDependencyDevelopmentVersion( String versionlessKey, String version ); |
| |
| void addReleaseVersion( String projectId, String nextVersion ); |
| |
| void addDevelopmentVersion( String projectId, String nextVersion ); |
| |
| void setScmReleaseLabel( String tag ); |
| |
| void setScmReleasedPomRevision( String scmRevision ); |
| |
| void setScmRelativePathProjectDirectory( String scmRelativePathProjectDirectory ); |
| |
| void setScmSourceUrl( String scmUrl ); |
| |
| |
| } |