Skip to content

Commit 04f34ad

Browse files
committed
#163 - Add ignore of jakarta packages to fast path for ignoring enhancement
1 parent 99b29c8 commit 04f34ad

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

src/main/java/io/ebean/enhance/common/IgnoreClassHelper.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,14 @@
1414
class IgnoreClassHelper {
1515

1616
private static final Set<String> ignoreOneLevel = new HashSet<>();
17-
1817
private static final Set<String> ignoreTwoLevel = new HashSet<>();
18+
private static final Set<String> ignoreThreeLevel = new HashSet<>();
1919

2020
static {
2121
ignoreOneLevel.add("jdk");
2222
ignoreOneLevel.add("java");
2323
ignoreOneLevel.add("javax");
24+
ignoreOneLevel.add("jakarta");
2425
ignoreOneLevel.add("play");
2526
ignoreOneLevel.add("sbt");
2627
ignoreOneLevel.add("scala");
@@ -68,10 +69,15 @@ class IgnoreClassHelper {
6869
ignoreTwoLevel.add("com/squareup");
6970
ignoreTwoLevel.add("com/microsoft");
7071
ignoreTwoLevel.add("com/oracle");
71-
ignoreTwoLevel.add("org/avaje");
7272
ignoreTwoLevel.add("io/ebean");
7373
ignoreTwoLevel.add("io/ebeaninternal");
7474
ignoreTwoLevel.add("io/ebeanservice");
75+
76+
ignoreThreeLevel.add("io/avaje/config");
77+
ignoreThreeLevel.add("io/avaje/classpath");
78+
ignoreThreeLevel.add("io/avaje/http");
79+
ignoreThreeLevel.add("io/avaje/inject");
80+
ignoreThreeLevel.add("io/avaje/jex");
7581
}
7682

7783
IgnoreClassHelper() {
@@ -89,21 +95,17 @@ class IgnoreClassHelper {
8995
* @return true if this class should not be processed.
9096
*/
9197
boolean isIgnoreClass(String className) {
92-
9398
if (className == null || "bsh/Interpreter".equals(className)) {
9499
return true;
95100
}
96-
97101
className = className.replace('.', '/');
98102

99103
// we will ignore packages that we know we don't want to
100104
// process (they won't contain entity beans etc).
101-
102-
// ignore $Proxy classes
103105
if (className.startsWith("$")) {
106+
// ignore $Proxy classes
104107
return true;
105108
}
106-
107109
int firstSlash = className.indexOf('/');
108110
if (firstSlash == -1) {
109111
return true;
@@ -118,6 +120,13 @@ boolean isIgnoreClass(String className) {
118120
if (ignoreTwoLevel.contains(secondPackage)) {
119121
return true;
120122
}
123+
int thirdSlash = className.indexOf('/', secondSlash + 1);
124+
if (thirdSlash > -1) {
125+
String thirdPackage = className.substring(0, thirdSlash);
126+
if (ignoreThreeLevel.contains(thirdPackage)) {
127+
return true;
128+
}
129+
}
121130
}
122131
return className.contains("$ByteBuddy$");
123132
}

src/test/java/io/ebean/enhance/common/IgnoreClassHelperTest.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public void test() {
2222
assertTrue(ignoreClassHelper.isIgnoreClass("org/apache/Something"));
2323
assertTrue(ignoreClassHelper.isIgnoreClass("junit/Something"));
2424
assertTrue(ignoreClassHelper.isIgnoreClass("javax/Something"));
25+
assertTrue(ignoreClassHelper.isIgnoreClass("jakarta/Something"));
2526
assertTrue(ignoreClassHelper.isIgnoreClass("play/Something"));
2627
assertTrue(ignoreClassHelper.isIgnoreClass("sbt/Something"));
2728
assertTrue(ignoreClassHelper.isIgnoreClass("scala/Something"));
@@ -38,9 +39,14 @@ public void test() {
3839

3940
assertTrue(ignoreClassHelper.isIgnoreClass("io/ebeaninternal/Something"));
4041
assertTrue(ignoreClassHelper.isIgnoreClass("io/ebean/Something"));
41-
assertTrue(ignoreClassHelper.isIgnoreClass("org/avaje/Something"));
42-
43-
42+
assertTrue(ignoreClassHelper.isIgnoreClass("io/avaje/config/Something"));
43+
assertTrue(ignoreClassHelper.isIgnoreClass("io/avaje/classpath/Something"));
44+
assertTrue(ignoreClassHelper.isIgnoreClass("io/avaje/inject/Something"));
45+
assertTrue(ignoreClassHelper.isIgnoreClass("io/avaje/http/Something"));
46+
assertTrue(ignoreClassHelper.isIgnoreClass("io/avaje/jex/Something"));
47+
48+
assertFalse(ignoreClassHelper.isIgnoreClass("org/avaje/Something"));
49+
assertFalse(ignoreClassHelper.isIgnoreClass("io/avaje/Something"));
4450
assertFalse(ignoreClassHelper.isIgnoreClass("org/koda/Foo"));
4551
assertFalse(ignoreClassHelper.isIgnoreClass("foo/Foo"));
4652
assertFalse(ignoreClassHelper.isIgnoreClass("bar/pixie/Foo"));

0 commit comments

Comments
 (0)