<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>OGNL Expression Compilation</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/css/syntax.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>

  <!-- Matomo -->
  <script>
    var _paq = window._paq = window._paq || [];
    /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
    /* We explicitly disable cookie tracking to avoid privacy issues */
    _paq.push(['disableCookies']);
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
      var u="//analytics.apache.org/";
      _paq.push(['setTrackerUrl', u+'matomo.php']);
      _paq.push(['setSiteId', '41']);
      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
      g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
    })();
  </script>
  <!-- End Matomo Code -->
</head>
<body>

<a href="https://github.com/apache/struts" class="github-ribbon">
  <img decoding="async" loading="lazy" style="position: absolute; right: 0; border: 0;" width="149" height="149" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_red_aa0000.png?resize=149%2C149" class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce-2024.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li><a href="/commercial-support.html">Commercial Support</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ognl-expression-compilation.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <a href="index" title="back to Tag Developers Guide"><< back to Tag Developers Guide</a>
    
    <h1 class="no_toc" id="ognl-expression-compilation">OGNL Expression Compilation</h1>

<ul id="markdown-toc">
  <li><a href="#tapestry-ognl-integration" id="markdown-toc-tapestry-ognl-integration">Tapestry OGNL Integration</a></li>
  <li><a href="#expressionevaluator" id="markdown-toc-expressionevaluator">ExpressionEvaluator</a></li>
  <li><a href="#hivemindexpressioncompiler" id="markdown-toc-hivemindexpressioncompiler">HiveMindExpressionCompiler</a></li>
  <li><a href="#expressionbinding" id="markdown-toc-expressionbinding">ExpressionBinding</a></li>
  <li><a href="#beanproviderpropertyaccessor--custom-propertyaccessor-implementations" id="markdown-toc-beanproviderpropertyaccessor--custom-propertyaccessor-implementations">BeanProviderPropertyAccessor / Custom PropertyAccessor implementations</a></li>
  <li><a href="#compiler-errors" id="markdown-toc-compiler-errors">Compiler Errors</a></li>
  <li><a href="#compile-vs-normal-expression-evaluation" id="markdown-toc-compile-vs-normal-expression-evaluation">Compile vs. normal expression evaluation</a></li>
  <li><a href="#snapshot-repository" id="markdown-toc-snapshot-repository">Snapshot Repository</a></li>
</ul>

<p>This document is meant as a development/integration guide for anyone wanting to use the new OGNL 2.7 features for doing 
byte code runtime enhancements on OGNL statements.  This is <em>not</em>  meant for general user reference as it covers what 
are mostly internal API development concerns.</p>

<p>## Basic Usage</p>

<p>By default there isn’t much you have to do to use the new compilation abilities in OGNL.  Following is an example of compiling 
a simple property expression and invoking it.</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">SimpleObject</span> <span class="n">root</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">SimpleObject</span><span class="o">();</span>
<span class="nc">OgnlContext</span> <span class="n">context</span> <span class="o">=</span>  <span class="o">(</span><span class="nc">OgnlContext</span><span class="o">)</span> <span class="nc">Ognl</span><span class="o">.</span><span class="na">createDefaultContext</span><span class="o">(</span><span class="kc">null</span><span class="o">);</span>

<span class="nc">Node</span> <span class="n">node</span> <span class="o">=</span>  <span class="o">(</span><span class="nc">Node</span><span class="o">)</span> <span class="nc">Ognl</span><span class="o">.</span><span class="na">compileExpression</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">root</span><span class="o">,</span> <span class="s">"user.name"</span><span class="o">);</span>
<span class="nc">String</span> <span class="n">userName</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="na">getAccessor</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">root</span><span class="o">);</span>
</code></pre></div></div>

<p>You’ll notice that this example references the new <code class="language-plaintext highlighter-rouge">ognl.enhance.ExpressionAccessor</code> class.  This is the interface used 
to create the enhanced expression versions of any given expression via javassist and should be used to set/get expression 
values from the compiled versions of the code.  Although the old <code class="language-plaintext highlighter-rouge">Ognl.getValue(node, context, root)</code> method of getting/setting 
values will correctly detect a compiled expression and use the accessor directly as well,  it’s not going to be as fast 
as you doing it directly.</p>

