39
39
import com .fasterxml .jackson .core .JsonParser ;
40
40
import com .fasterxml .jackson .databind .DeserializationFeature ;
41
41
import com .fasterxml .jackson .databind .ObjectMapper ;
42
- import com .fasterxml .jackson .databind .PropertyNamingStrategy ;
42
+ import com .fasterxml .jackson .databind .PropertyNamingStrategies ;
43
43
import java .io .IOException ;
44
44
import java .lang .reflect .InvocationTargetException ;
45
45
import java .net .URL ;
@@ -60,7 +60,7 @@ public class TracingHandler extends RequestHandler2 {
60
60
private static final Log logger = LogFactory .getLog (TracingHandler .class );
61
61
62
62
private static final ObjectMapper MAPPER = new ObjectMapper ()
63
- .setPropertyNamingStrategy (PropertyNamingStrategy . CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES )
63
+ .setPropertyNamingStrategy (PropertyNamingStrategies . SNAKE_CASE )
64
64
.configure (DeserializationFeature .FAIL_ON_UNKNOWN_PROPERTIES , false )
65
65
.configure (JsonParser .Feature .ALLOW_COMMENTS , true );
66
66
@@ -81,9 +81,9 @@ public class TracingHandler extends RequestHandler2 {
81
81
82
82
private static final HandlerContextKey <Entity > ENTITY_KEY = new HandlerContextKey <>("AWS X-Ray Entity" );
83
83
private static final HandlerContextKey <Long > EXECUTING_THREAD_KEY = new HandlerContextKey <>("AWS X-Ray Executing Thread ID" );
84
-
85
- private static final String TO_SNAKE_CASE_REGEX = "([a-z])([A-Z]+)" ;
86
- private static final String TO_SNAKE_CASE_REPLACE = "$1_$2" ;
84
+
85
+ private static final PropertyNamingStrategies . NamingBase
86
+ SNAKE_CASE_NAMING_STRATEGY = ( PropertyNamingStrategies . NamingBase ) PropertyNamingStrategies . SNAKE_CASE ;
87
87
88
88
private final String accountId ;
89
89
@@ -206,10 +206,6 @@ private String extractOperationName(Request<?> request) {
206
206
return ret ;
207
207
}
208
208
209
- private static String toSnakeCase (String camelCase ) {
210
- return camelCase .replaceAll (TO_SNAKE_CASE_REGEX , TO_SNAKE_CASE_REPLACE ).toLowerCase ();
211
- }
212
-
213
209
private HashMap <String , Object > extractRequestParameters (Request <?> request ) {
214
210
HashMap <String , Object > ret = new HashMap <>();
215
211
if (null == awsServiceHandlerManifest ) {
@@ -235,7 +231,7 @@ private HashMap<String, Object> extractRequestParameters(Request<?> request) {
235
231
Object parameterValue = originalRequest
236
232
.getClass ().getMethod (GETTER_METHOD_NAME_PREFIX + parameterName ).invoke (originalRequest );
237
233
if (null != parameterValue ) {
238
- ret .put (TracingHandler . toSnakeCase (parameterName ), parameterValue );
234
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (parameterName ), parameterValue );
239
235
}
240
236
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e ) {
241
237
logger .error ("Error getting request parameter: " + parameterName , e );
@@ -255,7 +251,7 @@ private HashMap<String, Object> extractRequestParameters(Request<?> request) {
255
251
if (null != parameterValue ) {
256
252
String renameTo =
257
253
null != requestDescriptor .getRenameTo () ? requestDescriptor .getRenameTo () : requestKeyName ;
258
- ret .put (TracingHandler . toSnakeCase (renameTo ), parameterValue .keySet ());
254
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (renameTo ), parameterValue .keySet ());
259
255
}
260
256
} else if (requestDescriptor .isList () && requestDescriptor .shouldGetCount ()) {
261
257
@ SuppressWarnings ("unchecked" )
@@ -265,7 +261,7 @@ private HashMap<String, Object> extractRequestParameters(Request<?> request) {
265
261
if (null != parameterValue ) {
266
262
String renameTo =
267
263
null != requestDescriptor .getRenameTo () ? requestDescriptor .getRenameTo () : requestKeyName ;
268
- ret .put (TracingHandler . toSnakeCase (renameTo ), parameterValue .size ());
264
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (renameTo ), parameterValue .size ());
269
265
}
270
266
}
271
267
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassCastException e ) {
@@ -300,7 +296,7 @@ private HashMap<String, Object> extractResponseParameters(Request<?> request, Ob
300
296
Object parameterValue = response
301
297
.getClass ().getMethod (GETTER_METHOD_NAME_PREFIX + parameterName ).invoke (response );
302
298
if (null != parameterValue ) {
303
- ret .put (TracingHandler . toSnakeCase (parameterName ), parameterValue );
299
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (parameterName ), parameterValue );
304
300
}
305
301
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e ) {
306
302
logger .error ("Error getting response parameter: " + parameterName , e );
@@ -319,7 +315,7 @@ private HashMap<String, Object> extractResponseParameters(Request<?> request, Ob
319
315
if (null != parameterValue ) {
320
316
String renameTo =
321
317
null != responseDescriptor .getRenameTo () ? responseDescriptor .getRenameTo () : responseKeyName ;
322
- ret .put (TracingHandler . toSnakeCase (renameTo ), parameterValue .keySet ());
318
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (renameTo ), parameterValue .keySet ());
323
319
}
324
320
} else if (responseDescriptor .isList () && responseDescriptor .shouldGetCount ()) {
325
321
@ SuppressWarnings ("unchecked" )
@@ -329,7 +325,7 @@ private HashMap<String, Object> extractResponseParameters(Request<?> request, Ob
329
325
if (null != parameterValue ) {
330
326
String renameTo =
331
327
null != responseDescriptor .getRenameTo () ? responseDescriptor .getRenameTo () : responseKeyName ;
332
- ret .put (TracingHandler . toSnakeCase (renameTo ), parameterValue .size ());
328
+ ret .put (SNAKE_CASE_NAMING_STRATEGY . translate (renameTo ), parameterValue .size ());
333
329
}
334
330
}
335
331
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassCastException e ) {
0 commit comments