Skip to content

Commit f79ee1c

Browse files
authored
Merge pull request #4934 from arjantijms/fix_injectionpoint
2 parents 140b4ab + 6d0cb6e commit f79ee1c

File tree

9 files changed

+40
-15
lines changed

9 files changed

+40
-15
lines changed

ext/bean-validation/src/main/java/org/glassfish/jersey/server/validation/internal/hibernate/DestructibleBeanInstance.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import jakarta.enterprise.inject.spi.AnnotatedType;
1313
import jakarta.enterprise.inject.spi.BeanManager;
1414
import jakarta.enterprise.inject.spi.InjectionTarget;
15+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
1516

1617
/**
1718
* @author Hardy Ferentschik
@@ -43,7 +44,9 @@ public void destroy() {
4344

4445
private InjectionTarget<T> createInjectionTarget(BeanManager beanManager, Class<T> type) {
4546
AnnotatedType<T> annotatedType = beanManager.createAnnotatedType(type);
46-
return beanManager.createInjectionTarget(annotatedType);
47+
InjectionTargetFactory<T> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
48+
49+
return injectionTargetFactory.createInjectionTarget(null);
4750
}
4851

4952
private static <T> T createAndInjectBeans(BeanManager beanManager, InjectionTarget<T> injectionTarget) {

ext/cdi/jersey-cdi1x-servlet/src/main/java/org/glassfish/jersey/ext/cdi1x/servlet/internal/CdiExternalRequestScopeExtension.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2015, 2021 Oracle and/or its affiliates. All rights reserved.
33
* Copyright (c) 2018 Payara Foundation and/or its affiliates.
44
*
55
* This program and the accompanying materials are made available under the
@@ -35,6 +35,7 @@
3535
import jakarta.enterprise.inject.spi.Extension;
3636
import jakarta.enterprise.inject.spi.InjectionPoint;
3737
import jakarta.enterprise.inject.spi.InjectionTarget;
38+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3839
import jakarta.enterprise.util.AnnotationLiteral;
3940

4041
/**
@@ -69,7 +70,10 @@ private void beforeBeanDiscovery(@Observes BeforeBeanDiscovery beforeBeanDiscove
6970
private void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
7071

7172
// we need the injection target so that CDI could instantiate the original interceptor for us
72-
final InjectionTarget<CdiExternalRequestScope> interceptorTarget = beanManager.createInjectionTarget(requestScopeType);
73+
final InjectionTargetFactory<CdiExternalRequestScope> injectionTargetFactory =
74+
beanManager.getInjectionTargetFactory(requestScopeType);
75+
final InjectionTarget<CdiExternalRequestScope> interceptorTarget =
76+
injectionTargetFactory.createInjectionTarget(null);
7377

7478

7579
afterBeanDiscovery.addBean(new Bean<CdiExternalRequestScope>() {

ext/cdi/jersey-cdi1x-validation/src/main/java/org/glassfish/jersey/ext/cdi1x/validation/internal/CdiInterceptorWrapperExtension.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import jakarta.enterprise.inject.spi.Extension;
3838
import jakarta.enterprise.inject.spi.InjectionPoint;
3939
import jakarta.enterprise.inject.spi.InjectionTarget;
40+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
4041
import jakarta.enterprise.util.AnnotationLiteral;
4142
import jakarta.interceptor.Interceptor;
4243

@@ -100,7 +101,10 @@ private void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery,
100101

101102
// we need the injection target so that CDI could instantiate the original interceptor for us
102103
final AnnotatedType<ValidationInterceptor> interceptorType = interceptorAnnotatedType;
103-
final InjectionTarget<ValidationInterceptor> interceptorTarget = beanManager.createInjectionTarget(interceptorType);
104+
final InjectionTargetFactory<ValidationInterceptor> injectionTargetFactory =
105+
beanManager.getInjectionTargetFactory(interceptorType);
106+
final InjectionTarget<ValidationInterceptor> interceptorTarget =
107+
injectionTargetFactory.createInjectionTarget(null);
104108

105109

106110
afterBeanDiscovery.addBean(new Bean<ValidationInterceptor>() {

incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/bean/BeanHelper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import jakarta.enterprise.inject.spi.Bean;
2929
import jakarta.enterprise.inject.spi.BeanManager;
3030
import jakarta.enterprise.inject.spi.InjectionTarget;
31+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3132
import jakarta.ws.rs.HttpMethod;
3233
import jakarta.ws.rs.Path;
3334
import jakarta.ws.rs.RuntimeType;
@@ -105,7 +106,8 @@ public static <T> void registerBean(RuntimeType runtimeType, InitializableInstan
105106
public static <T> BindingBeanPair registerBean(RuntimeType runtimeType, ClassBinding<T> binding, AfterBeanDiscovery abd,
106107
Collection<InjectionResolver> resolvers, BeanManager beanManager) {
107108
AnnotatedType<T> annotatedType = beanManager.createAnnotatedType(binding.getService());
108-
InjectionTarget<T> injectionTarget = beanManager.createInjectionTarget(annotatedType);
109+
InjectionTargetFactory<T> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
110+
InjectionTarget<T> injectionTarget = injectionTargetFactory.createInjectionTarget(null);
109111

110112
ClassBean<T> bean = new ClassBean<>(runtimeType, binding);
111113
bean.setInjectionTarget(getJerseyInjectionTarget(binding.getService(), injectionTarget, bean, resolvers));

incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/CdiInjectionManager.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import jakarta.enterprise.inject.spi.Bean;
3030
import jakarta.enterprise.inject.spi.BeanManager;
3131
import jakarta.enterprise.inject.spi.InjectionTarget;
32+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3233
import jakarta.enterprise.inject.spi.Unmanaged;
3334
import jakarta.inject.Singleton;
3435
import jakarta.ws.rs.RuntimeType;
@@ -295,10 +296,12 @@ public <T> List<T> getAllInstances(Type contractOrImpl) {
295296
@Override
296297
@SuppressWarnings("unchecked")
297298
public void inject(Object instance) {
299+
CreationalContext creationalContext = createCreationalContext(null);
298300
AnnotatedType annotatedType = beanManager.createAnnotatedType((Class) instance.getClass());
299-
InjectionTarget injectionTarget = beanManager.createInjectionTarget(annotatedType);
300-
CreationalContext context = createCreationalContext(null);
301-
injectionTarget.inject(instance, context);
301+
InjectionTargetFactory injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
302+
InjectionTarget injectionTarget = injectionTargetFactory.createInjectionTarget(null);
303+
304+
injectionTarget.inject(instance, creationalContext);
302305
}
303306

304307
@Override

incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/scope/RequestScopeBean.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import jakarta.enterprise.inject.spi.BeanManager;
3131
import jakarta.enterprise.inject.spi.InjectionPoint;
3232
import jakarta.enterprise.inject.spi.InjectionTarget;
33+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3334
import jakarta.enterprise.util.AnnotationLiteral;
3435
import jakarta.inject.Singleton;
3536

@@ -49,7 +50,8 @@ public class RequestScopeBean implements Bean<CdiRequestScope> {
4950
*/
5051
public RequestScopeBean(BeanManager beanManager) {
5152
AnnotatedType<CdiRequestScope> annotatedType = beanManager.createAnnotatedType(CdiRequestScope.class);
52-
this.injectionTarget = beanManager.createInjectionTarget(annotatedType);
53+
InjectionTargetFactory<CdiRequestScope> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
54+
this.injectionTarget = injectionTargetFactory.createInjectionTarget(null);
5355
}
5456