<p>## ognl.enhance.OgnlExpressionCompiler</p>

<p>The core class involved in doing the management of these expression compilations by default is <code class="language-plaintext highlighter-rouge">ognl.enhance.ExpressionCompiler</code>, 
which implements <code class="language-plaintext highlighter-rouge">ognl.enhance.OgnlExpressionCompiler</code>. Although you can in theory use this default implementation it 
is not recommended for more robust integration points - such as being incorporated within a web framework. The majority 
of examples here are going to be based around the strategy that Tapestry has used to integrate these new features.</p>

<h2 id="tapestry-ognl-integration">Tapestry OGNL Integration</h2>

<p>There are only small handful of classes/services involved in the Tapestry implementation of these features, so hopefully 
using them as a reference will help anyone trying to get started with this:</p>

<ul>
  <li><a href="http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/HiveMindExpressionCompiler.java?view=markup">org.apache.tapestry.services.impl.HiveMindExpressionCompiler</a>
The Tapestry implementation of <code class="language-plaintext highlighter-rouge">ognl.enhance.OgnlExpressionCompiler</code> - which is a subclass 
of the <code class="language-plaintext highlighter-rouge">ognl.enhance.ExpressionCompiler</code> default implementation.
_ <a href="http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionEvaluatorImpl.java?view=markup">org.apache.tapestry.services.impl.ExpressionEvaluatorImpl</a>
Main service point involved in compiling/evaluating OGNL expressions.  This is the core service that the rest of Tapestry 
uses when dealing with OGNL expressions.</li>
  <li><a href="http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/ExpressionCacheImpl.java?view=markup">org.apache.tapestry.services.impl.ExpressionCacheImpl</a>
Service responsible for caching OGNL statements where appropriate.</li>
  <li><a href="http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/binding/ExpressionBinding.java?view=markup">org.apache.tapestry.binding.ExpressionBinding</a>
Wrapper class which represents a single OGNL binding expression within Tapestry templates/annotations/html/etc. 
Anything formally specified in an html attribute for components in Tapestry is represented by a specific type of <code class="language-plaintext highlighter-rouge">IBinding</code>,
<code class="language-plaintext highlighter-rouge">ExpressionBinding</code> represents the type of bindings for OGNL expressions.</li>
  <li><a href="http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/bean/BeanProviderPropertyAccessor.java?view=markup">org.apache.tapestry.bean.BeanProviderPropertyAccessor</a>
One of the custom <code class="language-plaintext highlighter-rouge">PropertyAccessor</code> classes Tapestry registers with OGNL. This will be a good reference for the new 
source code generation methods you will need to implement for your <code class="language-plaintext highlighter-rouge">PropertyAccessor</code> classes if you want to compile 
expressions.</li>
</ul>

<h2 id="expressionevaluator">ExpressionEvaluator</h2>

<p>If you look at the <code class="language-plaintext highlighter-rouge">ExpressionEvaluator</code> source you’ll see a block of initialization where the <code class="language-plaintext highlighter-rouge">HiveMindExpressionCompiler</code>
and <code class="language-plaintext highlighter-rouge">OgnlContext</code> pools are setup:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">OgnlRuntime</span><span class="o">.</span><span class="na">setCompiler</span><span class="o">(</span><span class="k">new</span> <span class="nc">HiveMindExpressionCompiler</span><span class="o">(</span><span class="n">_classFactory</span><span class="o">));</span>

<span class="n">_contextPool</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">GenericObjectPool</span><span class="o">(</span><span class="k">new</span> <span class="nc">PoolableOgnlContextFactory</span><span class="o">(</span><span class="n">_ognlResolver</span><span class="o">,</span> <span class="n">_typeConverter</span><span class="o">));</span>

