Skip to content

Commit 749726d

Browse files
authored
Merge pull request #74 from datorama/api-fix
api fix
2 parents a913feb + 4e49e89 commit 749726d

File tree

11 files changed

+87
-10
lines changed

11 files changed

+87
-10
lines changed

timbermill-java/timbermill-api/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<properties>
1717
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1818
<java.source-target.version>1.8</java.source-target.version>
19-
<timbermill.version>2.4.0</timbermill.version>
19+
<timbermill.version>2.4.1</timbermill.version>
2020
<slf4jVersion>1.7.28</slf4jVersion>
2121
</properties>
2222

timbermill-java/timbermill-api/src/main/java/com/datorama/oss/timbermill/EventLogger.java

+18
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,15 @@ String startEvent(String taskId, String name, String parentTaskId, LogParams log
9494
}
9595
}
9696

97+
void successEvent(String taskId) {
98+
if (!taskIdStack.isEmpty()) {
99+
String latestTaskId = taskIdStack.peek();
100+
if (latestTaskId != null && latestTaskId.equals(taskId)) {
101+
successEvent();
102+
}
103+
}
104+
}
105+
97106
String successEvent() {
98107
return successEvent(null, LogParams.create());
99108
}
@@ -111,6 +120,15 @@ String successEvent(String ongoingTaskId, LogParams logParams) {
111120
}
112121
}
113122

123+
void endWithError(String taskId, Throwable t) {
124+
if (!taskIdStack.isEmpty()) {
125+
String latestTaskId = taskIdStack.peek();
126+
if (latestTaskId != null && latestTaskId.equals(taskId)) {
127+
endWithError(t);
128+
}
129+
}
130+
}
131+
114132
String endWithError(Throwable t) {
115133
return endWithError(t, null, null);
116134
}

timbermill-java/timbermill-api/src/main/java/com/datorama/oss/timbermill/TimberLogger.java

+8
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,10 @@ public static String success(LogParams logParams) {
136136
return EventLogger.get().successEvent(null, logParams);
137137
}
138138

139+
public static void success(String taskId) {
140+
EventLogger.get().successEvent(taskId);
141+
}
142+
139143
public static String error() {
140144
return error(LogParams.create());
141145
}
@@ -152,6 +156,10 @@ public static String error(Throwable t, LogParams logParams) {
152156
return EventLogger.get().endWithError(t, null, logParams);
153157
}
154158

159+
public static void error(String taskId, Throwable t) {
160+
EventLogger.get().endWithError(taskId, t);
161+
}
162+
155163
public static String spot(String name) {
156164
return spot(name, null);
157165
}

timbermill-java/timbermill-client/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<properties>
1616
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1717
<java.source-target.version>1.8</java.source-target.version>
18-
<timbermill.version>2.4.0</timbermill.version>
18+
<timbermill.version>2.4.1</timbermill.version>
1919
<aspectj.version>1.9.6</aspectj.version>
2020
<org.springframework.version>5.3.4</org.springframework.version>
2121
</properties>

timbermill-java/timbermill-client/src/main/java/com/datorama/oss/timbermill/annotation/TimberLogAspect.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ public Object timberLog(ProceedingJoinPoint pjp, TimberLogTask timberLogAnnotati
1818
if (timberLogAnnotation.logParameters()) {
1919
logParams = getLogParamsForMethodParams(pjp, logParams);
2020
}
21-
TimberLogger.start(timberLogAnnotation.name(), logParams);
21+
String taskId = TimberLogger.start(timberLogAnnotation.name(), logParams);
2222
try {
2323
Object obj = pjp.proceed();
24-
TimberLogger.success();
24+
TimberLogger.success(taskId);
2525
return obj;
2626
} catch (Exception e){
27-
TimberLogger.error(e);
27+
TimberLogger.error(taskId, e);
2828
throw e;
2929
}
3030
}

timbermill-java/timbermill-local/pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
<properties>
1616
<java.source-target.version>1.8</java.source-target.version>
17-
<timbermill.version>2.4.0</timbermill.version>
17+
<timbermill.version>2.4.1</timbermill.version>
1818
<kamon.bundle.version>2.0.4</kamon.bundle.version>
1919
</properties>
2020

@@ -83,7 +83,7 @@
8383
<dependency>
8484
<groupId>com.amazonaws</groupId>
8585
<artifactId>aws-java-sdk-core</artifactId>
86-
<version>1.11.714</version>
86+
<version>1.11.965</version>
8787
</dependency>
8888
<dependency>
8989
<groupId>org.xerial</groupId>

timbermill-java/timbermill-local/src/main/java/com/datorama/oss/timbermill/AWSRequestSigningApacheInterceptor.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.datorama.oss.timbermill;
22