5557
@Override

inject/cdi2-se/src/main/java/org/glassfish/jersey/inject/cdi/se/CdiSeInjectionManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import jakarta.enterprise.inject.spi.Bean;
3333
import jakarta.enterprise.inject.spi.BeanManager;
3434
import jakarta.enterprise.inject.spi.InjectionTarget;
35+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3536
import jakarta.enterprise.inject.spi.Unmanaged;
3637

3738
import org.glassfish.jersey.inject.cdi.se.bean.JerseyBean;
@@ -236,9 +237,11 @@ public <T> List<T> getAllInstances(Type contractOrImpl) {
236237
@SuppressWarnings("unchecked")
237238
public void inject(Object instance) {
238239
if (isInitialized()) {
239-
AnnotatedType annotatedType = beanManager.createAnnotatedType((Class) instance.getClass());
240-
InjectionTarget injectionTarget = beanManager.createInjectionTarget(annotatedType);
241240
CreationalContext context = beanManager.createCreationalContext(null);
241+
AnnotatedType annotatedType = beanManager.createAnnotatedType((Class) instance.getClass());
242+
InjectionTargetFactory injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
243+
InjectionTarget injectionTarget = injectionTargetFactory.createInjectionTarget(null);
244+
242245
injectionTarget.inject(instance, context);
243246
}
244247
}

inject/cdi2-se/src/main/java/org/glassfish/jersey/inject/cdi/se/RequestScopeBean.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2017, 2021 Oracle and/or its affiliates. All rights reserved.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -30,6 +30,7 @@
3030
import jakarta.enterprise.inject.spi.BeanManager;
3131
import jakarta.enterprise.inject.spi.InjectionPoint;
3232
import jakarta.enterprise.inject.spi.InjectionTarget;
33+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
3334
import jakarta.enterprise.util.AnnotationLiteral;
3435
import jakarta.inject.Singleton;
3536

@@ -49,7 +50,8 @@ public class RequestScopeBean implements Bean<CdiRequestScope> {
4950
*/
5051
public RequestScopeBean(BeanManager beanManager) {
5152
AnnotatedType<CdiRequestScope> annotatedType = beanManager.createAnnotatedType(CdiRequestScope.class);
52-
this.injectionTarget = beanManager.createInjectionTarget(annotatedType);
53+
InjectionTargetFactory<CdiRequestScope> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
54+
this.injectionTarget = injectionTargetFactory.createInjectionTarget(null);
5355
}
5456

5557
@Override

inject/cdi2-se/src/main/java/org/glassfish/jersey/inject/cdi/se/bean/BeanHelper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2017, 2021 Oracle and/or its affiliates. All rights reserved.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -26,6 +26,7 @@
2626
import jakarta.enterprise.inject.spi.Bean;
2727
import jakarta.enterprise.inject.spi.BeanManager;
2828
import jakarta.enterprise.inject.spi.InjectionTarget;
29+
import jakarta.enterprise.inject.spi.InjectionTargetFactory;
2930

3031
import org.glassfish.jersey.inject.cdi.se.injector.CachedConstructorAnalyzer;
3132
import org.glassfish.jersey.inject.cdi.se.injector.InjectionUtils;
@@ -99,7 +100,8 @@ public static <T> void registerBean(InstanceBinding<T> binding, AfterBeanDiscove
99100
public static <T> void registerBean(ClassBinding<T> binding, AfterBeanDiscovery abd, Collection<InjectionResolver> resolvers,
100101
BeanManager beanManager) {
101102
AnnotatedType<T> annotatedType = beanManager.createAnnotatedType(binding.getService());
102-
InjectionTarget<T> injectionTarget = beanManager.createInjectionTarget(annotatedType);
103+
InjectionTargetFactory<T> injectionTargetFactory = beanManager.getInjectionTargetFactory(annotatedType);
104+
InjectionTarget<T> injectionTarget = injectionTargetFactory.createInjectionTarget(null);
103105

104106
ClassBean<T> bean = new ClassBean<>(binding);
105107
bean.setInjectionTarget(getJerseyInjectionTarget(binding.getService(), injectionTarget, bean, resolvers));

0 commit comments

Comments
 (0)