<span class="n">_contextPool</span><span class="o">.</span><span class="na">setMaxActive</span><span class="o">(-</span><span class="mi">1</span><span class="o">);</span>
<span class="n">_contextPool</span><span class="o">.</span><span class="na">setMaxIdle</span><span class="o">(-</span><span class="mi">1</span><span class="o">);</span>
<span class="n">_contextPool</span><span class="o">.</span><span class="na">setMinEvictableIdleTimeMillis</span><span class="o">(</span><span class="no">POOL_MIN_IDLE_TIME</span><span class="o">);</span>
<span class="n">_contextPool</span><span class="o">.</span><span class="na">setTimeBetweenEvictionRunsMillis</span><span class="o">(</span><span class="no">POOL_SLEEP_TIME</span><span class="o">);</span>
</code></pre></div></div>

<p>Some things like null handlers/property accessor configuration has been left out but you should have enough there to get 
a good idea of what is going on.  Because creating new OgnlContext objects for every expression evaluation can be needlessly 
expensive Tapestry uses the Apache commons-pool library to manage pooling of these instances.  It is recommended that 
you do the same where you can. You will also notice in other portions of the source some new method calls made on 
<code class="language-plaintext highlighter-rouge">OgnlRuntime</code>:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">OgnlRuntime</span><span class="o">.</span><span class="na">clearCache</span><span class="o">();</span>
<span class="nc">Introspector</span><span class="o">.</span><span class="na">flushCaches</span><span class="o">();</span>
</code></pre></div></div>

<p>The OgnlRuntime class stores static <code class="language-plaintext highlighter-rouge">Map</code>-like instances of reflection meta cache information for all objects evaluated 
in OGNL expressions.  The new <code class="language-plaintext highlighter-rouge">clearCache</code> method clears these caches out as the memory footprint can get quite large 
after a while. How often/when to call this will largely depend on how your framework works - just keep in mind that 
calling it too often will have a big impact on runtime performance of your app if you are doing normal application 
development sort of things with it.</p>

<h2 id="hivemindexpressioncompiler">HiveMindExpressionCompiler</h2>

<p>Perhaps the most important class to examine is Tapestrys implementation of <code class="language-plaintext highlighter-rouge">OgnlExpressionCompiler</code>. This class still 
extends the default <code class="language-plaintext highlighter-rouge">ExpressionCompiler</code> provided by OGNL - but does a few more things that can’t be made generic enough 
to live in the default implementation.</p>

<p>One of these important differences is how Javassist is used to compile the expressions and the ClassLoader/ClassResolver 
it uses.  Because these expressions are being compiled against what are already Javassist enhanced Tapestry component 
class instances this implementation needed to re-use existing hivemind Javassist services so that these enhanced classes 
could be correctly resolved while OGNL is evaluating them.</p>

<p>If you don’t have a need to provide this kind of classloading functionality you will probably still need to modify 
at least how the javassist <code class="language-plaintext highlighter-rouge">ClassPool</code> is being managed in your own implementations. The internal functionality of that 
library is such that the memory consumption of the pool is very large and will get unwieldy especially in development 
of web apps.  Tapestry has a special state that users are used to which is known as “disable caching” - more or less 
meaning that javassist enhancements happen for every request instead of only once.</p>

<p>Another very important piece of logic that this class handles is the generation of “fail safe” getters/setters when 
expressions just can’t be compiled because of either internal errors or a specific syntax type used isn’t yet able to support 
javassist compilations.  This logic can sometimes get tricky in that in many instances OGNL expressions won’t be compilable 
because the full expression contains a null reference.  The basic idea is that the compiler keeps trying to compile these 
kinds of expressions until it either gets a fatal exception thrown or the full expression is able to be resolved. 
For example, the following expression would throw a <code class="language-plaintext highlighter-rouge">UnsupportedCompilationException</code> if the “user” object returned 
was null - resulting in no direct compilation being done at all:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"user.firstName"
</code></pre></div></div>

<p>That doesn’t mean that the user object might not be resolvable the next time this expression is invoked though, 
so the next time the compiler tries it may succeed in which case the whole expression is enhanced and the new <code class="language-plaintext highlighter-rouge">ExpressionAccessor</code>
instance is attached to the root <code class="language-plaintext highlighter-rouge">Node</code> object by calling <code class="language-plaintext highlighter-rouge">SimpleNode.setAccessor(newInstance)</code>.</p>

