mirror of
https://github.com/apache/struts.git
synced 2026-08-06 07:06:58 +00:00
Fixup StrutsConverterFactory
It should delegate back to ObjectFactory#buildBean instead of directly calling Container#inject, otherwise overrides of buildBean in subclasses of ObjectFactory e.g. SpringObjectFactory are skipped; meaning that TypeConverters cannot make use of Spring dependency injection Fixes: https://issues.apache.org/jira/projects/WW/issues/WW-5524
This commit is contained in:
committed by
Lukasz Lenart
parent
036c4ddb74
commit
a92568423e
@@ -18,8 +18,8 @@
|
||||
*/
|
||||
package com.opensymphony.xwork2.factory;
|
||||
|
||||
import com.opensymphony.xwork2.ObjectFactory;
|
||||
import com.opensymphony.xwork2.conversion.TypeConverter;
|
||||
import com.opensymphony.xwork2.inject.Container;
|
||||
import com.opensymphony.xwork2.inject.Inject;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@@ -33,16 +33,15 @@ public class StrutsConverterFactory implements ConverterFactory {
|
||||
|
||||
private static final Logger LOG = LogManager.getLogger(StrutsConverterFactory.class);
|
||||
|
||||
private Container container;
|
||||
private ObjectFactory objectFactory;
|
||||
|
||||
@Inject
|
||||
public void setContainer(Container container) {
|
||||
this.container = container;
|
||||
public void setObjectFactory(ObjectFactory objectFactory) {
|
||||
this.objectFactory = objectFactory;
|
||||
}
|
||||
|
||||
public TypeConverter buildConverter(Class<? extends TypeConverter> converterClass, Map<String, Object> extraContext) throws Exception {
|
||||
LOG.debug("Creating converter of type [{}]", converterClass.getCanonicalName());
|
||||
return container.inject(converterClass);
|
||||
return (TypeConverter)objectFactory.buildBean(converterClass, extraContext);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user