Skip to content

Commit 95f978f

Browse files
committed
Rename InstantiationContext to Instance
1 parent a4b0806 commit 95f978f

15 files changed

+217
-214
lines changed

dirk-cdi/src/main/java/org/int4/dirk/cdi/InstanceInjectionTargetExtension.java

+21-22
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
import org.int4.dirk.api.instantiation.AmbiguousResolutionException;
77
import org.int4.dirk.api.instantiation.UnsatisfiedResolutionException;
88
import org.int4.dirk.spi.instantiation.InjectionTargetExtension;
9-
import org.int4.dirk.spi.instantiation.InstantiationContext;
9+
import org.int4.dirk.spi.instantiation.Instance;
1010
import org.int4.dirk.spi.instantiation.Resolution;
1111
import org.int4.dirk.util.TypeVariables;
1212

13-
import jakarta.enterprise.inject.Instance;
1413
import jakarta.enterprise.util.TypeLiteral;
1514

1615
/**
@@ -19,51 +18,51 @@
1918
*
2019
* @param <T> the provided type
2120
*/
22-
public class InstanceInjectionTargetExtension<T> extends InjectionTargetExtension<Instance<T>, T> {
21+
public class InstanceInjectionTargetExtension<T> extends InjectionTargetExtension<jakarta.enterprise.inject.Instance<T>, T> {
2322

2423
/**
2524
* Constructs a new instance.
2625
*/
2726
public InstanceInjectionTargetExtension() {
28-
super(TypeVariables.get(Instance.class, 0), Resolution.LAZY, DefaultInstance::new);
27+
super(TypeVariables.get(jakarta.enterprise.inject.Instance.class, 0), Resolution.LAZY, DefaultInstance::new);
2928
}
3029

31-
private static final class DefaultInstance<T> implements Instance<T> {
32-
final InstantiationContext<T> context;
30+
private static final class DefaultInstance<T> implements jakarta.enterprise.inject.Instance<T> {
31+
final Instance<T> instance;
3332

34-
DefaultInstance(InstantiationContext<T> context) {
35-
this.context = context;
33+
DefaultInstance(Instance<T> instance) {
34+
this.instance = instance;
3635
}
3736

3837
@Override
3938
public T get() {
40-
return context.get();
39+
return instance.get();
4140
}
4241

4342
@Override
4443
public Iterator<T> iterator() {
45-
return context.getAll().iterator();
44+
return instance.getAll().iterator();
4645
}
4746

4847
@Override
49-
public Instance<T> select(Annotation... qualifiers) {
50-
return new DefaultInstance<>(context.select(qualifiers));
48+
public jakarta.enterprise.inject.Instance<T> select(Annotation... qualifiers) {
49+
return new DefaultInstance<>(instance.select(qualifiers));
5150
}
5251

5352
@Override
54-
public <U extends T> Instance<U> select(Class<U> subtype, Annotation... qualifiers) {
55-
return new DefaultInstance<>(context.select(subtype, qualifiers));
53+
public <U extends T> jakarta.enterprise.inject.Instance<U> select(Class<U> subtype, Annotation... qualifiers) {
54+
return new DefaultInstance<>(instance.select(subtype, qualifiers));
5655
}
5756

5857
@Override
59-
public <U extends T> Instance<U> select(TypeLiteral<U> literal, Annotation... qualifiers) {
60-
return new DefaultInstance<>(context.select(literal.getRawType(), qualifiers));
58+
public <U extends T> jakarta.enterprise.inject.Instance<U> select(TypeLiteral<U> literal, Annotation... qualifiers) {
59+
return new DefaultInstance<>(instance.select(literal.getRawType(), qualifiers));
6160
}
6261

6362
@Override
64-
public boolean isUnsatisfied() { // TODO this implementation is sub par; improve when extensions to InstantiationContext interface are finalized
63+
public boolean isUnsatisfied() { // TODO this implementation is sub par; improve when extensions to Instance interface are finalized
6564
try {
66-
context.get();
65+
instance.get();
6766

6867
return false;
6968
}
@@ -76,9 +75,9 @@ public <U extends T> Instance<U> select(TypeLiteral<U> literal, Annotation... qu
7675
}
7776

7877
@Override
79-
public boolean isAmbiguous() { // TODO this implementation is sub par; improve when extensions to InstantiationContext interface are finalized
78+
public boolean isAmbiguous() { // TODO this implementation is sub par; improve when extensions to Instance interface are finalized
8079
try {
81-
context.get();
80+
instance.get();
8281

8382
return false;
8483
}
@@ -91,9 +90,9 @@ public <U extends T> Instance<U> select(TypeLiteral<U> literal, Annotation... qu
9190
}
9291

9392
@Override
94-
public boolean isResolvable() { // TODO this implementation is sub par; improve when extensions to InstantiationContext interface are finalized
93+
public boolean isResolvable() { // TODO this implementation is sub par; improve when extensions to Instance interface are finalized
9594
try {
96-
context.get();
95+
instance.get();
9796

9897
return true;
9998
}

dirk-core/src/main/java/org/int4/dirk/core/DefaultInjectableFactory.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
*/
3939
class DefaultInjectableFactory implements InjectableFactory {
4040
private final ScopeResolverManager scopeResolverManager;
41-
private final InstantiationContextFactory instantiationContextFactory;
41+
private final InstanceFactory instanceFactory;
4242
private final AnnotationStrategy annotationStrategy;
4343
private final ScopeStrategy scopeStrategy;
4444
private final Set<Class<?>> extendedTypes;
@@ -47,14 +47,14 @@ class DefaultInjectableFactory implements InjectableFactory {
4747
* Constructs a new instance.
4848
*
4949
* @param scopeResolverManager a {@link ScopeResolverManager}, cannot be {@code null}
50-
* @param instantiationContextFactory an {@link InstantiationContextFactory}, cannot be {@code null}
50+
* @param instanceFactory an {@link InstanceFactory}, cannot be {@code null}
5151
* @param annotationStrategy a {@link AnnotationStrategy}, cannot be {@code null}
5252
* @param scopeStrategy a {@link ScopeStrategy}, cannot be {@code null}
5353
* @param extendedTypes a set of {@link Class} for which injection target extensions are in use, cannot be {@code null} or contain {@code null} but can be empty
5454
*/
55-
DefaultInjectableFactory(ScopeResolverManager scopeResolverManager, InstantiationContextFactory instantiationContextFactory, AnnotationStrategy annotationStrategy, ScopeStrategy scopeStrategy, Set<Class<?>> extendedTypes) {
55+
DefaultInjectableFactory(ScopeResolverManager scopeResolverManager, InstanceFactory instanceFactory, AnnotationStrategy annotationStrategy, ScopeStrategy scopeStrategy, Set<Class<?>> extendedTypes) {
5656
this.scopeResolverManager = Objects.requireNonNull(scopeResolverManager, "scopeResolverManager");
57-
this.instantiationContextFactory = Objects.requireNonNull(instantiationContextFactory, "instantiationContextFactory");
57+
this.instanceFactory = Objects.requireNonNull(instanceFactory, "instanceFactory");
5858
this.annotationStrategy = Objects.requireNonNull(annotationStrategy, "annotationStrategy");
5959
this.scopeStrategy = Objects.requireNonNull(scopeStrategy, "scopeStrategy");
6060
this.extendedTypes = Objects.requireNonNull(extendedTypes, "extendedTypes");
@@ -116,7 +116,7 @@ public <T> Injectable<T> create(Type ownerType, Member member, AnnotatedElement
116116
}
117117

118118
private InjectionTarget toInjectionTarget(Binding binding, ScopeResolver scopeResolver) {
119-
Instantiator<?> instantiator = instantiationContextFactory.createInstantiator(new Key(binding.getType(), binding.getQualifiers()), binding.isOptional(), scopeResolver.getAnnotation());
119+
Instantiator<?> instantiator = instanceFactory.createInstantiator(new Key(binding.getType(), binding.getQualifiers()), binding.isOptional(), scopeResolver.getAnnotation());
120120

121121
return new InjectionTarget() {
122122
@Override

dirk-core/src/main/java/org/int4/dirk/core/DefaultInstanceResolver.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,16 @@
1717
*/
1818
class DefaultInstanceResolver implements InstanceResolver {
1919
private final Resolver<Injectable<?>> resolver;
20-
private final InstantiationContextFactory instantiationContextFactory;
20+
private final InstanceFactory instanceFactory;
2121

2222
/**
2323
* Constructs a new instance.
2424
*
25-
* @param instantiationContextFactory an {@link InstantiationContextFactory}, cannot be {@code null}
25+
* @param instanceFactory an {@link InstanceFactory}, cannot be {@code null}
2626
*/
27-
DefaultInstanceResolver(Resolver<Injectable<?>> resolver, InstantiationContextFactory instantiationContextFactory) {
27+
DefaultInstanceResolver(Resolver<Injectable<?>> resolver, InstanceFactory instanceFactory) {
2828
this.resolver = resolver;
29-
this.instantiationContextFactory = instantiationContextFactory;
29+
this.instanceFactory = instanceFactory;
3030
}
3131

3232
@Override
@@ -50,10 +50,10 @@ public <T> List<T> getInstances(Class<T> cls, Object... qualifiers) throws Creat
5050
}
5151

5252
private <T> T getInstance(Key key) throws UnsatisfiedResolutionException, AmbiguousResolutionException, CreationException, ScopeNotActiveException {
53-
return instantiationContextFactory.<T>createContext(resolver, key, false).get();
53+
return instanceFactory.<T>createInstance(resolver, key, false).get();
5454
}
5555

5656
private <T> List<T> getInstances(Key key) throws CreationException {
57-
return instantiationContextFactory.<T>createContext(resolver, key, false).getAll();
57+
return instanceFactory.<T>createInstance(resolver, key, false).getAll();
5858
}
5959
}

dirk-core/src/main/java/org/int4/dirk/core/InstantiationContextFactory.java dirk-core/src/main/java/org/int4/dirk/core/InstanceFactory.java

+19-19
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.int4.dirk.api.instantiation.UnsatisfiedResolutionException;
1818
import org.int4.dirk.api.scope.ScopeException;
1919
import org.int4.dirk.api.scope.ScopeNotActiveException;
20-
import org.int4.dirk.core.RootInstantiationContextFactory.RootInstantiationContext;
20+
import org.int4.dirk.core.RootInstanceFactory.RootInstance;
2121
import org.int4.dirk.core.definition.Binding;
2222
import org.int4.dirk.core.definition.ExtendedScopeResolver;
2323
import org.int4.dirk.core.definition.Injectable;
@@ -30,25 +30,25 @@
3030
import org.int4.dirk.spi.config.AnnotationStrategy;
3131
import org.int4.dirk.spi.config.ProxyStrategy;
3232
import org.int4.dirk.spi.instantiation.InjectionTargetExtension;
33+
import org.int4.dirk.spi.instantiation.Instance;
3334
import org.int4.dirk.spi.instantiation.InstanceProvider;
34-
import org.int4.dirk.spi.instantiation.InstantiationContext;
3535
import org.int4.dirk.spi.instantiation.Resolution;
3636
import org.int4.dirk.spi.scope.CreationalContext;
3737
import org.int4.dirk.spi.scope.ScopeResolver;
3838
import org.int4.dirk.util.Types;
3939

4040
/**
41-
* Factory for {@link InstantiationContext}s.
41+
* Factory for {@link Instance}s.
4242
*/
43-
class InstantiationContextFactory {
44-
private static final Logger LOGGER = Logger.getLogger(InstantiationContextFactory.class.getName());
43+
class InstanceFactory {
44+
private static final Logger LOGGER = Logger.getLogger(InstanceFactory.class.getName());
4545
private static final ExtendedCreationalContext<?> NULL_CONTEXT = new FixedCreationalContext<>(null);
4646

4747
private static boolean strictOrder;
4848

4949
private final ProxyStrategy proxyStrategy;
5050
private final InjectionTargetExtensionStore injectionTargetExtensionStore;
51-
private final RootInstantiationContextFactory rootInstantiationContextFactory;
51+
private final RootInstanceFactory rootInstanceFactory;
5252
private final ThreadLocal<Deque<ExtendedCreationalContext<?>>> stack = ThreadLocal.withInitial(ArrayDeque::new);
5353

5454
/**
@@ -58,14 +58,14 @@ class InstantiationContextFactory {
5858
* @param proxyStrategy a {@link ProxyStrategy}, cannot be {@code null}
5959
* @param injectionTargetExtensionStore an {@link InjectionTargetExtensionStore}, cannot be {@code null}
6060
*/
61-
InstantiationContextFactory(AnnotationStrategy annotationStrategy, ProxyStrategy proxyStrategy, InjectionTargetExtensionStore injectionTargetExtensionStore) {
61+
InstanceFactory(AnnotationStrategy annotationStrategy, ProxyStrategy proxyStrategy, InjectionTargetExtensionStore injectionTargetExtensionStore) {
6262
this.proxyStrategy = Objects.requireNonNull(proxyStrategy, "proxyStrategy");
6363
this.injectionTargetExtensionStore = Objects.requireNonNull(injectionTargetExtensionStore, "injectionTargetExtensionStore");
64-
this.rootInstantiationContextFactory = new RootInstantiationContextFactory(annotationStrategy);
64+
this.rootInstanceFactory = new RootInstanceFactory(annotationStrategy);
6565
}
6666

67-
<T> InstantiationContext<T> createContext(Resolver<Injectable<?>> resolver, Key key, boolean optional) {
68-
return rootInstantiationContextFactory.create(resolver, createInstantiatorInternal(key, optional, null));
67+
<T> Instance<T> createInstance(Resolver<Injectable<?>> resolver, Key key, boolean optional) {
68+
return rootInstanceFactory.create(resolver, createInstantiatorInternal(key, optional, null));
6969
}
7070

7171
<T> Instantiator<T> createInstantiator(Key key, boolean optional, Annotation parentScope) {
@@ -156,13 +156,13 @@ public ExtendedCreationalContext<T> create(Resolver<Injectable<?>> resolver) thr
156156
return castContext;
157157
}
158158

159-
RootInstantiationContext<E, ?> instantiationContext = rootInstantiationContextFactory.create(resolver, elementInstantiator);
160-
InjectionTargetExtensionCreationalContext<T, E> creationalContext = new InjectionTargetExtensionCreationalContext<>(stack.get().isEmpty() ? null : stack.get().getLast(), resolution == Resolution.LAZY ? instantiationContext : null);
159+
RootInstance<E, ?> instance = rootInstanceFactory.create(resolver, elementInstantiator);
160+
InjectionTargetExtensionCreationalContext<T, E> creationalContext = new InjectionTargetExtensionCreationalContext<>(stack.get().isEmpty() ? null : stack.get().getLast(), resolution == Resolution.LAZY ? instance : null);
161161

162162
open(resolution == Resolution.LAZY ? NULL_CONTEXT : creationalContext);
163163

164164
try {
165-
creationalContext.initialize(instanceProvider.getInstance(instantiationContext), resolution == Resolution.LAZY);
165+
creationalContext.initialize(instanceProvider.getInstance(instance), resolution == Resolution.LAZY);
166166

167167
return creationalContext;
168168
}
@@ -350,16 +350,16 @@ public void attach(ExtendedCreationalContext<?> creationalContext) {
350350

351351
private static final class InjectionTargetExtensionCreationalContext<T, E> implements ExtendedCreationalContext<T> {
352352
private final ExtendedCreationalContext<?> parent;
353-
private final RootInstantiationContext<E, ?> instantiationContext;
353+
private final RootInstance<E, ?> rootInstance;
354354

355355
private T instance;
356356
private boolean needsDestroy;
357357
private boolean initialized;
358358
private List<CreationalContext<?>> children;
359359

360-
InjectionTargetExtensionCreationalContext(ExtendedCreationalContext<?> parent, RootInstantiationContext<E, ?> context) {
360+
InjectionTargetExtensionCreationalContext(ExtendedCreationalContext<?> parent, RootInstance<E, ?> rootInstance) {
361361
this.parent = parent;
362-
this.instantiationContext = context;
362+
this.rootInstance = rootInstance;
363363
}
364364

365365
void initialize(T instance, boolean needsDestroy) {
@@ -395,8 +395,8 @@ public final void attach(ExtendedCreationalContext<?> child) {
395395

396396
@Override
397397
public void release() {
398-
if(instantiationContext != null) {
399-
instantiationContext.release();
398+
if(rootInstance != null) {
399+
rootInstance.release();
400400
}
401401

402402
if(children != null) {
@@ -443,7 +443,7 @@ public boolean needsDestroy() {
443443
*
444444
* <p>A {@code CreationalContext} is created whenever an {@link Injectable} is obtained from
445445
* a {@link ScopeResolver}. If the resolver decides to create a new instance, it will
446-
* call recursively into a {@link InstantiationContext}.
446+
* call recursively into a {@link Instance}.
447447
*/
448448
private class LazyCreationalContext<T> implements ExtendedCreationalContext<T> {
449449
private final ExtendedCreationalContext<?> parent;

0 commit comments

Comments
 (0)