<p>The fail safe logic is there for expressions that are likely to never be resolvable for one reason or another. In these 
instances a <code class="language-plaintext highlighter-rouge">ExpressionAccessor</code> class instance is still created - with the major difference being that instead of pure 
java object expressions being compiled the get/set methods on the instance just call back to the standard OGNL 
getValue/setValue methods:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="nc">Object</span> <span class="nf">get</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">root</span><span class="o">)</span>
<span class="o">{</span>
  <span class="k">return</span> <span class="n">_node</span><span class="o">.</span><span class="na">getValue</span><span class="o">(</span><span class="err">$</span><span class="mi">1</span><span class="o">,</span> <span class="err">$</span><span class="mi">2</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div></div>

<p>The <code class="language-plaintext highlighter-rouge">$1, $2</code> references are Javassist constructs which allow you to specify the first and second argument passed in 
to the calling method.</p>

<h2 id="expressionbinding">ExpressionBinding</h2>

<p>As stated previously, this class represents a single OGNL expression in Tapestry when used directly in html templates</p>
<ul>
  <li>such as:</li>
</ul>

<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;div</span> <span class="na">jwcid=</span><span class="s">"@Input"</span> <span class="na">value=</span><span class="s">"ognl:user.firstName"</span> <span class="nt">/&gt;</span>
</code></pre></div></div>

<p>What you will want to examine in this class is how it deals with incrementally attempting expression evaluations using 
the local members <code class="language-plaintext highlighter-rouge">_writeFailed, _accessor</code>.  Looking through the source of this implementation will probably be the best 
documentation available - but keep in mind that in many instances this object also has to deal with the possibility 
that a write statement may never happen.</p>

<h2 id="beanproviderpropertyaccessor--custom-propertyaccessor-implementations">BeanProviderPropertyAccessor / Custom PropertyAccessor implementations</h2>

<p>Besides the <code class="language-plaintext highlighter-rouge">OgnlExpressionCompiler</code> logic this will probably be the second most impactual area people will have to deal 
with in terms of having to write new code.  In this specific instance there are three new <code class="language-plaintext highlighter-rouge">PropertyAccessor</code> methods 
you must implement in order to compile your expressions:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="nc">Class</span> <span class="nf">getPropertyClass</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">target</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">name</span><span class="o">)</span>
<span class="o">{</span>
  <span class="nc">IBeanProvider</span> <span class="n">provider</span> <span class="o">=</span> <span class="o">(</span><span class="nc">IBeanProvider</span><span class="o">)</span><span class="n">target</span><span class="o">;</span>
  <span class="nc">String</span> <span class="n">beanName</span> <span class="o">=</span> <span class="o">((</span><span class="nc">String</span><span class="o">)</span><span class="n">name</span><span class="o">).</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span>

  <span class="k">if</span> <span class="o">(</span><span class="n">provider</span><span class="o">.</span><span class="na">canProvideBean</span><span class="o">(</span><span class="n">beanName</span><span class="o">))</span>
    <span class="k">return</span> <span class="n">provider</span><span class="o">.</span><span class="na">getBean</span><span class="o">(</span><span class="n">beanName</span><span class="o">).</span><span class="na">getClass</span><span class="o">();</span>

  <span class="k">return</span> <span class="kd">super</span><span class="o">.</span><span class="na">getPropertyClass</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">target</span><span class="o">,</span> <span class="n">name</span><span class="o">);</span>
<span class="o">}</span>

<span class="kd">public</span> <span class="nc">String</span> <span class="nf">getSourceAccessor</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">target</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">name</span><span class="o">)</span>
<span class="o">{</span>
   <span class="nc">IBeanProvider</span> <span class="n">provider</span> <span class="o">=</span> <span class="o">(</span><span class="nc">IBeanProvider</span><span class="o">)</span><span class="n">target</span><span class="o">;</span>
   <span class="nc">String</span> <span class="n">beanName</span> <span class="o">=</span> <span class="o">((</span><span class="nc">String</span><span class="o">)</span><span class="n">name</span><span class="o">).</span><span class="na">replaceAll</span><span class="o">(</span><span class="s">"\""</span><span class="o">,</span> <span class="s">""</span><span class="o">);</span>

   <span class="k">if</span> <span class="o">(</span><span class="n">provider</span><span class="o">.</span><span class="na">canProvideBean</span><span class="o">(</span><span class="n">beanName</span><span class="o">))</span> <span class="o">{</span>

       <span class="nc">Class</span> <span class="n">type</span> <span class="o">=</span> <span class="nc">OgnlRuntime</span><span class="o">.</span><span class="na">getCompiler</span><span class="o">().</span><span class="na">getInterfaceClass</span><span class="o">(</span><span class="n">provider</span><span class="o">.</span><span class="na">getBean</span><span class="o">(</span><span class="n">beanName</span><span class="o">).</span><span class="na">getClass</span><span class="o">());</span>

       <span class="nc">ExpressionCompiler</span><span class="o">.</span><span class="na">addCastString</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="s">"(("</span> <span class="o">+</span> <span class="n">type</span><span class="o">.</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">")"</span><span class="o">);</span>

       <span class="n">context</span><span class="o">.</span><span class="na">setCurrentAccessor</span><span class="o">(</span><span class="nc">IBeanProvider</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
       <span class="n">context</span><span class="o">.</span><span class="na">setCurrentType</span><span class="o">(</span><span class="n">type</span><span class="o">);</span>

       <span class="k">return</span> <span class="s">".getBean("</span> <span class="o">+</span> <span class="n">name</span> <span class="o">+</span> <span class="s">"))"</span><span class="o">;</span>
   <span class="o">}</span>

   <span class="k">return</span> <span class="kd">super</span><span class="o">.</span><span class="na">getSourceAccessor</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="n">target</span><span class="o">,</span> <span class="n">name</span><span class="o">);</span>
