Figured this out:

        Map<String, Object> contextMap = new HashMap<String, Object>();
        contextMap.put(StrutsStatics.HTTP_REQUEST, getServletRequest());
        ActionContext context = new ActionContext(contextMap);
        context.setLocale(Locale.getDefault());
        // 
http://mail-archives.apache.org/mod_mbox/struts-user/201001.mbox/%3c637b76e41001151852x119c9cd4vbbe6ff560e56e...@mail.gmail.com%3E

        ConfigurationManager configurationManager = new 
ConfigurationManager(Container.DEFAULT_NAME);
        OgnlValueStackFactory factory = new OgnlValueStackFactory();
        configurationManager.addContainerProvider(new 
XWorkConfigurationProvider());
        configurationManager.reload();
        Container container = 
configurationManager.getConfiguration().getContainer();
        container.inject(factory);

        LocalizedTextProvider instance = 
container.getInstance(LocalizedTextProvider.class);
        instance.addDefaultResourceBundle(“…");

…


-- 
_________________________________________________________
Adam Brin
Director of Technology, Digital Antiquity
480.965.1278

> On Jul 13, 2017, at 11:08 AM, Adam Brin <ab...@digitalantiquity.org> wrote:
> 
> Hi,
>  With the removal of the TextProviderFactory and it’s replacement with beans, 
> I can’t figure out how to properly setup our test environment (when testing 
> Controllers that are autowired by spring.  How do I inject a custom 
> resourceBundle into the ActionContext or stack?  I used to be able to create 
> my own textProvider, but this no longer works.    I’ve seen code like the 
> following in the struts2 tests, but localizedTextProvider is null here:
> 
>        LocalizedTextProvider localizedTextProvider = 
> container.getInstance(LocalizedTextProvider.class);
> 
> I think if I can get the localizedTextProvider properly installed into the 
> container, I’d be fine, but I can’t see how to do that. Here’s our setup code 
> that worked with Struts 2.5.10:
> 
> 
>   T controller = applicationContext.getBean(controllerClass);
>        if (controller instanceof AbstractAuthenticatableAction) {
>            TdarActionSupport tas = (TdarActionSupport) controller;
>            tas.setServletRequest(getServletRequest());
>            tas.setServletResponse(getServletResponse());
>            // set the context
>        }
>        Map<String, Object> contextMap = new HashMap<String, Object>();
>        contextMap.put(StrutsStatics.HTTP_REQUEST, getServletRequest());
>        ActionContext context = new ActionContext(contextMap);
>        context.setLocale(Locale.getDefault());
> 
>        ConfigurationManager configurationManager = new ConfigurationManager();
>        OgnlValueStackFactory factory = new OgnlValueStackFactory();
> 
>        // FIXME: needs to be a better way to handle this
>        TextProviderFactory textProviderFactory = new TextProviderFactory();
> 
>        
> factory.setTextProvider(textProviderFactory.createInstance(getResourceBundle(),
>  (LocaleProvider) controller));
> 
>        configurationManager.addContainerProvider(new 
> XWorkConfigurationProvider());
>        configurationManager.getConfiguration().getContainer().inject(factory);
>        if (controller instanceof ActionSupport) {
>            ((ActionSupport) 
> controller).setContainer(configurationManager.getConfiguration().getContainer());
>        }
>        ValueStack stack = factory.createValueStack();
> 
>        context.setValueStack(stack);
>        ActionContext.setContext(context);
> -- 
> _________________________________________________________
> Adam Brin
> Director of Technology, Digital Antiquity
> 480.965.1278
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to