Using cbi18n in templates

When I need to add translations via cbi18n to my template code, I am currently defining them as computed properties like this:

<cfscript>
   property name="i18n" inject="resourceService@cbi18n";
   ...
    computed = {
        "i18nSearchPlaceholder": function() {
            return i18n.getResource( "admin.events.search.placeholder" );
        }
    };
</cfscript>

<cfoutput>
   ...
   <input wire:model.debounce.500ms="searchTerm" type="text" class="form-control" placeholder="#i18nSearchPlaceholder()#" />
   ...
</cfoutput>

Is there a less clumsy way to achieve this?

@faxi05 Yeah, you should be able to call any of the cbi18n helper methods from within your wires. What version of CBWIRE are you running?

@gcopley Thanks for your reply.

Running CBWIRE 3.1.5 and cbi18n 3.2.0. Calling a helper method like getResource() directly from within the template results in BaseRenderer.cfc throwing No matching function [GETCONTROLLER] found.

Full stack trace looks like this:

lucee.runtime.exp.ExpressionException: No matching function [GETCONTROLLER] found
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:797)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at models.renderer.baserenderer_cfc$cf.udfCall1(/cbwire/models/renderer/BaseRenderer.cfc:86)
    at models.renderer.baserenderer_cfc$cf.udfCall(/cbwire/models/renderer/BaseRenderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at modules.cbi18n.helpers.mixins_cfm$cf$6.udfCall(//modules/cbi18n/helpers/Mixins.cfm:58)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at modules.cbi18n.helpers.mixins_cfm$cf$6.udfCall(//modules/cbi18n/helpers/Mixins.cfm:36)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at models.tmp.turniereliste_cfm$cf$j.call(/cbwire/models/tmp/turniereListe.cfm:22)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:929)
    at models.renderer.rendererencapsulator_cfm$cf.call(/cbwire/models/renderer/RendererEncapsulator.cfm:52)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:940)
    at lucee.runtime.tag.CFTag.doInclude(CFTag.java:319)
    at lucee.runtime.tag.CFTag.cfmlStartTag(CFTag.java:245)
    at lucee.runtime.tag.CFTag.doStartTag(CFTag.java:179)
    at models.renderer.baserenderer_cfc$cf.udfCall6(/cbwire/models/renderer/BaseRenderer.cfc:857)
    at models.renderer.baserenderer_cfc$cf.udfCall(/cbwire/models/renderer/BaseRenderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:804)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at models.renderer.baserenderer_cfc$cf.udfCall1(/cbwire/models/renderer/BaseRenderer.cfc:187)
    at models.renderer.baserenderer_cfc$cf.udfCall(/cbwire/models/renderer/BaseRenderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:804)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at models.renderer.baserenderer_cfc$cf.udfCall5(/cbwire/models/renderer/BaseRenderer.cfc:779)
    at models.renderer.baserenderer_cfc$cf.udfCall(/cbwire/models/renderer/BaseRenderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1933)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at models.cbwireservice_cfc$cf.udfCall2(/cbwire/models/CBWireService.cfc:207)
    at models.cbwireservice_cfc$cf.udfCall(/cbwire/models/CBWireService.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:699)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1952)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at modules.cbwire.helpers.helpers_cfm$cf.udfCall(//modules/cbwire/helpers/helpers.cfm:34)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at views.admin.events_cfm$cf.call(/views/admin/events.cfm:5)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:929)
    at coldbox.system.web.rendererencapsulator_cfm$cf.call(/coldbox/system/web/RendererEncapsulator.cfm:57)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:940)
    at lucee.runtime.tag.CFTag.doInclude(CFTag.java:319)
    at lucee.runtime.tag.CFTag.cfmlStartTag(CFTag.java:245)
    at lucee.runtime.tag.CFTag.doStartTag(CFTag.java:179)
    at coldbox.system.web.renderer_cfc$cf.udfCall2(/coldbox/system/web/Renderer.cfc:452)
    at coldbox.system.web.renderer_cfc$cf.udfCall(/coldbox/system/web/Renderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at coldbox.system.web.renderer_cfc$cf.udfCall1(/coldbox/system/web/Renderer.cfc:337)
    at coldbox.system.web.renderer_cfc$cf.udfCall(/coldbox/system/web/Renderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:699)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1952)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at coldbox.system.web.renderer_cfc$cf.udfCall1(/coldbox/system/web/Renderer.cfc:63)
    at coldbox.system.web.renderer_cfc$cf.udfCall(/coldbox/system/web/Renderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at layouts.main_cfm$cf.call(/layouts/Main.cfm:78)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:929)
    at coldbox.system.web.rendererencapsulator_cfm$cf.call(/coldbox/system/web/RendererEncapsulator.cfm:57)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:1056)
    at lucee.runtime.PageContextImpl._doInclude(PageContextImpl.java:948)
    at lucee.runtime.PageContextImpl.doInclude(PageContextImpl.java:940)
    at lucee.runtime.tag.CFTag.doInclude(CFTag.java:319)
    at lucee.runtime.tag.CFTag.cfmlStartTag(CFTag.java:245)
    at lucee.runtime.tag.CFTag.doStartTag(CFTag.java:179)
    at coldbox.system.web.renderer_cfc$cf.udfCall2(/coldbox/system/web/Renderer.cfc:452)
    at coldbox.system.web.renderer_cfc$cf.udfCall(/coldbox/system/web/Renderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.type.scope.UndefinedImpl.callWithNamedValues(UndefinedImpl.java:804)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at coldbox.system.web.renderer_cfc$cf.udfCall2(/coldbox/system/web/Renderer.cfc:668)
    at coldbox.system.web.renderer_cfc$cf.udfCall(/coldbox/system/web/Renderer.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:213)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:699)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1952)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:866)
    at lucee.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1794)
    at coldbox.system.bootstrap_cfc$cf.udfCall1(/coldbox/system/Bootstrap.cfc:326)
    at coldbox.system.bootstrap_cfc$cf.udfCall(/coldbox/system/Bootstrap.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.type.scope.UndefinedImpl.call(UndefinedImpl.java:786)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at coldbox.system.bootstrap_cfc$cf.udfCall1(/coldbox/system/Bootstrap.cfc:506)
    at coldbox.system.bootstrap_cfc$cf.udfCall(/coldbox/system/Bootstrap.cfc)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1933)
    at lucee.runtime.util.VariableUtilImpl.callFunctionWithoutNamedValues(VariableUtilImpl.java:787)
    at lucee.runtime.PageContextImpl.getFunction(PageContextImpl.java:1775)
    at application_cfc$cf.udfCall(/Application.cfc:64)
    at lucee.runtime.type.UDFImpl.implementation(UDFImpl.java:112)
    at lucee.runtime.type.UDFImpl._call(UDFImpl.java:350)
    at lucee.runtime.type.UDFImpl.call(UDFImpl.java:223)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:698)
    at lucee.runtime.ComponentImpl._call(ComponentImpl.java:586)
    at lucee.runtime.ComponentImpl.call(ComponentImpl.java:1933)
    at lucee.runtime.listener.ModernAppListener.call(ModernAppListener.java:444)
    at lucee.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:135)
    at lucee.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:44)
    at lucee.runtime.PageContextImpl.execute(PageContextImpl.java:2493)
    at lucee.runtime.PageContextImpl._execute(PageContextImpl.java:2478)
    at lucee.runtime.PageContextImpl.executeCFML(PageContextImpl.java:2449)
    at lucee.runtime.engine.Request.exe(Request.java:45)
    at lucee.runtime.engine.CFMLEngineImpl._service(CFMLEngineImpl.java:1216)
    at lucee.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:1162)
    at lucee.loader.engine.CFMLEngineWrapper.serviceCFML(CFMLEngineWrapper.java:97)
    at lucee.loader.servlet.CFMLServlet.service(CFMLServlet.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:47)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at runwar.undertow.SSLClientCertHeaderHandler.handleRequest(SSLClientCertHeaderHandler.java:144)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:257)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:182)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:188)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:136)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:99)
    at org.cfmlprojects.regexpathinfofilter.RegexPathInfoFilter.doFilter(RegexPathInfoFilter.java:45)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at runwar.undertow.SSLClientCertHeaderHandler.handleRequest(SSLClientCertHeaderHandler.java:144)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:257)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToPath(ServletInitialHandler.java:182)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:188)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:136)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:99)
    at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:215)
    at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
    at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:405)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at runwar.undertow.SSLClientCertHeaderHandler.handleRequest(SSLClientCertHeaderHandler.java:144)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
    at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
    at java.base/java.lang.Thread.run(Thread.java:829)