<span class="o">}</span>

<span class="kd">public</span> <span class="nc">String</span> <span class="nf">getSourceSetter</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">target</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">name</span><span class="o">)</span>
<span class="o">{</span>
  <span class="k">throw</span> <span class="k">new</span> <span class="nf">UnsupportedCompilationException</span><span class="o">(</span><span class="s">"Can't set beans on IBeanProvider."</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div></div>

<p>Although this example may not provide with all of the possible use cases you may need to learn to properly implement 
these methods in your own <code class="language-plaintext highlighter-rouge">PropertyAccessor</code> implementations - the built in OGNL versions like <code class="language-plaintext highlighter-rouge">ObjectPropertyAccessor</code>, 
<code class="language-plaintext highlighter-rouge">MapPropertyAccessor</code>, <code class="language-plaintext highlighter-rouge">ListPropertyAccessor</code>, etc should provide more than enough data to work from.</p>

<p>The most important part of the above logic you will want to look at is in how the new <code class="language-plaintext highlighter-rouge">OgnlContext</code> methods for setting 
object/accessor types are being set:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">context</span><span class="o">.</span><span class="na">setCurrentAccessor</span><span class="o">(</span><span class="nc">IBeanProvider</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
<span class="n">context</span><span class="o">.</span><span class="na">setCurrentType</span><span class="o">(</span><span class="n">type</span><span class="o">);</span>
</code></pre></div></div>

<p>This meta information is used by the <code class="language-plaintext highlighter-rouge">OgnlExpressionCompiler</code> to correctly cast your specific expression object types 
during compilation. This process of casting/converting in to and out of native types is the most complicated part of this 
new logic and also the source of the greatest number of bugs reported in the OGNL jira.</p>

<p>In this property accessor example the goal is to turn general statements like <code class="language-plaintext highlighter-rouge">beans.emailValidator</code> in to their pure 
source form - which would look something like this when all is said and done:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">((</span><span class="nc">ValidatingBean</span><span class="o">)</span><span class="n">beanProvider</span><span class="o">.</span><span class="na">getBean</span><span class="o">(</span><span class="s">"emailValidator"</span><span class="o">))</span>
</code></pre></div></div>

<p>There is also the ever important cast handling which you must do:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Class</span> <span class="n">type</span> <span class="o">=</span> <span class="nc">OgnlRuntime</span><span class="o">.</span><span class="na">getCompiler</span><span class="o">().</span><span class="na">getInterfaceClass</span><span class="o">(</span><span class="n">provider</span><span class="o">.</span><span class="na">getBean</span><span class="o">(</span><span class="n">beanName</span><span class="o">).</span><span class="na">getClass</span><span class="o">());</span>

<span class="nc">ExpressionCompiler</span><span class="o">.</span><span class="na">addCastString</span><span class="o">(</span><span class="n">context</span><span class="o">,</span> <span class="s">"(("</span> <span class="o">+</span> <span class="n">type</span><span class="o">.</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">")"</span><span class="o">);</span>
</code></pre></div></div>

<p>In this example the <code class="language-plaintext highlighter-rouge">PropertyAccessor</code> is trying to determine the class type and manually adding the cast string for 
the specific type to the overall statement by invoking the utility method <code class="language-plaintext highlighter-rouge">addCastString(OgnlContext, String)</code> on 
<code class="language-plaintext highlighter-rouge">ExpressionCompiler</code>. In many instances of expression compilation you might also be dealing with unknown method calls, 
where the more preferred way to do this kind of logic would be something like this: (taken from the OGNL 
<code class="language-plaintext highlighter-rouge">ObjectPropertyAccessor</code> implementation)</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Method</span> <span class="n">m</span> <span class="o">=</span> <span class="o">...(</span><span class="n">various</span> <span class="n">reflection</span> <span class="n">gynamistics</span> <span class="n">used</span> <span class="n">to</span> <span class="n">find</span> <span class="n">a</span> <span class="n">java</span><span class="o">.</span><span class="na">reflect</span><span class="o">.</span><span class="na">Method</span> <span class="n">instance</span><span class="o">)</span>

<span class="n">context</span><span class="o">.</span><span class="na">setCurrentType</span><span class="o">(</span><span class="n">m</span><span class="o">.</span><span class="na">getReturnType</span><span class="o">());</span>
<span class="n">context</span><span class="o">.</span><span class="na">setCurrentAccessor</span><span class="o">(</span><span class="nc">OgnlRuntime</span><span class="o">.</span><span class="na">getCompiler</span><span class="o">().</span><span class="na">getSuperOrInterfaceClass</span><span class="o">(</span><span class="n">m</span><span class="o">,</span> <span class="n">m</span><span class="o">.</span><span class="na">getDeclaringClass</span><span class="o">()));</span>
</code></pre></div></div>

<p>When dealing with method calls it is very important that you do this specific kind of type setting on the <code class="language-plaintext highlighter-rouge">OgnlContext</code> 
class so that the casting done on your statements (which happens outside of the <code class="language-plaintext highlighter-rouge">ObjectPropertyAccessor</code> in this instance) 
can be done on the highest level interface defining that method.  This becomes important when you are dealing with expressions 
that you would like to re-use against different object instances.  For example, suppose we had an ognl expression like 
this (for Tapestry):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>user.firstName
</code></pre></div></div>

<p>and the object it was compiled against was an instance of something looking like this:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">abstract</span> <span class="nc">LoginPage</span> <span class="kd">extends</span> <span class="nc">BasePage</span> <span class="kd">implements</span> <span class="nc">UserPermissions</span> <span class="o">{</span>

  <span class="kd">public</span> <span class="kd">abstract</span> <span class="nc">User</span> <span class="nf">getUser</span><span class="o">();</span>

<span class="o">}</span>

<span class="o">..</span>
<span class="cm">/**
 * Interface for any page/component that holds references to the current system
 * User.
 */</span>
<span class="kd">public</span> <span class="kd">interface</span> <span class="nc">UserPermissions</span> <span class="o">{</span>
   <span class="nc">User</span> <span class="nf">getUser</span><span class="o">();</span>
<span class="o">}</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">BasePage</code> is a Tapestry specific class which is unimportant in this example.  What is important to know is that if we 
had done something like this in the previous context setting example:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">context</span><span class="o">.</span><span class="na">setCurrentType</span><span class="o">(</span><span class="n">m</span><span class="o">.</span><span class="na">getReturnType</span><span class="o">());</span>
<span class="n">context</span><span class="o">.</span><span class="na">setCurrentAccessor</span><span class="o">(</span><span class="n">m</span><span class="o">.</span><span class="na">getDeclaringClass</span><span class="o">());</span>
</code></pre></div></div>

<p>It would have resulted in a compiled expression of:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kt">void</span> <span class="nf">get</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">root</span><span class="o">)</span> <span class="o">{</span>
  <span class="k">return</span> <span class="o">((</span><span class="nc">LoginPage</span><span class="o">)</span><span class="n">root</span><span class="o">).</span><span class="na">getUser</span><span class="o">();</span>
<span class="o">}</span>
</code></pre></div></div>

