]> source.dussan.org Git - gitblit.git/commitdiff
Revert "Implementation of the getTickets capability of recovering all tickets from...
authorJames Moger <james.moger@gitblit.com>
Thu, 1 May 2014 19:48:21 +0000 (15:48 -0400)
committerJames Moger <james.moger@gitblit.com>
Thu, 1 May 2014 20:14:15 +0000 (16:14 -0400)
This reverts commit 1e6158bbc38a9012053c3bf8bfd16e113d8f5d29.

src/main/java/com/gitblit/tickets/BranchTicketService.java
src/main/java/com/gitblit/tickets/FileTicketService.java
src/main/java/com/gitblit/tickets/RedisTicketService.java

index 7d6926dff8f4feae8c6b8ddea6beb79bffb6a548..284b1be19ee0eee2de705699cc051f2fb8ce31e1 100644 (file)
@@ -436,84 +436,64 @@ public class BranchTicketService extends ITicketService implements RefsChangedLi
        @Override
        public List<TicketModel> getTickets(RepositoryModel repository, TicketFilter filter) {
                List<TicketModel> list = new ArrayList<TicketModel>();
-               List<Repository> databases = new ArrayList<Repository>();
-               List<RepositoryModel> models = new ArrayList<RepositoryModel>();
-               
-               if(repository == null)
-               {
-                       List<String> allRepo = repositoryManager.getRepositoryList();
-                       for(int i = 0; i < allRepo.size(); i++)
-                       {
-                               databases.add(repositoryManager.getRepository(allRepo.get(i)));
-                               models.add(repositoryManager.getRepositoryModel(allRepo.get(i)));
+
+               Repository db = repositoryManager.getRepository(repository.name);
+               try {
+                       RefModel ticketsBranch = getTicketsBranch(db);
+                       if (ticketsBranch == null) {
+                               return list;
                        }
-               }
-               else
-               {
-                       databases.add(repositoryManager.getRepository(repository.name));
-                       models.add(repository);
-               }
 
-               for(int i = 0; i < databases.size(); i++)
-               {
-                       Repository db = databases.get(i);
-                       try {
-                               RefModel ticketsBranch = getTicketsBranch(db);
-                               if (ticketsBranch == null) {
-                                       return list;
+                       // Collect the set of all json files
+                       List<PathModel> paths = JGitUtils.getDocuments(db, Arrays.asList("json"), BRANCH);
+
+                       // Deserialize each ticket and optionally filter out unwanted tickets
+                       for (PathModel path : paths) {
+                               String name = path.name.substring(path.name.lastIndexOf('/') + 1);
+                               if (!JOURNAL.equals(name)) {
+                                       continue;
                                }
-       
-                               // Collect the set of all json files
-                               List<PathModel> paths = JGitUtils.getDocuments(db, Arrays.asList("json"), BRANCH);
-       
-                               // Deserialize each ticket and optionally filter out unwanted tickets
-                               for (PathModel path : paths) {
-                                       String name = path.name.substring(path.name.lastIndexOf('/') + 1);
-                                       if (!JOURNAL.equals(name)) {
-                                               continue;
-                                       }
-                                       String json = readTicketsFile(db, path.path);
-                                       if (StringUtils.isEmpty(json)) {
-                                               // journal was touched but no changes were written
+                               String json = readTicketsFile(db, path.path);
+                               if (StringUtils.isEmpty(json)) {
+                                       // journal was touched but no changes were written
+                                       continue;
+                               }
+                               try {
+                                       // Reconstruct ticketId from the path
+                                       // id/26/326/journal.json
+                                       String tid = path.path.split("/")[2];
+                                       long ticketId = Long.parseLong(tid);
+                                       List<Change> changes = TicketSerializer.deserializeJournal(json);
+                                       if (ArrayUtils.isEmpty(changes)) {
+                                               log.warn("Empty journal for {}:{}", repository, path.path);
                                                continue;
                                        }
-                                       try {
-                                               // Reconstruct ticketId from the path
-                                               // id/26/326/journal.json
-                                               String tid = path.path.split("/")[2];
-                                               long ticketId = Long.parseLong(tid);
-                                               List<Change> changes = TicketSerializer.deserializeJournal(json);
-                                               if (ArrayUtils.isEmpty(changes)) {
-                                                       log.warn("Empty journal for {}:{}", models.get(i), path.path);
-                                                       continue;
-                                               }
-                                               TicketModel ticket = TicketModel.buildTicket(changes);
-                                               ticket.project = models.get(i).projectPath;
-                                               ticket.repository = models.get(i).name;
-                                               ticket.number = ticketId;
-       
-                                               // add the ticket, conditionally, to the list
-                                               if (filter == null) {
+                                       TicketModel ticket = TicketModel.buildTicket(changes);
+                                       ticket.project = repository.projectPath;
+                                       ticket.repository = repository.name;
+                                       ticket.number = ticketId;
+
+                                       // add the ticket, conditionally, to the list
+                                       if (filter == null) {
+                                               list.add(ticket);
+                                       } else {
+                                               if (filter.accept(ticket)) {
                                                        list.add(ticket);
-                                               } else {
-                                                       if (filter.accept(ticket)) {
-                                                               list.add(ticket);
-                                                       }
                                                }
-                                       } catch (Exception e) {
-                                               log.error("failed to deserialize {}/{}\n{}",
-                                                               new Object [] { repository, path.path, e.getMessage()});
-                                               log.error(null, e);
                                        }
+                               } catch (Exception e) {
+                                       log.error("failed to deserialize {}/{}\n{}",
+                                                       new Object [] { repository, path.path, e.getMessage()});
+                                       log.error(null, e);
                                }
-                       } finally {
-                               db.close();
                        }
-               }
 
-               // sort the tickets by creation
-               Collections.sort(list);
-               return list;
+                       // sort the tickets by creation
+                       Collections.sort(list);
+                       return list;
+               } finally {
+                       db.close();
+               }
        }
 
        /**
index 7fd9675f1bc58a05f323786dd29d2bbc3bc9e2c0..ea5d065f98059138fae30eb9d2b5aaca0cb060aa 100644 (file)
@@ -228,7 +228,6 @@ public class FileTicketService extends ITicketService {
                for(int i = 0; i < databases.size(); i++)
                {
                        Repository db = databases.get(i);
-                       RepositoryModel model = models.get(i);
                        try {
                                // Collect the set of all json files
                                File dir = new File(db.getDirectory(), TICKETS_PATH);
@@ -254,12 +253,12 @@ public class FileTicketService extends ITicketService {
                                                long ticketId = Long.parseLong(tid);
                                                List<Change> changes = TicketSerializer.deserializeJournal(json);
                                                if (ArrayUtils.isEmpty(changes)) {
-                                                       log.warn("Empty journal for {}:{}", model, journal);
+                                                       log.warn("Empty journal for {}:{}", models.get(i), journal);
                                                        continue;
                                                }
                                                TicketModel ticket = TicketModel.buildTicket(changes);
-                                               ticket.project = model.projectPath;
-                                               ticket.repository = model.name;
+                                               ticket.project = models.get(i).projectPath;
+                                               ticket.repository = models.get(i).name;
                                                ticket.number = ticketId;
        
                                                // add the ticket, conditionally, to the list
@@ -272,7 +271,7 @@ public class FileTicketService extends ITicketService {
                                                }
                                        } catch (Exception e) {
                                                log.error("failed to deserialize {}/{}\n{}",
-                                                               new Object [] { model, journal, e.getMessage()});
+                                                               new Object [] { models.get(i), journal, e.getMessage()});
                                                log.error(null, e);
                                        }
                                }
index 48256b2b3dff8c474c58e808580e875b2ea7a815..2c5b181fba225b0d7821204a2782451cf10c1cba 100644 (file)
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
-import org.eclipse.jgit.lib.Repository;
 
 import redis.clients.jedis.Client;
 import redis.clients.jedis.Jedis;
@@ -229,65 +228,47 @@ public class RedisTicketService extends ITicketService {
        public List<TicketModel> getTickets(RepositoryModel repository, TicketFilter filter) {
                Jedis jedis = pool.getResource();
                List<TicketModel> list = new ArrayList<TicketModel>();
-               List<RepositoryModel> models = new ArrayList<RepositoryModel>();
-               
-               if(repository == null)
-               {
-                       List<String> allRepo = repositoryManager.getRepositoryList();
-                       for(int i = 0; i < allRepo.size(); i++)
-                       {
-                               models.add(repositoryManager.getRepositoryModel(allRepo.get(i)));
-                       }
-               }
-               else
-               {
-                       models.add(repository);
-               }
-               
                if (jedis == null) {
                        return list;
                }
-               for(int i = 0; i < models.size(); i++)
-               {
-                       RepositoryModel model = models.get(i);
-                       try {
-                               // Deserialize each journal, build the ticket, and optionally filter
-                               Set<String> keys = jedis.keys(key(model, KeyType.journal, "*"));
-                               for (String key : keys) {
-                                       // {repo}:journal:{id}
-                                       String id = key.split(":")[2];
-                                       long ticketId = Long.parseLong(id);
-                                       List<Change> changes = getJournal(jedis, model, ticketId);
-                                       if (ArrayUtils.isEmpty(changes)) {
-                                               log.warn("Empty journal for {}:{}", model, ticketId);
-                                               continue;
-                                       }
-                                       TicketModel ticket = TicketModel.buildTicket(changes);
-                                       ticket.project = model.projectPath;
-                                       ticket.repository = model.name;
-                                       ticket.number = ticketId;
-       
-                                       // add the ticket, conditionally, to the list
-                                       if (filter == null) {
+               try {
+                       // Deserialize each journal, build the ticket, and optionally filter
+                       Set<String> keys = jedis.keys(key(repository, KeyType.journal, "*"));
+                       for (String key : keys) {
+                               // {repo}:journal:{id}
+                               String id = key.split(":")[2];
+                               long ticketId = Long.parseLong(id);
+                               List<Change> changes = getJournal(jedis, repository, ticketId);
+                               if (ArrayUtils.isEmpty(changes)) {
+                                       log.warn("Empty journal for {}:{}", repository, ticketId);
+                                       continue;
+                               }
+                               TicketModel ticket = TicketModel.buildTicket(changes);
+                               ticket.project = repository.projectPath;
+                               ticket.repository = repository.name;
+                               ticket.number = ticketId;
+
+                               // add the ticket, conditionally, to the list
+                               if (filter == null) {
+                                       list.add(ticket);
+                               } else {
+                                       if (filter.accept(ticket)) {
                                                list.add(ticket);
-                                       } else {
-                                               if (filter.accept(ticket)) {
-                                                       list.add(ticket);
-                                               }
                                        }
                                }
-                       } catch (JedisException e) {
-                               log.error("failed to retrieve tickets from Redis @ " + getUrl(), e);
-                               pool.returnBrokenResource(jedis);
-                               jedis = null;
-                       } finally {
-                               if (jedis != null) {
-                                       pool.returnResource(jedis);
-                               }
+                       }
+
+                       // sort the tickets by creation
+                       Collections.sort(list);
+               } catch (JedisException e) {
+                       log.error("failed to retrieve tickets from Redis @ " + getUrl(), e);
+                       pool.returnBrokenResource(jedis);
+                       jedis = null;
+               } finally {
+                       if (jedis != null) {
+                               pool.returnResource(jedis);
                        }
                }
-               // sort the tickets by creation
-               Collections.sort(list);
                return list;
        }