@faxi05 I believe I have this resolved now in CBWIRE 3.1.8. You should be able to call any helper methods from other modules in your CBWIRE templates like this:

<cfoutput>
    <div>
        cbi18n says: #$r( "test" )#
    </div>
</cfoutput>

Hopefully, this cleans things up a bit and removes the need to make computed properties for simple things such as this.

To get the latest changes, you ran run either of these from CommandBox:

box install cbwire@3.1 --force
box install cbwire@3.1.8 --force
1 Like

@faxi05 Also, for myself I’m kind of getting away from computed properties since I added the ability to call component methods from the template directly ( I think I added that in 3.0 ).

For example:

<cfscript>
computed = {
    "tomorrow" : function() {
        return dateAdd( "d", 1, now() );
    }
}
</cfscript>

<cfoutput>
    <div>#tomorrow()#</div>
</cfoutput>

This can be replaced with this:

<cfscript>
    function tomorrow() {
        return dateAdd( "d", 1, now() );
    }
</cfscript>

<cfoutput>
    <div>#tomorrow()#</div>
</cfoutput>

Computed properties are staying in CBWIRE, I just don’t find that I need them as much unless I’m calling a method repeatedly in the template and need the computation cached.

Yep, CBWIRE 3.1.8 works nicely for me as well. Thanks for the super fast update! :smiley:

1 Like