<p>This is undesirable in situations where you would like to re-use OGNL expressions across many different class instances 
(which is what Tapestry does via the <code class="language-plaintext highlighter-rouge">ExpressionCacheImpl</code> listed above).  The better/more re-usable compiled version 
should really look like:</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kt">void</span> <span class="nf">get</span><span class="o">(</span><span class="nc">OgnlContext</span> <span class="n">context</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">root</span><span class="o">)</span> <span class="o">{</span>
  <span class="k">return</span> <span class="o">((</span><span class="nc">UserPermissions</span><span class="o">)</span><span class="n">root</span><span class="o">).</span><span class="na">getUser</span><span class="o">();</span>
<span class="o">}</span>
</code></pre></div></div>

<p>These are the more delicate parts of the compiler API that the majority of people will need to worry about during any 
integration efforts.</p>

<p>## Known Issues / Limitations</p>

<h2 id="compiler-errors">Compiler Errors</h2>

<p>Despite the substantially large number of unit tests set up and thorough usage of many different 
types of expressions Tapestry users are still currently running in to fatal/non caught runtime errors when some of their 
OGNL expressions are compiled.  In some instances these errors are blockers and they must either wait for someone 
to fix the bug (after being posted to <a href="http://jira.opensymphony.com/browse/OGNL">http://jira.opensymphony.com/browse/OGNL</a> 
correctly) or re-work their expression to get around the error.  I (jesse) generally try to fix these reported errors
within a day or two (or sooner) when I can and immediately deploy the fixes to the OGNL snapshot maven2 repository.<br />
This doesn’t mean that the vast majority of expressions won’t compile fine, but it is something to keep in mind when 
you decide how to integrate the compiler logic in to your own framework.</p>