3+
import java.io.ByteArrayInputStream;
34
import java.io.IOException;
45
import java.net.URI;
56
import java.net.URISyntaxException;
@@ -60,7 +61,9 @@ public void process(final HttpRequest request, final HttpContext context) throws
6061
if (request instanceof HttpEntityEnclosingRequest) {
6162
HttpEntityEnclosingRequest httpEntityEnclosingRequest =
6263
(HttpEntityEnclosingRequest) request;
63-
if (httpEntityEnclosingRequest.getEntity() != null) {
64+
if (httpEntityEnclosingRequest.getEntity() == null) {
65+
signableRequest.setContent(new ByteArrayInputStream(new byte[0]));
66+
} else {
6467
signableRequest.setContent(httpEntityEnclosingRequest.getEntity().getContent());
6568
}
6669
}

timbermill-java/timbermill-server/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<properties>
1717
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1818
<java.source-target.version>1.8</java.source-target.version>
19-
<timbermill.version>2.4.0</timbermill.version>
19+
<timbermill.version>2.4.1</timbermill.version>
2020
<slf4jVersion>1.7.28</slf4jVersion>
2121
</properties>
2222

timbermill-java/timbermill-server/src/test/java/com/datorama/oss/timbermill/TimberLogLocalTest.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.datorama.oss.timbermill;
22

3-
import com.datorama.oss.timbermill.unit.LogParams;
43
import org.apache.commons.lang3.StringUtils;
54
import org.junit.AfterClass;
65
import org.junit.BeforeClass;
@@ -39,6 +38,11 @@ public void testSimpleTaskWithParams(){
3938
super.testSimpleTaskWithParams();
4039
}
4140

41+
@Test
42+
public void testEndWithingAnnotation(){
43+
super.testEndWithingAnnotation();
44+
}
45+
4246
@Test
4347
public void testSwitchCasePlugin() {
4448
super.testSwitchCasePlugin();

timbermill-java/timbermill-server/src/test/java/com/datorama/oss/timbermill/TimberLogServerTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public void testSimpleTaskWithParams(){
4040
super.testSimpleTaskWithParams();
4141
}
4242

43+
@Test
44+
public void testEndWithingAnnotation(){
45+
super.testEndWithingAnnotation();
46+
}
47+
4348
@Test
4449
public void testSwitchCasePlugin() {
4550
super.testSwitchCasePlugin();

timbermill-java/timbermill-server/src/test/java/com/datorama/oss/timbermill/TimberLogTest.java

+39
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import com.datorama.oss.timbermill.unit.LogParams;
77
import com.datorama.oss.timbermill.unit.Task;
88
import com.datorama.oss.timbermill.unit.TaskStatus;
9+
import com.google.common.collect.Lists;
910
import org.apache.commons.lang3.StringUtils;
1011
import org.apache.commons.lang3.tuple.Pair;
1112
import org.awaitility.Awaitility;
1213

14+
import java.util.ArrayList;
1315
import java.util.List;
1416
import java.util.Map;
1517
import java.util.concurrent.Callable;
@@ -169,6 +171,43 @@ protected void testSimpleTaskWithParams(){
169171
assertEquals(str2, strings.get(str2));
170172
}
171173

174+
protected void testEndWithingAnnotation(){
175+
List<String> taskIds = simpleTask1();
176+
177+
String taskId3 = taskIds.get(0);
178+
String taskId2 = taskIds.get(1);
179+
String taskId1 = taskIds.get(2);
180+
181+
waitForTask(taskId1, TaskStatus.SUCCESS, client);
182+
waitForTask(taskId2, TaskStatus.ERROR, client);
183+
waitForTask(taskId3, TaskStatus.SUCCESS, client);
184+
185+
}
186+
187+
@TimberLogTask(name = EVENT + "1")
188+
private ArrayList<String> simpleTask1() {
189+
String currentTaskId = TimberLogger.getCurrentTaskId();
190+
ArrayList<String> ids = simpleTask2();
191+
TimberLogger.success();
192+
ids.add(currentTaskId);
193+
return ids;
194+
}
195+
196+
@TimberLogTask(name = EVENT + "2")
197+
private ArrayList<String> simpleTask2() {
198+
String currentTaskId = TimberLogger.getCurrentTaskId();
199+
String taskId3 = simpleTask3();
200+
TimberLogger.error();
201+
return Lists.newArrayList(taskId3, currentTaskId);
202+
}
203+
204+
@TimberLogTask(name = EVENT + "3")
205+
private String simpleTask3() {
206+
String currentTaskId = TimberLogger.getCurrentTaskId();
207+
TimberLogger.success();
208+
return currentTaskId;
209+
}
210+
172211
@TimberLogTask(name = EVENT, logParameters = true)
173212
private String simpleTaskWithParams(String str, String str2) {
174213
return TimberLogger.getCurrentTaskId();

0 commit comments

Comments
 (0)