Gerard Smyth
2014-04-01 f76fee63ed9cb3a30d3c0c092d860b1cb93a481b
src/main/java/com/gitblit/servlet/SyndicationServlet.java
@@ -163,6 +163,15 @@
            searchType = type;
         }
      }
      Constants.FeedContentObjectType objectType = Constants.FeedContentObjectType.COMMIT;
      if (!StringUtils.isEmpty(request.getParameter("ot"))) {
         Constants.FeedContentObjectType type = Constants.FeedContentObjectType.forName(request.getParameter("ot"));
         if (type != null) {
            objectType = type;
         }
      }
      int length = settings.getInteger(Keys.web.syndicationEntries, 25);
      if (StringUtils.isEmpty(objectId)) {
         objectId = org.eclipse.jgit.lib.Constants.HEAD;
@@ -214,14 +223,7 @@
      boolean mountParameters = settings.getBoolean(Keys.web.mountParameters, true);
      String urlPattern;
      if (mountParameters) {
         // mounted parameters
         urlPattern = "{0}/commit/{1}/{2}";
      } else {
         // parameterized parameters
         urlPattern = "{0}/commit/?r={1}&h={2}";
      }
      String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null);
      if (StringUtils.isEmpty(gitblitUrl)) {
         gitblitUrl = HttpUtils.getGitblitURL(request);
@@ -245,6 +247,50 @@
            feedName = model.name;
            feedTitle = model.name;
            feedDescription = model.description;
         }
         if (objectType == Constants.FeedContentObjectType.TAG) {
            String urlPattern;
            if (mountParameters) {
               // mounted parameters
               urlPattern = "{0}/tag/{1}/{2}";
            } else {
               // parameterized parameters
               urlPattern = "{0}/tag/?r={1}&h={2}";
            }
            List<RefModel> tags = JGitUtils.getTags(repository, false, length, offset);
            for (RefModel tag : tags) {
               FeedEntryModel entry = new FeedEntryModel();
               entry.title = tag.getName();
               entry.author = tag.getAuthorIdent().getName();
               entry.link = MessageFormat.format(urlPattern, gitblitUrl,
                     StringUtils.encodeURL(model.name.replace('/', fsc)), tag.getObjectId().getName());
               entry.published = tag.getDate();
               entry.contentType = "text/html";
               entry.content = tag.getFullMessage();
               entry.repository = model.name;
               entry.branch = objectId;
               entry.tags = new ArrayList<String>();
               // add tag id and referenced commit id
               entry.tags.add("tag:" + tag.getObjectId().getName());
               entry.tags.add("commit:" + tag.getReferencedObjectId().getName());
               entries.add(entry);
            }
         } else {
            String urlPattern;
            if (mountParameters) {
               // mounted parameters
               urlPattern = "{0}/commit/{1}/{2}";
            } else {
               // parameterized parameters
               urlPattern = "{0}/commit/?r={1}&h={2}";
         }
         List<RevCommit> commits;
@@ -290,6 +336,7 @@
            entries.add(entry);
         }
      }
      }
      // sort & truncate the feed
      Collections.sort(entries);