Skip to content

Commit 1d8dbd0

Browse files
committed
Remove dep to java.desktop / java.beans via inlining
1 parent d774e02 commit 1d8dbd0

File tree

3 files changed

+45
-6
lines changed

3 files changed

+45
-6
lines changed

hibernate5-jakarta/src/main/java/tools/jackson/datatype/hibernate5/jakarta/Hibernate5JProxySerializer.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package tools.jackson.datatype.hibernate5.jakarta;
22

3-
import java.beans.Introspector;
43
import java.lang.reflect.Field;
54
import java.lang.reflect.Method;
65
import java.util.HashMap;
@@ -289,13 +288,27 @@ static String getIdentifierPropertyName(LazyInitializer init) {
289288
}
290289
String name = idGetter.getName();
291290
if (name.startsWith("get")) {
292-
name = Introspector.decapitalize(name.substring(3));
291+
name = _decapitalize(name.substring(3));
293292
}
294293
return name;
295294
} catch (IllegalAccessException e) {
296295
throw new RuntimeException(e);
297296
}
298297
}
298+
299+
// Same as `java.beans.Introspector.decapitalize()`:
300+
private static String _decapitalize(String name) {
301+
if (name == null || name.length() == 0) {
302+
return name;
303+
}
304+
if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) &&
305+
Character.isUpperCase(name.charAt(0))){
306+
return name;
307+
}
308+
char[] chars = name.toCharArray();
309+
chars[0] = Character.toLowerCase(chars[0]);
310+
return new String(chars);
311+
}
299312
}
300313

301314
/**

hibernate6/src/main/java/tools/jackson/datatype/hibernate6/Hibernate6ProxySerializer.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package tools.jackson.datatype.hibernate6;
22

3-
import java.beans.Introspector;
43
import java.lang.reflect.Field;
54
import java.lang.reflect.Method;
65
import java.util.HashMap;
@@ -290,13 +289,27 @@ static String getIdentifierPropertyName(LazyInitializer init) {
290289
}
291290
String name = idGetter.getName();
292291
if (name.startsWith("get")) {
293-
name = Introspector.decapitalize(name.substring(3));
292+
name = _decapitalize(name.substring(3));
294293
}
295294
return name;
296295
} catch (IllegalAccessException e) {
297296
throw new RuntimeException(e);
298297
}
299298
}
299+
300+
// Same as `java.beans.Introspector.decapitalize()`:
301+
private static String _decapitalize(String name) {
302+
if (name == null || name.length() == 0) {
303+
return name;
304+
}
305+
if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) &&
306+
Character.isUpperCase(name.charAt(0))){
307+
return name;
308+
}
309+
char[] chars = name.toCharArray();
310+
chars[0] = Character.toLowerCase(chars[0]);
311+
return new String(chars);
312+
}
300313
}
301314

302315
protected static class ProxySessionReader {

hibernate7/src/main/java/tools/jackson/datatype/hibernate7/Hibernate7ProxySerializer.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package tools.jackson.datatype.hibernate7;
22

3-
import java.beans.Introspector;
43
import java.lang.reflect.Field;
54
import java.lang.reflect.Method;
65
import java.util.HashMap;
@@ -280,12 +279,26 @@ static String getIdentifierPropertyName(LazyInitializer init) {
280279
}
281280
String name = idGetter.getName();
282281
if (name.startsWith("get")) {
283-
name = Introspector.decapitalize(name.substring(3));
282+
name = _decapitalize(name.substring(3));
284283
}
285284
return name;
286285
} catch (IllegalAccessException e) {
287286
throw new RuntimeException(e);
288287
}
289288
}
289+
290+
// Same as `java.beans.Introspector.decapitalize()`:
291+
private static String _decapitalize(String name) {
292+
if (name == null || name.length() == 0) {
293+
return name;
294+
}
295+
if (name.length() > 1 && Character.isUpperCase(name.charAt(1)) &&
296+
Character.isUpperCase(name.charAt(0))){
297+
return name;
298+
}
299+
char[] chars = name.toCharArray();
300+
chars[0] = Character.toLowerCase(chars[0]);
301+
return new String(chars);
302+
}
290303
}
291304
}

0 commit comments

Comments
 (0)