@@ -151,6 +151,31 @@ public final BeanOverrideStrategy getStrategy() {
151
151
return this .strategy ;
152
152
}
153
153
154
+ /**
155
+ * {@linkplain #createOverrideInstance Create} and
156
+ * {@linkplain #trackOverrideInstance track} a bean override instance for an
157
+ * existing {@link BeanDefinition} or an existing singleton bean, based on the
158
+ * metadata in this {@code BeanOverrideHandler}.
159
+ * @param beanName the name of the bean being overridden
160
+ * @param existingBeanDefinition an existing bean definition for the supplied
161
+ * bean name, or {@code null} if not available or not relevant
162
+ * @param existingBeanInstance an existing instance for the supplied bean name
163
+ * for wrapping purposes, or {@code null} if not available or not relevant
164
+ * @param singletonBeanRegistry a registry in which this handler can store
165
+ * tracking state in the form of a singleton bean
166
+ * @return the instance with which to override the bean
167
+ * @see #trackOverrideInstance(Object, SingletonBeanRegistry)
168
+ * @see #createOverrideInstance(String, BeanDefinition, Object)
169
+ */
170
+ final Object createOverrideInstance (
171
+ String beanName , @ Nullable BeanDefinition existingBeanDefinition ,
172
+ @ Nullable Object existingBeanInstance , SingletonBeanRegistry singletonBeanRegistry ) {
173
+
174
+ Object override = createOverrideInstance (beanName , existingBeanDefinition , existingBeanInstance );
175
+ trackOverrideInstance (override , singletonBeanRegistry );
176
+ return override ;
177
+ }
178
+
154
179
/**
155
180
* Create a bean override instance for an existing {@link BeanDefinition} or
156
181
* an existing singleton bean, based on the metadata in this
@@ -172,11 +197,11 @@ protected abstract Object createOverrideInstance(String beanName,
172
197
* <p>The default implementation does not track the supplied instance, but
173
198
* this can be overridden in subclasses as appropriate.
174
199
* @param override the bean override instance to track
175
- * @param trackingBeanRegistry a registry in which this handler can store
200
+ * @param singletonBeanRegistry a registry in which this handler can store
176
201
* tracking state in the form of a singleton bean
177
202
* @see #createOverrideInstance(String, BeanDefinition, Object)
178
203
*/
179
- protected void trackOverrideInstance (Object override , SingletonBeanRegistry trackingBeanRegistry ) {
204
+ protected void trackOverrideInstance (Object override , SingletonBeanRegistry singletonBeanRegistry ) {
180
205
// NO-OP
181
206
}
182
207
0 commit comments