<h2 id="compile-vs-normal-expression-evaluation">Compile vs. normal expression evaluation</h2>

<p>The current Tapestry implementation compiles OGNL expressions in both  development AND production modes.  This has 
the undesirable side effect of causing needless multiple method invocations on objects when compiling as well as the general 
overhead of performing compilations at all when people are just developing applications and not serving them in production 
environments.  It is hoped that when OGNL becomes final this special development mode can go back to using normal OGNL 
expression evaluation during development and save compilation for production environments,  but until then we’ve been 
worried about giving people false positives when testing their applications.  Meaning - something may evaluate just fine 
when using</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Ognl</span><span class="o">.</span><span class="na">getValue</span><span class="o">(</span><span class="nc">OgnlContext</span><span class="o">,</span> <span class="nc">Object</span> <span class="n">root</span><span class="o">,</span> <span class="nc">String</span> <span class="n">expression</span>
</code></pre></div></div>

<p>but fail completely when they deploy their app to production and the compiler kicks in.  If you framework doesn’t handle 
separate modes or have this kind of state set up it is something to keep in mind.  The number of JIRA issues reported 
has gone way down since this all started but they do still trickle in which is enough to know that things aren’t yet 100% 
reliable.  I’m sure the plethora of Struts/WebWork/etc users available should be enough to iron out any remaining issues 
found but it’s something to keep in mind.</p>

<h2 id="snapshot-repository">Snapshot Repository</h2>

<p>The current maven2 location of the OGNL development/snapshot release are all made to <a href="http://opencomponentry.com/repository/m2-snapshot-repo/">http://opencomponentry.com/repository/m2-snapshot-repo/</a>, 
while releases go out to ibiblio as per normal.  If someone has a better place for these release to be made please feel free to contact jesse ( jkuhnert at gmail.com) with accessor information / instructions.</p>


  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation. All Rights Reserved.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
