mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 17:56:17 +01:00
cleanup outdated jaxb annotations
This commit is contained in:
@@ -21,216 +21,59 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Changeset information by line for a given file.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.8
|
||||
*/
|
||||
@XmlRootElement(name = "blame-result")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class BlameResult implements Serializable, Iterable<BlameLine>
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
public class BlameResult implements Serializable, Iterable<BlameLine> {
|
||||
|
||||
/** Field description */
|
||||
private static final long serialVersionUID = -8606237881465520606L;
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
private List<BlameLine> blameLines;
|
||||
private int total;
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*/
|
||||
public BlameResult() {}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param blameLines
|
||||
*/
|
||||
public BlameResult(List<BlameLine> blameLines)
|
||||
{
|
||||
public BlameResult(List<BlameLine> blameLines) {
|
||||
this.blameLines = blameLines;
|
||||
this.total = blameLines.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param total
|
||||
* @param blameLines
|
||||
*/
|
||||
public BlameResult(int total, List<BlameLine> blameLines)
|
||||
{
|
||||
public BlameResult(int total, List<BlameLine> blameLines) {
|
||||
this.total = total;
|
||||
this.blameLines = blameLines;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final BlameResult other = (BlameResult) obj;
|
||||
|
||||
return Objects.equal(total, other.total)
|
||||
&& Objects.equal(blameLines, other.blameLines);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(total, blameLines);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*
|
||||
* @since 1.17
|
||||
*/
|
||||
@Override
|
||||
public Iterator<BlameLine> iterator()
|
||||
{
|
||||
public Iterator<BlameLine> iterator() {
|
||||
return getBlameLines().iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("total", total)
|
||||
.add("blameLines", blameLines)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<BlameLine> getBlameLines()
|
||||
{
|
||||
if ( blameLines == null ){
|
||||
public List<BlameLine> getBlameLines() {
|
||||
if (blameLines == null) {
|
||||
blameLines = Lists.newArrayList();
|
||||
}
|
||||
return blameLines;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param i
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public BlameLine getLine(int i)
|
||||
{
|
||||
public BlameLine getLine(int i) {
|
||||
return blameLines.get(i);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getTotal()
|
||||
{
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param blameLines
|
||||
*/
|
||||
public void setBlameLines(List<BlameLine> blameLines)
|
||||
{
|
||||
this.blameLines = blameLines;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param total
|
||||
*/
|
||||
public void setTotal(int total)
|
||||
{
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "blameline")
|
||||
@XmlElementWrapper(name = "blamelines")
|
||||
private List<BlameLine> blameLines;
|
||||
|
||||
/** Field description */
|
||||
private int total;
|
||||
}
|
||||
|
||||
@@ -21,166 +21,54 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Represents all branches of a repository.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.18
|
||||
*/
|
||||
@XmlRootElement(name="branches")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public final class Branches implements Iterable<Branch>
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Setter
|
||||
public final class Branches implements Iterable<Branch> {
|
||||
|
||||
/**
|
||||
* Constructs a new instance of branches.
|
||||
* This constructor should only be called from JAXB.
|
||||
*
|
||||
*/
|
||||
public Branches() {}
|
||||
private List<Branch> branches;
|
||||
|
||||
/**
|
||||
* Constructs a new instance of branches.
|
||||
*
|
||||
*
|
||||
* @param branches list of branches.
|
||||
*/
|
||||
public Branches(Branch... branches)
|
||||
{
|
||||
public Branches() {
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public Branches(Branch... branches) {
|
||||
this.branches = Lists.newArrayList(branches);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new instance of branches.
|
||||
*
|
||||
*
|
||||
* @param branches list of branches.
|
||||
*/
|
||||
public Branches(List<Branch> branches)
|
||||
{
|
||||
public Branches(List<Branch> branches) {
|
||||
this.branches = branches;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final Branches other = (Branches) obj;
|
||||
|
||||
return Objects.equal(branches, other.branches);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(branches);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Branch> iterator()
|
||||
{
|
||||
public Iterator<Branch> iterator() {
|
||||
return getBranches().iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("branches", branches)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns all branches of a repository.
|
||||
*
|
||||
*
|
||||
* @return all branches
|
||||
*/
|
||||
public List<Branch> getBranches()
|
||||
{
|
||||
if (branches == null)
|
||||
{
|
||||
public List<Branch> getBranches() {
|
||||
if (branches == null) {
|
||||
branches = Lists.newArrayList();
|
||||
}
|
||||
|
||||
return branches;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Sets all branches.
|
||||
*
|
||||
*
|
||||
* @param branches branches
|
||||
*/
|
||||
public void setBranches(List<Branch> branches)
|
||||
{
|
||||
this.branches = branches;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** branches */
|
||||
@XmlElement(name="branch")
|
||||
private List<Branch> branches;
|
||||
}
|
||||
|
||||
@@ -21,28 +21,16 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.5
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlRootElement(name = "browser-result")
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
public class BrowserResult implements Serializable {
|
||||
|
||||
private String revision;
|
||||
@@ -52,6 +40,8 @@ public class BrowserResult implements Serializable {
|
||||
public BrowserResult() {
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public BrowserResult(String revision, FileObject file) {
|
||||
this(revision, revision, file);
|
||||
}
|
||||
@@ -73,36 +63,4 @@ public class BrowserResult implements Serializable {
|
||||
public FileObject getFile() {
|
||||
return file;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final BrowserResult other = (BrowserResult) obj;
|
||||
|
||||
return Objects.equal(revision, other.revision)
|
||||
&& Objects.equal(file, other.file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hashCode(revision, file);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("revision", revision)
|
||||
.add("files", file)
|
||||
.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -21,30 +21,25 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import sonia.scm.BasicPropertiesAware;
|
||||
import sonia.scm.ModelObject;
|
||||
import sonia.scm.util.Util;
|
||||
import sonia.scm.util.ValidationUtil;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* Represents a changeset/commit of a repository.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "changeset")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@EqualsAndHashCode
|
||||
public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
|
||||
private static final long serialVersionUID = -8373308448928993039L;
|
||||
@@ -91,8 +86,7 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
this(id, date, author, null);
|
||||
}
|
||||
|
||||
public Changeset(String id, Long date, Person author, String description)
|
||||
{
|
||||
public Changeset(String id, Long date, Person author, String description) {
|
||||
this.id = id;
|
||||
this.date = date;
|
||||
this.author = author;
|
||||
@@ -100,66 +94,18 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Changeset other = (Changeset) obj;
|
||||
|
||||
//J-
|
||||
return Objects.equal(id, other.id)
|
||||
&& Objects.equal(date, other.date)
|
||||
&& Objects.equal(author, other.author)
|
||||
&& Objects.equal(description, other.description)
|
||||
&& Objects.equal(parents, other.parents)
|
||||
&& Objects.equal(tags, other.tags)
|
||||
&& Objects.equal(branches, other.branches)
|
||||
&& Objects.equal(properties, other.properties);
|
||||
//J+
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(id, date, author, description, parents, tags,
|
||||
branches, properties);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
public String toString() {
|
||||
StringBuilder out = new StringBuilder("changeset: ");
|
||||
|
||||
out.append(id).append("\n");
|
||||
|
||||
if (parents != null)
|
||||
{
|
||||
if (parents != null) {
|
||||
out.append("parents: ").append(Util.toString(parents)).append("\n");
|
||||
}
|
||||
|
||||
out.append("author: ").append(author).append("\n");
|
||||
|
||||
if (date != null)
|
||||
{
|
||||
if (date != null) {
|
||||
out.append("date: ").append(Util.formatDate(new Date(date))).append("\n");
|
||||
}
|
||||
|
||||
@@ -170,7 +116,6 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a timestamp of the creation date of the {@link Changeset}.
|
||||
*
|
||||
@@ -185,11 +130,9 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
this.setDate(timestamp);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the author of the changeset.
|
||||
*
|
||||
*
|
||||
* @return author of the changeset
|
||||
*/
|
||||
public Person getAuthor() {
|
||||
@@ -201,13 +144,10 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
* only related to one branch, but in the case of receive hooks it is possible
|
||||
* that a changeset is related to more than a branch.
|
||||
*
|
||||
*
|
||||
* @return branches of the changeset
|
||||
*/
|
||||
public List<String> getBranches()
|
||||
{
|
||||
if (branches == null)
|
||||
{
|
||||
public List<String> getBranches() {
|
||||
if (branches == null) {
|
||||
branches = new ArrayList<String>();
|
||||
}
|
||||
|
||||
@@ -217,29 +157,24 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
/**
|
||||
* Returns the creation date of the changeset.
|
||||
*
|
||||
*
|
||||
* @return date of the changeset
|
||||
*/
|
||||
public Long getDate()
|
||||
{
|
||||
public Long getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the description (commit message) of the changeset.
|
||||
*
|
||||
*
|
||||
* @return description of the changeset
|
||||
*/
|
||||
public String getDescription()
|
||||
{
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the id of the changeset.
|
||||
*
|
||||
*
|
||||
* @return id of the changeset
|
||||
*/
|
||||
@Override
|
||||
@@ -263,18 +198,14 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Return the ids of the parent changesets.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* @since 1.11
|
||||
*/
|
||||
public List<String> getParents()
|
||||
{
|
||||
if (parents == null)
|
||||
{
|
||||
public List<String> getParents() {
|
||||
if (parents == null) {
|
||||
parents = new ArrayList<String>();
|
||||
}
|
||||
|
||||
@@ -284,13 +215,10 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
/**
|
||||
* Returns tags associated with this changeset.
|
||||
*
|
||||
*
|
||||
* @return tags of the changeset
|
||||
*/
|
||||
public List<String> getTags()
|
||||
{
|
||||
if (tags == null)
|
||||
{
|
||||
public List<String> getTags() {
|
||||
if (tags == null) {
|
||||
tags = new ArrayList<String>();
|
||||
}
|
||||
|
||||
@@ -300,91 +228,75 @@ public class Changeset extends BasicPropertiesAware implements ModelObject {
|
||||
/**
|
||||
* Returns true if the changeset is valid.
|
||||
*
|
||||
*
|
||||
* @return true if the changeset is valid
|
||||
*/
|
||||
@Override
|
||||
public boolean isValid()
|
||||
{
|
||||
public boolean isValid() {
|
||||
return Util.isNotEmpty(id) && ValidationUtil.isValid(author)
|
||||
&& (date != null);
|
||||
&& (date != null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the author of the changeset.
|
||||
*
|
||||
*
|
||||
* @param author author of the changeset
|
||||
*/
|
||||
public void setAuthor(Person author)
|
||||
{
|
||||
public void setAuthor(Person author) {
|
||||
this.author = author;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the branches of the changeset.
|
||||
*
|
||||
*
|
||||
* @param branches branches of the changeset
|
||||
*/
|
||||
public void setBranches(List<String> branches)
|
||||
{
|
||||
public void setBranches(List<String> branches) {
|
||||
this.branches = branches;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the date of the changeset.
|
||||
*
|
||||
*
|
||||
* @param date date of the changeset
|
||||
*/
|
||||
public void setDate(Long date)
|
||||
{
|
||||
public void setDate(Long date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the description (commit message) of the changeset.
|
||||
*
|
||||
*
|
||||
* @param description description of the changeset
|
||||
*/
|
||||
public void setDescription(String description)
|
||||
{
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id of the changeset.
|
||||
*
|
||||
*
|
||||
* @param id id of the changeset
|
||||
*/
|
||||
public void setId(String id)
|
||||
{
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the parents of the changeset.
|
||||
*
|
||||
*
|
||||
* @param parents parents of the changeset
|
||||
* @since 1.11
|
||||
*/
|
||||
public void setParents(List<String> parents)
|
||||
{
|
||||
public void setParents(List<String> parents) {
|
||||
this.parents = parents;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the tags of the changeset
|
||||
*
|
||||
*
|
||||
* @param tags tags of the changeset
|
||||
*/
|
||||
public void setTags(List<String> tags)
|
||||
{
|
||||
public void setTags(List<String> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,56 +21,40 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* The changeset paging result is used to do a paging over the
|
||||
* {@link Changeset}s of a {@link Repository}.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "changeset-paging")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class ChangesetPagingResult implements Iterable<Changeset>, Serializable
|
||||
{
|
||||
@ToString
|
||||
@Setter
|
||||
public class ChangesetPagingResult implements Iterable<Changeset>, Serializable {
|
||||
|
||||
/** Field description */
|
||||
private static final long serialVersionUID = -8678755403658841733L;
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
private List<Changeset> changesets;
|
||||
private int total;
|
||||
private String branchName;
|
||||
|
||||
/**
|
||||
* Constructs a new changeset paging result.
|
||||
*
|
||||
*/
|
||||
public ChangesetPagingResult() {}
|
||||
|
||||
/**
|
||||
* Constructs a new changeset paging result.
|
||||
*
|
||||
*
|
||||
* @param total total number of changesets
|
||||
* @param total total number of changesets
|
||||
* @param changesets current list of fetched changesets
|
||||
*/
|
||||
public ChangesetPagingResult(int total, List<Changeset> changesets)
|
||||
{
|
||||
public ChangesetPagingResult(int total, List<Changeset> changesets) {
|
||||
this.total = total;
|
||||
this.changesets = changesets;
|
||||
this.branchName = null;
|
||||
@@ -79,38 +63,23 @@ public class ChangesetPagingResult implements Iterable<Changeset>, Serializable
|
||||
/**
|
||||
* Constructs a new changeset paging result for a specific branch.
|
||||
*
|
||||
*
|
||||
* @param total total number of changesets
|
||||
* @param total total number of changesets
|
||||
* @param changesets current list of fetched changesets
|
||||
* @param branchName branch name this result was created for
|
||||
*/
|
||||
public ChangesetPagingResult(int total, List<Changeset> changesets, String branchName)
|
||||
{
|
||||
public ChangesetPagingResult(int total, List<Changeset> changesets, String branchName) {
|
||||
this.total = total;
|
||||
this.changesets = changesets;
|
||||
this.branchName = branchName;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -120,94 +89,46 @@ public class ChangesetPagingResult implements Iterable<Changeset>, Serializable
|
||||
&& Objects.equal(total, other.total);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
public int hashCode() {
|
||||
return Objects.hashCode(changesets, total);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an iterator which can iterate over the current list of changesets.
|
||||
*
|
||||
*
|
||||
* @return iterator for current list of changesets
|
||||
* @since 1.8
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Changeset> iterator()
|
||||
{
|
||||
public Iterator<Changeset> iterator() {
|
||||
Iterator<Changeset> it = null;
|
||||
|
||||
if (changesets != null)
|
||||
{
|
||||
if (changesets != null) {
|
||||
it = changesets.iterator();
|
||||
}
|
||||
|
||||
return it;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("changesets", changesets)
|
||||
.add("total", total)
|
||||
.add("branch", branchName)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the current list of changesets.
|
||||
*
|
||||
*
|
||||
* @return current list of changesets
|
||||
*/
|
||||
public List<Changeset> getChangesets()
|
||||
{
|
||||
public List<Changeset> getChangesets() {
|
||||
return changesets;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the total number of changesets.
|
||||
*
|
||||
*
|
||||
* @return total number of changesets
|
||||
*/
|
||||
public int getTotal()
|
||||
{
|
||||
public int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
void setChangesets(List<Changeset> changesets)
|
||||
{
|
||||
this.changesets = changesets;
|
||||
}
|
||||
|
||||
void setTotal(int total)
|
||||
{
|
||||
this.total = total;
|
||||
}
|
||||
|
||||
void setBranchName(String branchName) {
|
||||
this.branchName = branchName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the branch name this result was created for. This can either be an explicit branch ("give me all
|
||||
* changesets for branch xyz") or an implicit one ("give me the changesets for the default").
|
||||
@@ -216,13 +137,4 @@ public class ChangesetPagingResult implements Iterable<Changeset>, Serializable
|
||||
return branchName;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
@XmlElement(name = "changeset")
|
||||
@XmlElementWrapper(name = "changesets")
|
||||
private List<Changeset> changesets;
|
||||
|
||||
private int total;
|
||||
|
||||
private String branchName;
|
||||
}
|
||||
|
||||
@@ -21,18 +21,15 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Strings;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import sonia.scm.LastModifiedAware;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -49,98 +46,70 @@ import static java.util.Optional.ofNullable;
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.5
|
||||
*/
|
||||
@XmlRootElement(name = "file")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class FileObject implements LastModifiedAware, Serializable
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
public class FileObject implements LastModifiedAware, Serializable {
|
||||
|
||||
/** serial version uid */
|
||||
private static final long serialVersionUID = -5562537629609891499L;
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* directory indicator
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final FileObject other = (FileObject) obj;
|
||||
|
||||
//J-
|
||||
return Objects.equal(name, other.name)
|
||||
&& Objects.equal(path, other.path)
|
||||
&& Objects.equal(directory, other.directory)
|
||||
&& Objects.equal(description, other.description)
|
||||
&& Objects.equal(length, other.length)
|
||||
&& Objects.equal(subRepository, other.subRepository)
|
||||
&& Objects.equal(commitDate, other.commitDate)
|
||||
&& Objects.equal(partialResult, other.partialResult)
|
||||
&& Objects.equal(computationAborted, other.computationAborted);
|
||||
//J+
|
||||
}
|
||||
private boolean directory;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* commit date
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(
|
||||
name,
|
||||
path,
|
||||
directory,
|
||||
description,
|
||||
length,
|
||||
subRepository,
|
||||
commitDate,
|
||||
partialResult,
|
||||
computationAborted);
|
||||
}
|
||||
private Long commitDate;
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
* file length
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("name", name)
|
||||
.add("path", path)
|
||||
.add("directory", directory)
|
||||
.add("description", description)
|
||||
.add("length", length)
|
||||
.add("subRepository", subRepository)
|
||||
.add("commitDate", commitDate)
|
||||
.add("partialResult", partialResult)
|
||||
.add("computationAborted", computationAborted)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
private Long length;
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
/**
|
||||
* filename
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* file path
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* Marker for partial result.
|
||||
*/
|
||||
private boolean partialResult = false;
|
||||
|
||||
/**
|
||||
* Marker for aborted computation.
|
||||
*/
|
||||
private boolean computationAborted = false;
|
||||
|
||||
/**
|
||||
* sub repository informations
|
||||
*/
|
||||
@XmlElement(name = "subrepository")
|
||||
private SubRepository subRepository;
|
||||
|
||||
/**
|
||||
* Children of this file (aka directory).
|
||||
*/
|
||||
private Collection<FileObject> children = new ArrayList<>();
|
||||
|
||||
private boolean truncated;
|
||||
|
||||
/**
|
||||
* Returns the last commit message for this file. The method will return null,
|
||||
* if the repository provider is not able to get the last commit for the path.
|
||||
*
|
||||
*
|
||||
* @return Last commit message or <code>null</code>, when this value has not been computed
|
||||
* (see {@link #isPartialResult()}).
|
||||
*/
|
||||
public Optional<String> getDescription()
|
||||
{
|
||||
public Optional<String> getDescription() {
|
||||
return ofNullable(description);
|
||||
}
|
||||
|
||||
@@ -149,12 +118,11 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* if the repository provider is not able to get the last commit for the path
|
||||
* or it has not been computed.
|
||||
*
|
||||
*
|
||||
* @return last commit date
|
||||
*/
|
||||
@Override
|
||||
public Long getLastModified() {
|
||||
return this.isPartialResult()? null: this.commitDate;
|
||||
return this.isPartialResult() ? null : this.commitDate;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -162,39 +130,33 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* if the repository provider is not able to get the last commit for the path or if this value has not been computed
|
||||
* (see {@link #isPartialResult()} and {@link #isComputationAborted()}).
|
||||
*/
|
||||
public OptionalLong getCommitDate()
|
||||
{
|
||||
return commitDate == null? OptionalLong.empty(): OptionalLong.of(commitDate);
|
||||
public OptionalLong getCommitDate() {
|
||||
return commitDate == null ? OptionalLong.empty() : OptionalLong.of(commitDate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the length of the file or {@link OptionalLong#empty()}, when this value has not been computed
|
||||
* (see {@link #isPartialResult()} and {@link #isComputationAborted()}).
|
||||
*/
|
||||
public OptionalLong getLength()
|
||||
{
|
||||
return length == null? OptionalLong.empty(): OptionalLong.of(length);
|
||||
public OptionalLong getLength() {
|
||||
return length == null ? OptionalLong.empty() : OptionalLong.of(length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the file.
|
||||
*
|
||||
*
|
||||
* @return name of file
|
||||
*/
|
||||
public String getName()
|
||||
{
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path of the file.
|
||||
*
|
||||
*
|
||||
* @return path of file
|
||||
*/
|
||||
public String getPath()
|
||||
{
|
||||
public String getPath() {
|
||||
return path;
|
||||
}
|
||||
|
||||
@@ -218,22 +180,19 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* Return sub repository information or null if the file is not
|
||||
* sub repository.
|
||||
*
|
||||
* @since 1.10
|
||||
* @return sub repository informations or null
|
||||
* @since 1.10
|
||||
*/
|
||||
public SubRepository getSubRepository()
|
||||
{
|
||||
public SubRepository getSubRepository() {
|
||||
return subRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the file is a directory.
|
||||
*
|
||||
*
|
||||
* @return true if file is a directory
|
||||
*/
|
||||
public boolean isDirectory()
|
||||
{
|
||||
public boolean isDirectory() {
|
||||
return directory;
|
||||
}
|
||||
|
||||
@@ -243,7 +202,7 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* @return The children of this file if it is a directory.
|
||||
*/
|
||||
public Collection<FileObject> getChildren() {
|
||||
return children == null? null: unmodifiableCollection(children);
|
||||
return children == null ? null : unmodifiableCollection(children);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -252,9 +211,8 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* will return {@link Optional#empty()} (or {@link OptionalLong#empty()} respectively), unless they are computed.
|
||||
* There may be an asynchronous task running, that will set these values in the future.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return <code>true</code>, whenever some values of this object have not been computed, yet.
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public boolean isPartialResult() {
|
||||
return partialResult;
|
||||
@@ -265,9 +223,8 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
* values (like {@link #getLength()}, {@link #getDescription()} or {@link #getCommitDate()})
|
||||
* will return {@link Optional#empty()} (or {@link OptionalLong#empty()} respectively), unless they are computed.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @return <code>true</code>, whenever some values of this object finally are not computed.
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public boolean isComputationAborted() {
|
||||
return computationAborted;
|
||||
@@ -282,87 +239,72 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
/**
|
||||
* Sets the description of the file.
|
||||
*
|
||||
*
|
||||
* @param description description of file
|
||||
*/
|
||||
public void setDescription(String description)
|
||||
{
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set to true to indicate that the file is a directory.
|
||||
*
|
||||
*
|
||||
* @param directory true for directory
|
||||
*/
|
||||
public void setDirectory(boolean directory)
|
||||
{
|
||||
public void setDirectory(boolean directory) {
|
||||
this.directory = directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the commit date of the file.
|
||||
*
|
||||
*
|
||||
* @param commitDate commit date
|
||||
*/
|
||||
public void setCommitDate(Long commitDate)
|
||||
{
|
||||
public void setCommitDate(Long commitDate) {
|
||||
this.commitDate = commitDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the length of the file.
|
||||
*
|
||||
*
|
||||
* @param length file length
|
||||
*/
|
||||
public void setLength(Long length)
|
||||
{
|
||||
public void setLength(Long length) {
|
||||
this.length = length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of the file.
|
||||
*
|
||||
*
|
||||
* @param name filename
|
||||
*/
|
||||
public void setName(String name)
|
||||
{
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the path of the file.
|
||||
*
|
||||
*
|
||||
* @param path file path
|
||||
*/
|
||||
public void setPath(String path)
|
||||
{
|
||||
public void setPath(String path) {
|
||||
this.path = path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set sub repository information for the file.
|
||||
*
|
||||
* @since 1.10
|
||||
*
|
||||
* @param subRepository sub repository informations
|
||||
* @since 1.10
|
||||
*/
|
||||
public void setSubRepository(SubRepository subRepository)
|
||||
{
|
||||
public void setSubRepository(SubRepository subRepository) {
|
||||
this.subRepository = subRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set marker, that some values for this object are not computed, yet.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @param partialResult Set this to <code>true</code>, whenever some values of this object are not computed, yet.
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public void setPartialResult(boolean partialResult) {
|
||||
this.partialResult = partialResult;
|
||||
@@ -371,10 +313,9 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
/**
|
||||
* Set marker, that computation of some values for this object has been aborted.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*
|
||||
* @param computationAborted Set this to <code>true</code>, whenever some values of this object are not computed and
|
||||
* will not be computed in the future.
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public void setComputationAborted(boolean computationAborted) {
|
||||
this.computationAborted = computationAborted;
|
||||
@@ -401,39 +342,4 @@ public class FileObject implements LastModifiedAware, Serializable
|
||||
public void setTruncated(boolean truncated) {
|
||||
this.truncated = truncated;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** file description */
|
||||
private String description;
|
||||
|
||||
/** directory indicator */
|
||||
private boolean directory;
|
||||
|
||||
/** commit date */
|
||||
private Long commitDate;
|
||||
|
||||
/** file length */
|
||||
private Long length;
|
||||
|
||||
/** filename */
|
||||
private String name;
|
||||
|
||||
/** file path */
|
||||
private String path;
|
||||
|
||||
/** Marker for partial result. */
|
||||
private boolean partialResult = false;
|
||||
|
||||
/** Marker for aborted computation. */
|
||||
private boolean computationAborted = false;
|
||||
|
||||
/** sub repository informations */
|
||||
@XmlElement(name = "subrepository")
|
||||
private SubRepository subRepository;
|
||||
|
||||
/** Children of this file (aka directory). */
|
||||
private Collection<FileObject> children = new ArrayList<>();
|
||||
|
||||
private boolean truncated;
|
||||
}
|
||||
|
||||
@@ -21,166 +21,74 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Import result of the {@link AdvancedImportHandler}.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.43
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlRootElement(name = "import-result")
|
||||
public final class ImportResult
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Getter
|
||||
public final class ImportResult {
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
* failed directories
|
||||
*/
|
||||
ImportResult() {}
|
||||
private List<String> failedDirectories;
|
||||
|
||||
/**
|
||||
* Constructs a new import result.
|
||||
*
|
||||
*
|
||||
* @param importedDirectories imported directories
|
||||
* @param failedDirectories failed directories
|
||||
* successfully imported directories
|
||||
*/
|
||||
private List<String> importedDirectories;
|
||||
|
||||
public ImportResult(List<String> importedDirectories,
|
||||
List<String> failedDirectories)
|
||||
{
|
||||
List<String> failedDirectories) {
|
||||
this.importedDirectories = checkNotNull(importedDirectories,
|
||||
"list of imported directories is required");
|
||||
this.failedDirectories = checkNotNull(failedDirectories,
|
||||
"list of failed directories is required");
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns a import result builder.
|
||||
*
|
||||
*
|
||||
* @return import result builder
|
||||
*/
|
||||
public static Builder builder()
|
||||
{
|
||||
public static Builder builder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final ImportResult other = (ImportResult) obj;
|
||||
|
||||
return Objects.equal(importedDirectories, other.importedDirectories)
|
||||
&& Objects.equal(failedDirectories, other.failedDirectories);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(importedDirectories, failedDirectories);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("importedDirectories", importedDirectories)
|
||||
.add("failedDirectories", failedDirectories)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns list of failed directories.
|
||||
*
|
||||
*
|
||||
* @return list of failed directories
|
||||
*/
|
||||
public List<String> getFailedDirectories()
|
||||
{
|
||||
return failedDirectories;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns list of successfully imported directories.
|
||||
*
|
||||
*
|
||||
* @return list of successfully imported directories
|
||||
*/
|
||||
public List<String> getImportedDirectories()
|
||||
{
|
||||
return importedDirectories;
|
||||
}
|
||||
|
||||
//~--- inner classes --------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Builder for {@link ImportResult}.
|
||||
*/
|
||||
public static class Builder
|
||||
{
|
||||
public static class Builder {
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
* successfully imported directories
|
||||
*/
|
||||
private Builder() {}
|
||||
private final List<String> importedDirectories = Lists.newArrayList();
|
||||
|
||||
//~--- methods ------------------------------------------------------------
|
||||
/**
|
||||
* failed directories
|
||||
*/
|
||||
private final List<String> failedDirectories = Lists.newArrayList();
|
||||
|
||||
/**
|
||||
* Adds a failed directory to the import result.
|
||||
*
|
||||
*
|
||||
* @param name name of the directory
|
||||
*
|
||||
* @return {@code this}
|
||||
*/
|
||||
public Builder addFailedDirectory(String name)
|
||||
{
|
||||
public Builder addFailedDirectory(String name) {
|
||||
this.failedDirectories.add(name);
|
||||
|
||||
return this;
|
||||
@@ -189,13 +97,10 @@ public final class ImportResult
|
||||
/**
|
||||
* Adds a successfully imported directory to the import result.
|
||||
*
|
||||
*
|
||||
* @param name name of the directory
|
||||
*
|
||||
* @return {@code this}
|
||||
*/
|
||||
public Builder addImportedDirectory(String name)
|
||||
{
|
||||
public Builder addImportedDirectory(String name) {
|
||||
this.importedDirectories.add(name);
|
||||
|
||||
return this;
|
||||
@@ -204,30 +109,11 @@ public final class ImportResult
|
||||
/**
|
||||
* Builds the final import result.
|
||||
*
|
||||
*
|
||||
* @return final import result
|
||||
*/
|
||||
public ImportResult build()
|
||||
{
|
||||
public ImportResult build() {
|
||||
return new ImportResult(ImmutableList.copyOf(importedDirectories),
|
||||
ImmutableList.copyOf(failedDirectories));
|
||||
}
|
||||
|
||||
//~--- fields -------------------------------------------------------------
|
||||
|
||||
/** successfully imported directories */
|
||||
private final List<String> importedDirectories = Lists.newArrayList();
|
||||
|
||||
/** failed directories */
|
||||
private final List<String> failedDirectories = Lists.newArrayList();
|
||||
}
|
||||
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** failed directories */
|
||||
private List<String> failedDirectories;
|
||||
|
||||
/** successfully imported directories */
|
||||
private List<String> importedDirectories;
|
||||
}
|
||||
|
||||
@@ -21,189 +21,69 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.collect.Lists;
|
||||
import sonia.scm.util.Util;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Setter
|
||||
public class Modifications implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlRootElement(name = "modifications")
|
||||
public class Modifications implements Serializable
|
||||
{
|
||||
|
||||
/** Field description */
|
||||
private static final long serialVersionUID = -8902033326668658140L;
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
private String revision;
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
* lists of changed files
|
||||
*/
|
||||
private List<String> added;
|
||||
private List<String> modified;
|
||||
private List<String> removed;
|
||||
|
||||
public Modifications() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param added
|
||||
*/
|
||||
public Modifications(List<String> added)
|
||||
{
|
||||
;
|
||||
|
||||
public Modifications(List<String> added) {
|
||||
this(added, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param added
|
||||
* @param modified
|
||||
*/
|
||||
public Modifications(List<String> added, List<String> modified)
|
||||
{
|
||||
public Modifications(List<String> added, List<String> modified) {
|
||||
this(added, modified, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param added
|
||||
* @param modified
|
||||
* @param removed
|
||||
*/
|
||||
public Modifications(List<String> added, List<String> modified,
|
||||
List<String> removed)
|
||||
{
|
||||
public Modifications(List<String> added, List<String> modified, List<String> removed) {
|
||||
this.added = added;
|
||||
this.modified = modified;
|
||||
this.removed = removed;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final Modifications other = (Modifications) obj;
|
||||
|
||||
return Objects.equal(added, other.added)
|
||||
&& Objects.equal(modified, other.modified)
|
||||
&& Objects.equal(removed, other.removed);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(added, modified, removed);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
StringBuilder out = new StringBuilder();
|
||||
|
||||
out.append("added:").append(Util.toString(added)).append("\n");
|
||||
out.append("modified:").append(Util.toString(modified)).append("\n");
|
||||
out.append("removed:").append(Util.toString(removed)).append("\n");
|
||||
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<String> getAdded()
|
||||
{
|
||||
if (added == null)
|
||||
{
|
||||
public List<String> getAdded() {
|
||||
if (added == null) {
|
||||
added = Lists.newArrayList();
|
||||
}
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<String> getModified()
|
||||
{
|
||||
if (modified == null)
|
||||
{
|
||||
public List<String> getModified() {
|
||||
if (modified == null) {
|
||||
modified = Lists.newArrayList();
|
||||
}
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<String> getRemoved()
|
||||
{
|
||||
if (removed == null)
|
||||
{
|
||||
public List<String> getRemoved() {
|
||||
if (removed == null) {
|
||||
removed = Lists.newArrayList();
|
||||
}
|
||||
|
||||
@@ -213,62 +93,4 @@ public class Modifications implements Serializable
|
||||
public String getRevision() {
|
||||
return revision;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param added
|
||||
*/
|
||||
public void setAdded(List<String> added)
|
||||
{
|
||||
this.added = added;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param modified
|
||||
*/
|
||||
public void setModified(List<String> modified)
|
||||
{
|
||||
this.modified = modified;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param removed
|
||||
*/
|
||||
public void setRemoved(List<String> removed)
|
||||
{
|
||||
this.removed = removed;
|
||||
}
|
||||
|
||||
public void setRevision(String revision) {
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
private String revision;
|
||||
|
||||
/** list of added files */
|
||||
@XmlElement(name = "added")
|
||||
@XmlElementWrapper(name = "added")
|
||||
private List<String> added;
|
||||
|
||||
/** list of modified files */
|
||||
@XmlElement(name = "modified")
|
||||
@XmlElementWrapper(name = "modified")
|
||||
private List<String> modified;
|
||||
|
||||
/** list of removed files */
|
||||
@XmlElement(name = "removed")
|
||||
@XmlElementWrapper(name = "removed")
|
||||
private List<String> removed;
|
||||
}
|
||||
|
||||
@@ -21,94 +21,70 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import sonia.scm.Validateable;
|
||||
import sonia.scm.util.Util;
|
||||
import sonia.scm.util.ValidationUtil;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* The {@link Person} (author) of a changeset.
|
||||
*
|
||||
* @person Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "person")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class Person implements Validateable, Serializable
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@Getter
|
||||
@Setter
|
||||
public class Person implements Validateable, Serializable {
|
||||
|
||||
/** Field description */
|
||||
private static final long serialVersionUID = -4675080650527063196L;
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
/**
|
||||
* mail address of the person
|
||||
*/
|
||||
private String mail;
|
||||
|
||||
/**
|
||||
* Constructs a new {@link Person}.
|
||||
* This constructor is used by JAXB.
|
||||
*
|
||||
* name of the person
|
||||
*/
|
||||
public Person() {}
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* Constructs a new {@link Person}.
|
||||
*
|
||||
*
|
||||
* @param name name of {@link Person}
|
||||
*/
|
||||
public Person(String name)
|
||||
{
|
||||
public Person() {
|
||||
}
|
||||
|
||||
public Person(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new {@link Person} with name and mail address.
|
||||
*
|
||||
*
|
||||
* @param name name of the {@link Person}
|
||||
* @param mail mail address of the {@link Person}
|
||||
*/
|
||||
public Person(String name, String mail)
|
||||
{
|
||||
public Person(String name, String mail) {
|
||||
this.name = name;
|
||||
this.mail = mail;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Parses the given string and returns a {@link Person} object. The string
|
||||
* should be in the format "name >mail<". if the string contains no
|
||||
* "><" the whole string is handled as the name of the {@link Person}.
|
||||
*
|
||||
*
|
||||
* @param value string representation of a {@link Person} object
|
||||
*
|
||||
* @return {@link Person} object which is generated from the given string
|
||||
*/
|
||||
public static Person toPerson(String value)
|
||||
{
|
||||
public static Person toPerson(String value) {
|
||||
Person person = null;
|
||||
|
||||
if (Util.isNotEmpty(value))
|
||||
{
|
||||
if (Util.isNotEmpty(value)) {
|
||||
String name = value;
|
||||
String mail = null;
|
||||
int s = value.indexOf('<');
|
||||
int e = value.indexOf('>');
|
||||
|
||||
if ((s > 0) && (e > 0))
|
||||
{
|
||||
if ((s > 0) && (e > 0)) {
|
||||
name = value.substring(0, s).trim();
|
||||
mail = value.substring(s + 1, e).trim();
|
||||
}
|
||||
@@ -119,56 +95,17 @@ public class Person implements Validateable, Serializable
|
||||
return person;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Person other = (Person) obj;
|
||||
|
||||
return Objects.equal(name, other.name) && Objects.equal(mail, other.mail);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(name, mail);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of the {@link Person} object,
|
||||
* in the format "name >mail<".
|
||||
*
|
||||
*
|
||||
* @return string representation of {@link Person} object
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
public String toString() {
|
||||
String out = name;
|
||||
|
||||
if (mail != null)
|
||||
{
|
||||
if (mail != null) {
|
||||
out = out.concat(" <").concat(mail).concat(">");
|
||||
}
|
||||
|
||||
@@ -180,71 +117,30 @@ public class Person implements Validateable, Serializable
|
||||
/**
|
||||
* Returns the mail address of the changeset author.
|
||||
*
|
||||
*
|
||||
* @return mail address of the changeset author
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getMail()
|
||||
{
|
||||
public String getMail() {
|
||||
return mail;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the changeset author.
|
||||
*
|
||||
*
|
||||
* @return name of the changeset person
|
||||
*/
|
||||
public String getName()
|
||||
{
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns true if the person is valid.
|
||||
*
|
||||
*
|
||||
* @return true if the person is valid
|
||||
*/
|
||||
@Override
|
||||
public boolean isValid()
|
||||
{
|
||||
public boolean isValid() {
|
||||
return Util.isNotEmpty(name)
|
||||
&& (Util.isEmpty(mail) || ValidationUtil.isMailAddressValid(mail));
|
||||
&& (Util.isEmpty(mail) || ValidationUtil.isMailAddressValid(mail));
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Sets the mail address of the changeset author.
|
||||
*
|
||||
*
|
||||
* @param mail mail address of the author
|
||||
*/
|
||||
public void setMail(String mail)
|
||||
{
|
||||
this.mail = mail;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the name of the changeset author.
|
||||
*
|
||||
*
|
||||
* @param name name of the author
|
||||
*/
|
||||
public void setName(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** mail address of the person */
|
||||
private String mail;
|
||||
|
||||
/**
|
||||
* name of the person
|
||||
*/
|
||||
private String name;
|
||||
}
|
||||
|
||||
@@ -21,221 +21,45 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.Serializable;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Getter
|
||||
@Setter
|
||||
public class SubRepository implements Serializable {
|
||||
|
||||
/**
|
||||
* @since 1.10
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "subrepository")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class SubRepository implements Serializable
|
||||
{
|
||||
|
||||
/** Field description */
|
||||
private static final long serialVersionUID = 6960065820378492531L;
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*/
|
||||
public SubRepository() {}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param repositoryUrl
|
||||
*/
|
||||
public SubRepository(String repositoryUrl)
|
||||
{
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param revision
|
||||
* @param repositoryUrl
|
||||
*/
|
||||
public SubRepository(String repositoryUrl, String revision)
|
||||
{
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param revision
|
||||
* @param repositoryUrl
|
||||
* @param browserUrl
|
||||
*/
|
||||
public SubRepository(String repositoryUrl, String browserUrl, String revision)
|
||||
{
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
this.browserUrl = browserUrl;
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
SubRepository other = (SubRepository) obj;
|
||||
|
||||
return Objects.equal(repositoryUrl, other.repositoryUrl)
|
||||
&& Objects.equal(browserUrl, other.browserUrl)
|
||||
&& Objects.equal(revision, other.revision);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(repositoryUrl, browserUrl, revision);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("repositoryUrl", repositoryUrl)
|
||||
.add("browserUrl", browserUrl)
|
||||
.add("revision", revision)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getBrowserUrl()
|
||||
{
|
||||
return browserUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getRepositoryUrl()
|
||||
{
|
||||
return repositoryUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getRevision()
|
||||
{
|
||||
return revision;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param browserUrl
|
||||
*/
|
||||
public void setBrowserUrl(String browserUrl)
|
||||
{
|
||||
this.browserUrl = browserUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param repositoryUrl
|
||||
*/
|
||||
public void setRepositoryUrl(String repositoryUrl)
|
||||
{
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param revision
|
||||
*/
|
||||
public void setRevision(String revision)
|
||||
{
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "browser-url")
|
||||
private String browserUrl;
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "repository-url")
|
||||
private String repositoryUrl;
|
||||
|
||||
/** Field description */
|
||||
private String revision;
|
||||
|
||||
public SubRepository() {
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public SubRepository(String repositoryUrl) {
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
}
|
||||
|
||||
public SubRepository(String repositoryUrl, String revision) {
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
public SubRepository(String repositoryUrl, String browserUrl, String revision) {
|
||||
this.repositoryUrl = repositoryUrl;
|
||||
this.browserUrl = browserUrl;
|
||||
this.revision = revision;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,19 +21,12 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
/**
|
||||
* Represents a tag in a repository.
|
||||
@@ -41,118 +34,25 @@ import javax.xml.bind.annotation.XmlRootElement;
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.18
|
||||
*/
|
||||
@XmlRootElement(name = "tag")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public final class Tag
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Getter
|
||||
public final class Tag {
|
||||
|
||||
/**
|
||||
* Constructs a new instance of tag.
|
||||
* This constructor should only be called from JAXB.
|
||||
*
|
||||
*/
|
||||
public Tag() {}
|
||||
private String name;
|
||||
private String revision;
|
||||
|
||||
public Tag() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new tag.
|
||||
*
|
||||
*
|
||||
* @param name name of the tag
|
||||
* @param name name of the tag
|
||||
* @param revision tagged revision
|
||||
*/
|
||||
public Tag(String name, String revision)
|
||||
{
|
||||
public Tag(String name, String revision) {
|
||||
this.name = name;
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final Tag other = (Tag) obj;
|
||||
|
||||
return Objects.equal(name, other.name)
|
||||
&& Objects.equal(revision, other.revision);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(name, revision);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("name", name)
|
||||
.add("revision", revision)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the name of the tag.
|
||||
*
|
||||
*
|
||||
* @return name of the tag
|
||||
*/
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Id of the tagged revision.
|
||||
*
|
||||
*
|
||||
* @return tagged revision id
|
||||
*/
|
||||
public String getRevision()
|
||||
{
|
||||
return revision;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
private String name;
|
||||
|
||||
/** Field description */
|
||||
private String revision;
|
||||
}
|
||||
|
||||
@@ -21,139 +21,55 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Represents all tags of a repository.
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.18
|
||||
*/
|
||||
@XmlRootElement(name = "tags")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public final class Tags implements Iterable<Tag>
|
||||
{
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Setter
|
||||
public final class Tags implements Iterable<Tag> {
|
||||
|
||||
/**
|
||||
* Constructs a new instance of tags.
|
||||
* This constructor should only be called from JAXB.
|
||||
*
|
||||
*/
|
||||
public Tags() {}
|
||||
private List<Tag> tags;
|
||||
|
||||
/**
|
||||
* Constructs a new instance of tags.
|
||||
*
|
||||
*
|
||||
* @param tags list of tags.
|
||||
*/
|
||||
public Tags(List<Tag> tags)
|
||||
{
|
||||
public Tags() {
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
public Tags(List<Tag> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final Tags other = (Tags) obj;
|
||||
|
||||
return Objects.equal(tags, other.tags);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(tags);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Iterator<Tag> iterator()
|
||||
{
|
||||
public Iterator<Tag> iterator() {
|
||||
return getTags().iterator();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("tags", tags)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Returns the {@link Tag} with the given name or null.
|
||||
*
|
||||
*
|
||||
* @param name name of the tag
|
||||
*
|
||||
* @return {@link Tag} with the given name or null
|
||||
*/
|
||||
public Tag getTagByName(String name)
|
||||
{
|
||||
public Tag getTagByName(String name) {
|
||||
Tag tag = null;
|
||||
|
||||
for (Tag t : getTags())
|
||||
{
|
||||
if (name.equals(t.getName()))
|
||||
{
|
||||
for (Tag t : getTags()) {
|
||||
if (name.equals(t.getName())) {
|
||||
tag = t;
|
||||
|
||||
break;
|
||||
@@ -166,19 +82,14 @@ public final class Tags implements Iterable<Tag>
|
||||
/**
|
||||
* Returns the {@link Tag} with the given revision or null.
|
||||
*
|
||||
*
|
||||
* @param revision revision of the tag
|
||||
*
|
||||
* @return {@link Tag} with the given revision or null
|
||||
*/
|
||||
public Tag getTagByRevision(String revision)
|
||||
{
|
||||
public Tag getTagByRevision(String revision) {
|
||||
Tag tag = null;
|
||||
|
||||
for (Tag t : getTags())
|
||||
{
|
||||
if (revision.equals(t.getRevision()))
|
||||
{
|
||||
for (Tag t : getTags()) {
|
||||
if (revision.equals(t.getRevision())) {
|
||||
tag = t;
|
||||
|
||||
break;
|
||||
@@ -191,35 +102,13 @@ public final class Tags implements Iterable<Tag>
|
||||
/**
|
||||
* Returns all tags of a repository.
|
||||
*
|
||||
*
|
||||
* @return all tags
|
||||
*/
|
||||
public List<Tag> getTags()
|
||||
{
|
||||
if (tags == null)
|
||||
{
|
||||
public List<Tag> getTags() {
|
||||
if (tags == null) {
|
||||
tags = Lists.newArrayList();
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Sets all tags.
|
||||
*
|
||||
*
|
||||
* @param tags tags
|
||||
*/
|
||||
public void setTags(List<Tag> tags)
|
||||
{
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
@XmlElement(name = "tag")
|
||||
private List<Tag> tags;
|
||||
}
|
||||
|
||||
@@ -21,39 +21,25 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository.api;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
/**
|
||||
* The {@link PushResponse} is the result of the
|
||||
* The {@link PushResponse} is the result of the
|
||||
* {@link PushCommandBuilder#push(sonia.scm.repository.Repository)} method and
|
||||
* contains informations over the executed push command.
|
||||
*
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
* @since 1.31
|
||||
*/
|
||||
@XmlRootElement(name = "push-response")
|
||||
public final class PushResponse extends AbstractPushOrPullResponse
|
||||
{
|
||||
public final class PushResponse extends AbstractPushOrPullResponse {
|
||||
|
||||
/**
|
||||
* Constructs a new PushResponse.
|
||||
*
|
||||
*/
|
||||
public PushResponse() {}
|
||||
|
||||
/**
|
||||
* Constructs a new PushResponse.
|
||||
*
|
||||
*
|
||||
* @param changesetCount count of pushed changesets
|
||||
*/
|
||||
public PushResponse(long changesetCount)
|
||||
{
|
||||
public PushResponse(long changesetCount) {
|
||||
super(changesetCount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
@@ -31,7 +31,6 @@ import com.google.inject.Provider;
|
||||
import com.google.inject.Singleton;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import sonia.scm.ConfigurationException;
|
||||
import sonia.scm.SCMContextProvider;
|
||||
import sonia.scm.installer.HgInstaller;
|
||||
import sonia.scm.installer.HgInstallerFactory;
|
||||
@@ -48,7 +47,6 @@ import sonia.scm.util.IOUtil;
|
||||
import sonia.scm.util.SystemUtil;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
@@ -56,87 +54,47 @@ import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.text.MessageFormat;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@Singleton
|
||||
@Extension
|
||||
public class HgRepositoryHandler
|
||||
extends AbstractSimpleRepositoryHandler<HgConfig>
|
||||
{
|
||||
extends AbstractSimpleRepositoryHandler<HgConfig> {
|
||||
|
||||
/** Field description */
|
||||
public static final String PATH_HOOK = ".hook-1.8";
|
||||
|
||||
/** Field description */
|
||||
public static final String RESOURCE_VERSION =
|
||||
"sonia/scm/version/scm-hg-plugin";
|
||||
|
||||
/** Field description */
|
||||
public static final String RESOURCE_VERSION = "sonia/scm/version/scm-hg-plugin";
|
||||
public static final String TYPE_DISPLAYNAME = "Mercurial";
|
||||
|
||||
/** Field description */
|
||||
public static final String TYPE_NAME = "hg";
|
||||
|
||||
/** Field description */
|
||||
public static final RepositoryType TYPE = new RepositoryType(TYPE_NAME,
|
||||
TYPE_DISPLAYNAME,
|
||||
HgRepositoryServiceProvider.COMMANDS,
|
||||
HgRepositoryServiceProvider.FEATURES);
|
||||
TYPE_DISPLAYNAME,
|
||||
HgRepositoryServiceProvider.COMMANDS,
|
||||
HgRepositoryServiceProvider.FEATURES);
|
||||
|
||||
/** the logger for HgRepositoryHandler */
|
||||
private static final Logger logger =
|
||||
LoggerFactory.getLogger(HgRepositoryHandler.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(HgRepositoryHandler.class);
|
||||
|
||||
/** Field description */
|
||||
public static final String PATH_HGRC =
|
||||
".hg".concat(File.separator).concat("hgrc");
|
||||
public static final String PATH_HGRC = ".hg".concat(File.separator).concat("hgrc");
|
||||
private static final String CONFIG_SECTION_SCMM = "scmm";
|
||||
private static final String CONFIG_KEY_REPOSITORY_ID = "repositoryid";
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
private final Provider<HgContext> hgContextProvider;
|
||||
|
||||
private final HgWorkdirFactory workdirFactory;
|
||||
|
||||
private JAXBContext jaxbContext;
|
||||
|
||||
@Inject
|
||||
public HgRepositoryHandler(ConfigurationStoreFactory storeFactory,
|
||||
Provider<HgContext> hgContextProvider,
|
||||
RepositoryLocationResolver repositoryLocationResolver,
|
||||
PluginLoader pluginLoader, HgWorkdirFactory workdirFactory)
|
||||
{
|
||||
PluginLoader pluginLoader, HgWorkdirFactory workdirFactory) {
|
||||
super(storeFactory, repositoryLocationResolver, pluginLoader);
|
||||
this.hgContextProvider = hgContextProvider;
|
||||
this.workdirFactory = workdirFactory;
|
||||
|
||||
try
|
||||
{
|
||||
this.jaxbContext = JAXBContext.newInstance(BrowserResult.class,
|
||||
BlameResult.class, Changeset.class, ChangesetPagingResult.class,
|
||||
HgVersion.class);
|
||||
}
|
||||
catch (JAXBException ex)
|
||||
{
|
||||
throw new ConfigurationException("could not create jaxbcontext", ex);
|
||||
}
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param autoConfig
|
||||
*/
|
||||
public void doAutoConfiguration(HgConfig autoConfig)
|
||||
{
|
||||
public void doAutoConfiguration(HgConfig autoConfig) {
|
||||
HgInstaller installer = HgInstallerFactory.createInstaller();
|
||||
|
||||
try
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
try {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("installing mercurial with {}",
|
||||
installer.getClass().getName());
|
||||
}
|
||||
@@ -144,161 +102,85 @@ public class HgRepositoryHandler
|
||||
installer.install(baseDirectory, autoConfig);
|
||||
config = autoConfig;
|
||||
storeConfig();
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
if (logger.isErrorEnabled())
|
||||
{
|
||||
} catch (IOException ioe) {
|
||||
if (logger.isErrorEnabled()) {
|
||||
logger.error("Could not write Hg CGI for inital config. "
|
||||
+ "HgWeb may not function until a new Hg config is set", ioe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
@Override
|
||||
public void init(SCMContextProvider context)
|
||||
{
|
||||
public void init(SCMContextProvider context) {
|
||||
super.init(context);
|
||||
writePythonScripts(context);
|
||||
|
||||
// fix wrong hg.bat from package installation
|
||||
if (SystemUtil.isWindows())
|
||||
{
|
||||
if (SystemUtil.isWindows()) {
|
||||
HgWindowsPackageFix.fixHgPackage(context, getConfig());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*/
|
||||
@Override
|
||||
public void loadConfig()
|
||||
{
|
||||
public void loadConfig() {
|
||||
super.loadConfig();
|
||||
|
||||
if (config == null)
|
||||
{
|
||||
if (config == null) {
|
||||
doAutoConfiguration(new HgConfig());
|
||||
}
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public HgContext getHgContext()
|
||||
{
|
||||
public HgContext getHgContext() {
|
||||
HgContext context = hgContextProvider.get();
|
||||
|
||||
if (context == null)
|
||||
{
|
||||
if (context == null) {
|
||||
context = new HgContext();
|
||||
}
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ImportHandler getImportHandler()
|
||||
{
|
||||
public ImportHandler getImportHandler() {
|
||||
return new HgImportHandler(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public JAXBContext getJaxbContext()
|
||||
{
|
||||
return jaxbContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RepositoryType getType()
|
||||
{
|
||||
public RepositoryType getType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getVersionInformation()
|
||||
{
|
||||
public String getVersionInformation() {
|
||||
String version = getStringFromResource(RESOURCE_VERSION,
|
||||
DEFAULT_VERSION_INFORMATION);
|
||||
DEFAULT_VERSION_INFORMATION);
|
||||
|
||||
try
|
||||
{
|
||||
try {
|
||||
HgVersion hgVersion = new HgVersionHandler(this, hgContextProvider.get(),
|
||||
baseDirectory).getVersion();
|
||||
baseDirectory).getVersion();
|
||||
|
||||
if (hgVersion != null)
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
if (hgVersion != null) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("mercurial/python informations: {}", hgVersion);
|
||||
}
|
||||
|
||||
version = MessageFormat.format(version, hgVersion.getPython(),
|
||||
hgVersion.getMercurial());
|
||||
}
|
||||
else if (logger.isWarnEnabled())
|
||||
{
|
||||
} else if (logger.isWarnEnabled()) {
|
||||
logger.warn("could not retrieve version informations");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
} catch (Exception ex) {
|
||||
logger.error("could not read version informations", ex);
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param repository
|
||||
* @param directory
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
protected ExtendedCommand buildCreateCommand(Repository repository,
|
||||
File directory)
|
||||
{
|
||||
File directory) {
|
||||
ExtendedCommand cmd = new ExtendedCommand(config.getHgBinary(), "init",
|
||||
directory.getAbsolutePath());
|
||||
directory.getAbsolutePath());
|
||||
|
||||
// copy system environment, because of the PATH variable
|
||||
cmd.setUseSystemEnvironment(true);
|
||||
@@ -315,13 +197,11 @@ public class HgRepositoryHandler
|
||||
*
|
||||
* @param repository
|
||||
* @param directory
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
protected void postCreate(Repository repository, File directory)
|
||||
throws IOException
|
||||
{
|
||||
throws IOException {
|
||||
File hgrcFile = new File(directory, PATH_HGRC);
|
||||
INIConfiguration hgrc = new INIConfiguration();
|
||||
|
||||
@@ -336,55 +216,30 @@ public class HgRepositoryHandler
|
||||
writer.write(hgrc, hgrcFile);
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
protected Class<HgConfig> getConfigClass()
|
||||
{
|
||||
protected Class<HgConfig> getConfigClass() {
|
||||
return HgConfig.class;
|
||||
}
|
||||
|
||||
//~--- methods --------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
private void writePythonScripts(SCMContextProvider context)
|
||||
{
|
||||
private void writePythonScripts(SCMContextProvider context) {
|
||||
IOUtil.mkdirs(HgPythonScript.getScriptDirectory(context));
|
||||
|
||||
for (HgPythonScript script : HgPythonScript.values())
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
for (HgPythonScript script : HgPythonScript.values()) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("write python script {}", script.getName());
|
||||
}
|
||||
|
||||
InputStream content = null;
|
||||
OutputStream output = null;
|
||||
|
||||
try
|
||||
{
|
||||
try {
|
||||
content = HgRepositoryHandler.class.getResourceAsStream(
|
||||
script.getResourcePath());
|
||||
output = new FileOutputStream(script.getFile(context));
|
||||
IOUtil.copy(content, output);
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
} catch (IOException ex) {
|
||||
logger.error("could not write script", ex);
|
||||
}
|
||||
finally
|
||||
{
|
||||
} finally {
|
||||
IOUtil.close(content);
|
||||
IOUtil.close(output);
|
||||
}
|
||||
@@ -395,13 +250,7 @@ public class HgRepositoryHandler
|
||||
return workdirFactory;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
private final Provider<HgContext> hgContextProvider;
|
||||
|
||||
/** Field description */
|
||||
private JAXBContext jaxbContext;
|
||||
|
||||
private final HgWorkdirFactory workdirFactory;
|
||||
public JAXBContext getJaxbContext() {
|
||||
return jaxbContext;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,138 +21,19 @@
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
package sonia.scm.repository;
|
||||
|
||||
//~--- non-JDK imports --------------------------------------------------------
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
import com.google.common.base.Objects;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Sebastian Sdorra
|
||||
*/
|
||||
@XmlRootElement(name = "version")
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class HgVersion
|
||||
{
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param obj
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getClass() != obj.getClass())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final HgVersion other = (HgVersion) obj;
|
||||
|
||||
return Objects.equal(mercurial, other.mercurial)
|
||||
&& Objects.equal(python, other.python);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
return Objects.hashCode(mercurial, python);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
//J-
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("mercurial", mercurial)
|
||||
.add("python", python)
|
||||
.toString();
|
||||
//J+
|
||||
}
|
||||
|
||||
//~--- get methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getMercurial()
|
||||
{
|
||||
return mercurial;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getPython()
|
||||
{
|
||||
return python;
|
||||
}
|
||||
|
||||
//~--- set methods ----------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param mercurial
|
||||
*/
|
||||
public void setMercurial(String mercurial)
|
||||
{
|
||||
this.mercurial = mercurial;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @param python
|
||||
*/
|
||||
public void setPython(String python)
|
||||
{
|
||||
this.python = python;
|
||||
}
|
||||
|
||||
//~--- fields ---------------------------------------------------------------
|
||||
|
||||
/** Field description */
|
||||
@EqualsAndHashCode
|
||||
@ToString
|
||||
@Getter
|
||||
@Setter
|
||||
public class HgVersion {
|
||||
private String mercurial;
|
||||
|
||||
/** Field description */
|
||||
private String python;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@ import sonia.scm.repository.HgConfig;
|
||||
import sonia.scm.repository.HgContext;
|
||||
import sonia.scm.repository.HgRepositoryHandler;
|
||||
import sonia.scm.repository.HgTestUtil;
|
||||
import sonia.scm.repository.RepositoryPathNotFoundException;
|
||||
import sonia.scm.user.User;
|
||||
import sonia.scm.user.UserTestData;
|
||||
import sonia.scm.util.MockUtil;
|
||||
@@ -66,11 +65,10 @@ public abstract class IncomingOutgoingTestBase extends AbstractTestBase
|
||||
/**
|
||||
* Method description
|
||||
*
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
@Before
|
||||
public void initHgHandler() throws IOException, RepositoryPathNotFoundException {
|
||||
public void initHgHandler() throws IOException {
|
||||
HgRepositoryHandler temp = HgTestUtil.createHandler(tempFolder.newFolder());
|
||||
|
||||
HgTestUtil.checkForSkip(temp);
|
||||
|
||||
Reference in New Issue
Block a user