]> source.dussan.org Git - jgit.git/commitdiff
eclipse-iplog: Use contribution rather than bug element 72/772/1
authorShawn O. Pearce <spearce@spearce.org>
Fri, 28 May 2010 22:06:29 +0000 (15:06 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 28 May 2010 22:09:29 +0000 (15:09 -0700)
Wayne changed the schema to no longer be dependent upon the Bugzilla
notion of a contribution, but instead be more generic and better
support systems like Gerrit Code Review.  Update our output to
use the <contribution> element and include a link to the change
in Gerrit.

Change-Id: Ibc8a436918bd8e7597dc17743824201a74bce09b
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
.eclipse_iplog
org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogGenerator.java
org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogMeta.java
org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/SingleContribution.java

index f3771c157ffe82be594ab838631f3d461ad581d2..dc701694e405702940dc97caada20a3e5d64bbba 100644 (file)
@@ -4,6 +4,9 @@
 
        skipCommit = 1a6964c8274c50f0253db75f010d78ef0e739343
 
+[review]
+       url = http://egit.eclipse.org/r/r/
+
 [CQ "3454"]
        description = args4j Version: 2.0.12
        license = BSD License
index 8ddb6bdd1eb9bdd1d09a5076c546387cd5ecfa14..28df8b7f53119a856086e61d9ea6b48c7dc110f6 100644 (file)
@@ -58,7 +58,6 @@ import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
@@ -88,7 +87,6 @@ import org.eclipse.jgit.lib.ObjectLoader;
 import org.eclipse.jgit.lib.PersonIdent;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.lib.WindowCursor;
-import org.eclipse.jgit.revwalk.FooterKey;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.revwalk.RevTree;
 import org.eclipse.jgit.revwalk.RevWalk;
@@ -111,8 +109,6 @@ public class IpLogGenerator {
 
        private static final String INDENT = "{http://xml.apache.org/xslt}indent-amount";
 
-       private static final FooterKey BUG = new FooterKey("Bug");
-
        /** Projects indexed by their ID string, e.g. {@code technology.jgit}. */
        private final Map<String, Project> projects = new TreeMap<String, Project>();
 
@@ -137,6 +133,9 @@ public class IpLogGenerator {
        /** The meta file we loaded to bootstrap our definitions. */
        private IpLogMeta meta;
 
+       /** URL to obtain review information about a specific contribution. */
+       private String reviewUrl;
+
        private String characterEncoding = "UTF-8";
 
        private Repository db;
@@ -230,6 +229,7 @@ public class IpLogGenerator {
                        consumedProjects.put(p.getName(), p);
                }
                cqs.addAll(meta.getCQs());
+               reviewUrl = meta.getReviewUrl();
        }
 
        private void loadCommitters(Repository repo) throws IOException {
@@ -358,20 +358,6 @@ public class IpLogGenerator {
                        String subj = commit.getShortMessage();
                        SingleContribution item = new SingleContribution(id, when, subj);
 
-                       List<String> bugs = commit.getFooterLines(BUG);
-                       if (1 == bugs.size()) {
-                               item.setBugID(bugs.get(0));
-
-                       } else if (2 <= bugs.size()) {
-                               StringBuilder tmp = new StringBuilder();
-                               for (String bug : bugs) {
-                                       if (tmp.length() > 0)
-                                               tmp.append(",");
-                                       tmp.append(bug);
-                               }
-                               item.setBugID(tmp.toString());
-                       }
-
                        if (2 <= cnt) {
                                item.setSize("(merge)");
                                contributor.add(item);
@@ -594,20 +580,15 @@ public class IpLogGenerator {
        }
 
        private Element createContribution(SingleContribution s) {
-               Element r = createElement("bug");
+               Element r = createElement("contribution");
                required(r, "id", s.getID());
-               optional(r, "bug-id", s.getBugID());
+               required(r, "description", s.getSummary());
                required(r, "size", s.getSize());
-               required(r, "type", "A"); // assume attachment type
-               required(r, "created", format(s.getCreated()));
-               required(r, "summary", s.getSummary());
+               if (reviewUrl != null)
+                       optional(r, "url", reviewUrl + s.getID());
                return r;
        }
 
-       private String format(Date created) {
-               return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(created);
-       }
-
        private Element createElement(String name) {
                return doc.createElementNS(IPLOG_NS, IPLOG_PFX + name);
        }
index 16a159352301d721bb473063ae5e50f00b147da4..89695bdb8da5fbb2a48e92d311c1b132608a7752 100644 (file)
@@ -75,6 +75,10 @@ public class IpLogMeta {
 
        private static final String S_CONSUMES = "consumes";
 
+       private static final String S_REVIEW = "review";
+
+       private static final String K_URL = "url";
+
        private static final String K_NAME = "name";
 
        private static final String K_VERSION = "version";
@@ -97,6 +101,8 @@ public class IpLogMeta {
 
        private Set<CQ> cqs = new HashSet<CQ>();
 
+       private String reviewUrl;
+
        List<Project> getProjects() {
                return projects;
        }
@@ -109,6 +115,10 @@ public class IpLogMeta {
                return cqs;
        }
 
+       String getReviewUrl() {
+               return reviewUrl;
+       }
+
        void loadFrom(Config cfg) {
                projects.clear();
                consumedProjects.clear();
@@ -126,6 +136,8 @@ public class IpLogMeta {
                        cq.setComments(cfg.getString(S_CQ, id, K_COMMENTS));
                        cqs.add(cq);
                }
+
+               reviewUrl = cfg.getString(S_REVIEW, null, K_URL);
        }
 
        private List<Project> parseProjects(final Config cfg,
index 2cd5562a10bfd068d096792a9f79e66bf0f8fff2..96f3defa1bee1d0becfef81edabf295f744088cb 100644 (file)
@@ -61,8 +61,6 @@ class SingleContribution {
 
        private Date created;
 
-       private String bugId;
-
        private String size;
 
        /**
@@ -91,17 +89,6 @@ class SingleContribution {
                return summary;
        }
 
-       /** @return Bugzilla bug id */
-       String getBugID() {
-               return bugId;
-       }
-
-       void setBugID(String id) {
-               if (id.startsWith("https://bugs.eclipse.org/"))
-                       id = id.substring("https://bugs.eclipse.org/".length());
-               bugId = id;
-       }
-
        String getSize() {
                return size;
        }