Skip to content

Commit d755488

Browse files
committed
Cleanup Hibernate ORM bytecode enhancer
1 parent acb9e0f commit d755488

File tree

1 file changed

+11
-40
lines changed

1 file changed

+11
-40
lines changed

extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateEntityEnhancer.java

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import io.quarkus.hibernate.orm.deployment.integration.QuarkusClassFileLocator;
1818
import io.quarkus.hibernate.orm.deployment.integration.QuarkusEnhancementContext;
1919
import net.bytebuddy.ClassFileVersion;
20-
import net.bytebuddy.dynamic.ClassFileLocator;
2120

2221
/**
2322
* Used to transform bytecode by registering to
@@ -37,11 +36,15 @@ public final class HibernateEntityEnhancer implements BiFunction<String, ClassVi
3736
ClassFileVersion.JAVA_V17);
3837

3938
//Choose this set to include Jakarta annotations, basic Java types such as String and Map, Hibernate annotations, and Panache supertypes:
40-
private static final CoreTypePool CORE_POOL = new CoreTypePool("jakarta.persistence.", "java.",
39+
private static final CoreTypePool CORE_POOL = new CoreTypePool(
40+
"java.",
41+
"jakarta.",
42+
"org.hibernate.bytecode.enhance.spi.",
43+
"org.hibernate.engine.spi.",
4144
"org.hibernate.annotations.",
42-
"io.quarkus.hibernate.reactive.panache.", "io.quarkus.hibernate.orm.panache.",
43-
"org.hibernate.search.mapper.pojo.mapping.definition.annotation.",
44-
"jakarta.validation.constraints.");
45+
"io.quarkus.hibernate.reactive.panache.",
46+
"io.quarkus.hibernate.orm.panache.",
47+
"org.hibernate.search.mapper.pojo.mapping.definition.annotation.");
4548

4649
private final EnhancerHolder enhancerHolder = new EnhancerHolder();
4750

@@ -99,46 +102,14 @@ public Enhancer getEnhancer() {
99102
if (actualEnhancer == null) {
100103
synchronized (this) {
101104
if (actualEnhancer == null) {
102-
actualEnhancer = PROVIDER.getEnhancer(QuarkusEnhancementContext.INSTANCE, new ThreadsafeLocator());
105+
EnhancerClassLocator enhancerClassLocator = ModelTypePool
106+
.buildModelTypePool(QuarkusClassFileLocator.INSTANCE, CORE_POOL);
107+
actualEnhancer = PROVIDER.getEnhancer(QuarkusEnhancementContext.INSTANCE, enhancerClassLocator);
103108
}
104109
}
105110
}
106111
return actualEnhancer;
107112
}
108113
}
109114

110-
private static final class ThreadsafeLocator implements EnhancerClassLocator {
111-
112-
final ThreadLocal<EnhancerClassLocator> localLocator = ThreadLocal
113-
.withInitial(() -> ModelTypePool.buildModelTypePool(QuarkusClassFileLocator.INSTANCE,
114-
CORE_POOL));
115-
116-
@Override
117-
public void registerClassNameAndBytes(String s, byte[] bytes) {
118-
localLocator.get().registerClassNameAndBytes(s, bytes);
119-
}
120-
121-
@Override
122-
public void deregisterClassNameAndBytes(String s) {
123-
localLocator.get().deregisterClassNameAndBytes(s);
124-
}
125-
126-
@Override
127-
public ClassFileLocator asClassFileLocator() {
128-
return localLocator.get().asClassFileLocator();
129-
}
130-
131-
@Override
132-
public Resolution describe(String s) {
133-
return localLocator.get().describe(s);
134-
}
135-
136-
@Override
137-
public void clear() {
138-
//not essential as it gets discarded, but could help:
139-
localLocator.get().clear();
140-
localLocator.remove();
141-
}
142-
}
143-
144115
}

0 commit comments

Comments
 (0)