Skip to content

Commit

Permalink
Add flag to TraceRepository to reverse order of listing
Browse files Browse the repository at this point in the history
Default to true (so existing apps change their behaviour, but that
seems to be the majority vote).

Fixes spring-projectsgh-2794
  • Loading branch information
dsyer committed Apr 9, 2015
1 parent b45bb6d commit 8ef21b3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package org.springframework.boot.actuate.trace;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

Expand All @@ -31,7 +31,18 @@ public class InMemoryTraceRepository implements TraceRepository {

private int capacity = 100;

private final List<Trace> traces = new ArrayList<Trace>();
private boolean reverse = true;

private final List<Trace> traces = new LinkedList<Trace>();

/**
* Flag to say that the repository lists traces in reverse order.
*
* @param reverse flag value (default true)
*/
public void setReverse(boolean reverse) {
this.reverse = reverse;
}

/**
* @param capacity the capacity to set
Expand All @@ -52,9 +63,14 @@ public void add(Map<String, Object> map) {
Trace trace = new Trace(new Date(), map);
synchronized (this.traces) {
while (this.traces.size() >= this.capacity) {
this.traces.remove(0);
this.traces.remove(this.capacity - 1);
}
if (this.reverse) {
this.traces.add(0, trace);
}
else {
this.traces.add(trace);
}
this.traces.add(trace);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public void capacityLimited() {
this.repository.add(Collections.<String, Object> singletonMap("bar", "bar"));
List<Trace> traces = this.repository.findAll();
assertEquals(2, traces.size());
assertEquals("bar", traces.get(1).getInfo().get("bar"));
assertEquals("bar", traces.get(0).getInfo().get("bar"));
}

}

0 comments on commit 8ef21b3

Please sign in to comment.