Java tutorial
/** * * * * <!DOCTYPE html> * <html> * <head> * <meta charset='utf-8'> * <meta http-equiv="X-UA-Compatible" content="IE=edge"> * <title>LICENSE_HEADER.txt at master from mulesoft/mongo-connector - GitHub</title> * <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub" /> * <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub" /> * * * * * <meta content="authenticity_token" name="csrf-param" /> * <meta content="T42cQ8rsmP0zdGpjeiQdNdXtRZz5jTF84a9vffF0mGc=" name="csrf-token" /> * * <link href="https://a248.e.akamai.net/assets.github.com/stylesheets/bundles/github-3a4af5bff8824b8813507ee46b062db917fd7a4b.css" media="screen" rel="stylesheet" type="text/css" /> * <link href="https://a248.e.akamai.net/assets.github.com/stylesheets/bundles/github2-dd77b20d63df63993a44b1db3e3ed3daeb33b4bd.css" media="screen" rel="stylesheet" type="text/css" /> * * * <script src="https://a248.e.akamai.net/assets.github.com/javascripts/bundles/jquery-1e75833f765514d7e7efe0099020c2ad4ff15e5b.js" type="text/javascript"></script> * <script src="https://a248.e.akamai.net/assets.github.com/javascripts/bundles/github-f3512ee4bf6c871bcfebe3f14bc225f08f7f7328.js" type="text/javascript"></script> * * * <link rel='permalink' href='/mulesoft/mongo-connector/blob/8e7d08d7da221425154e37b28dfa2a59046724e5/LICENSE_HEADER.txt'> * * <meta name="description" content="mongo-connector - MongoDB Connector for Mule" /> * <link href="https://github.com/mulesoft/mongo-connector/commits/master.atom" rel="alternate" title="Recent Commits to mongo-connector:master" type="application/atom+xml" /> * * </head> * * * <body class="logged_out page-blob vis-public env-production "> * * * * * * <div id="header" class="true clearfix"> * <div class="container clearfix"> * <a class="site-logo" href="https://github.com"> * <!--[if IE]> * <img alt="GitHub" class="github-logo" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7.png?1323882716" /> * <img alt="GitHub" class="github-logo-hover" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7-hover.png?1324325358" /> * <![endif]--> * <img alt="GitHub" class="github-logo-4x" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x.png?1323882716" /> * <img alt="GitHub" class="github-logo-4x-hover" height="30" src="https://a248.e.akamai.net/assets.github.com/images/modules/header/logov7@4x-hover.png?1324325358" /> * </a> * * <!-- * make sure to use fully qualified URLs here since this nav * is used on error pages on other domains * --> * <ul class="top-nav logged_out"> * <li class="pricing"><a href="https://github.com/plans">Signup and Pricing</a></li> * <li class="explore"><a href="https://github.com/explore">Explore GitHub</a></li> * <li class="features"><a href="https://github.com/features">Features</a></li> * <li class="blog"><a href="https://github.com/blog">Blog</a></li> * <li class="login"><a href="https://github.com/login?return_to=%2Fmulesoft%2Fmongo-connector%2Fblob%2Fmaster%2FLICENSE_HEADER.txt">Login</a></li> * </ul> * * * * * </div> * </div> * * * * <div class="site"> * <div class="container"> * <div class="pagehead repohead instapaper_ignore readability-menu"> * * * <div class="title-actions-bar"> * <h1> * <a href="/mulesoft">mulesoft</a> / * <strong><a href="/mulesoft/mongo-connector" class="js-current-repository">mongo-connector</a></strong> * </h1> * * * * * <ul class="pagehead-actions"> * * * <li><a href="/login?return_to=%2Fmulesoft%2Fmongo-connector" class="minibutton btn-watch watch-button entice tooltipped leftwards" rel="nofollow" title="You must be logged in to use this feature"><span><span class="icon"></span>Watch</span></a></li> * <li><a href="/login?return_to=%2Fmulesoft%2Fmongo-connector" class="minibutton btn-fork fork-button entice tooltipped leftwards" rel="nofollow" title="You must be logged in to use this feature"><span><span class="icon"></span>Fork</span></a></li> * * * <li class="repostats"> * <ul class="repo-stats"> * <li class="watchers "> * <a href="/mulesoft/mongo-connector/watchers" title="Watchers" class="tooltipped downwards"> * 10 * </a> * </li> * <li class="forks"> * <a href="/mulesoft/mongo-connector/network" title="Forks" class="tooltipped downwards"> * 4 * </a> * </li> * </ul> * </li> * </ul> * * </div> * * * * <ul class="tabs"> * <li><a href="/mulesoft/mongo-connector" class="selected" highlight="repo_sourcerepo_downloadsrepo_commitsrepo_tagsrepo_branches">Code</a></li> * <li><a href="/mulesoft/mongo-connector/network" highlight="repo_networkrepo_fork_queue">Network</a> * <li><a href="/mulesoft/mongo-connector/pulls" highlight="repo_pulls">Pull Requests <span class='counter'>1</span></a></li> * * <li><a href="/mulesoft/mongo-connector/issues" highlight="repo_issues">Issues <span class='counter'>6</span></a></li> * * * <li><a href="/mulesoft/mongo-connector/graphs" highlight="repo_graphsrepo_contributors">Stats & Graphs</a></li> * * </ul> * * * <div class="frame frame-center tree-finder" style="display:none" * data-tree-list-url="/mulesoft/mongo-connector/tree-list/8e7d08d7da221425154e37b28dfa2a59046724e5" * data-blob-url-prefix="/mulesoft/mongo-connector/blob/8e7d08d7da221425154e37b28dfa2a59046724e5" * > * * <div class="breadcrumb"> * <b><a href="/mulesoft/mongo-connector">mongo-connector</a></b> / * <input class="tree-finder-input js-navigation-enable" type="text" name="query" autocomplete="off" spellcheck="false"> * </div> * * <div class="octotip"> * <p> * <a href="/mulesoft/mongo-connector/dismiss-tree-finder-help" class="dismiss js-dismiss-tree-list-help" title="Hide this notice forever" rel="nofollow">Dismiss</a> * <strong>Octotip:</strong> You've activated the <em>file finder</em> * by pressing <span class="kbd">t</span> Start typing to filter the * file list. Use <span class="kbd badmono"></span> and * <span class="kbd badmono"></span> to navigate, * <span class="kbd">enter</span> to view files. * </p> * </div> * * <table class="tree-browser" cellpadding="0" cellspacing="0"> * <tr class="js-header"><th> </th><th>name</th></tr> * <tr class="js-no-results no-results" style="display: none"> * <th colspan="2">No matching files</th> * </tr> * <tbody class="js-results-list js-navigation-container"> * </tbody> * </table> * </div> * * <div id="jump-to-line" style="display:none"> * <h2>Jump to Line</h2> * <form> * <input class="textfield" type="text"> * <div class="full-button"> * <button type="submit" class="classy"> * <span>Go</span> * </button> * </div> * </form> * </div> * * * <div class="subnav-bar"> * * <ul class="actions subnav"> * <li><a href="/mulesoft/mongo-connector/tags" class="" highlight="repo_tags">Tags <span class="counter">6</span></a></li> * <li><a href="/mulesoft/mongo-connector/downloads" class="blank downloads-blank" highlight="repo_downloads">Downloads <span class="counter">0</span></a></li> * * </ul> * * <ul class="scope"> * <li class="switcher"> * * <div class="context-menu-container js-menu-container"> * <a href="#" * class="minibutton bigger switcher js-menu-target js-commitish-button btn-branch repo-tree" * data-master-branch="master" * data-ref="master"> * <span><span class="icon"></span><i>branch:</i> master</span> * </a> * * <div class="context-pane commitish-context js-menu-content"> * <a href="javascript:;" class="close js-menu-close"></a> * <div class="context-title">Switch Branches/Tags</div> * <div class="context-body pane-selector commitish-selector js-filterable-commitishes"> * <div class="filterbar"> * <div class="placeholder-field js-placeholder-field"> * <label class="placeholder" for="context-commitish-filter-field" data-placeholder-mode="sticky">Filter branches/tags</label> * <input type="text" id="context-commitish-filter-field" class="commitish-filter" /> * </div> * * <ul class="tabs"> * <li><a href="#" data-filter="branches" class="selected">Branches</a></li> * <li><a href="#" data-filter="tags">Tags</a></li> * </ul> * </div> * * <div class="commitish-item branch-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/gh-pages/LICENSE_HEADER.txt" data-name="gh-pages" rel="nofollow">gh-pages</a> * </h4> * </div> * <div class="commitish-item branch-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/master/LICENSE_HEADER.txt" data-name="master" rel="nofollow">master</a> * </h4> * </div> * <div class="commitish-item branch-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/studio/LICENSE_HEADER.txt" data-name="studio" rel="nofollow">studio</a> * </h4> * </div> * * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/2.0.1/LICENSE_HEADER.txt" data-name="2.0.1" rel="nofollow">2.0.1</a> * </h4> * </div> * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/2.0/LICENSE_HEADER.txt" data-name="2.0" rel="nofollow">2.0</a> * </h4> * </div> * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/1.3/LICENSE_HEADER.txt" data-name="1.3" rel="nofollow">1.3</a> * </h4> * </div> * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/1.2/LICENSE_HEADER.txt" data-name="1.2" rel="nofollow">1.2</a> * </h4> * </div> * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/1.1/LICENSE_HEADER.txt" data-name="1.1" rel="nofollow">1.1</a> * </h4> * </div> * <div class="commitish-item tag-commitish selector-item"> * <h4> * <a href="/mulesoft/mongo-connector/blob/1.0/LICENSE_HEADER.txt" data-name="1.0" rel="nofollow">1.0</a> * </h4> * </div> * * <div class="no-results" style="display:none">Nothing to show</div> * </div> * </div><!-- /.commitish-context-context --> * </div> * * </li> * </ul> * * <ul class="subnav with-scope"> * * <li><a href="/mulesoft/mongo-connector" class="selected" highlight="repo_source">Files</a></li> * <li><a href="/mulesoft/mongo-connector/commits/master" highlight="repo_commits">Commits</a></li> * <li><a href="/mulesoft/mongo-connector/branches" class="" highlight="repo_branches" rel="nofollow">Branches <span class="counter">3</span></a></li> * </ul> * * </div> * * * * * * * * * </div><!-- /.repohead --> * * * * * * * * <p class="last-commit">Latest commit to the <strong>master</strong> branch</p> * * <div class="commit commit-tease js-details-container"> * <p class="commit-title "> * <a href="/mulesoft/mongo-connector/commit/8e7d08d7da221425154e37b28dfa2a59046724e5" class="message">[maven-release-plugin] prepare for next development iteration</a> * * </p> * <div class="commit-meta"> * <a href="/mulesoft/mongo-connector/commit/8e7d08d7da221425154e37b28dfa2a59046724e5" class="sha-block">commit <span class="sha">8e7d08d7da</span></a> * <span class="js-clippy clippy-button " data-clipboard-text="8e7d08d7da221425154e37b28dfa2a59046724e5" data-copied-hint="copied!" data-copy-hint="Copy SHA"></span> * * <div class="authorship"> * <img class="gravatar" height="20" src="https://secure.gravatar.com/avatar/1fae43c02afb621a4c6624386ddfd337?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" width="20" /> * <span class="author-name"><a href="/federecio">federecio</a></span> * authored <time class="js-relative-date" datetime="2012-01-12T11:23:35-08:00" title="2012-01-12 11:23:35">January 12, 2012</time> * * </div> * </div> * </div> * * * <!-- block_view_fragment_key: views4/v8/blob:v16:ce8263a09d200b97ec013846a31fa41c --> * <div id="slider"> * * <div class="breadcrumb" data-path="LICENSE_HEADER.txt/"> * <b><a href="/mulesoft/mongo-connector/tree/8e7d08d7da221425154e37b28dfa2a59046724e5" class="js-rewrite-sha">mongo-connector</a></b> / LICENSE_HEADER.txt <span class="js-clippy clippy-button " data-clipboard-text="LICENSE_HEADER.txt" data-copied-hint="copied!" data-copy-hint="copy to clipboard"></span> * </div> * * <div class="frames"> * <div class="frame frame-center" data-path="LICENSE_HEADER.txt/" data-permalink-url="/mulesoft/mongo-connector/blob/8e7d08d7da221425154e37b28dfa2a59046724e5/LICENSE_HEADER.txt" data-title="LICENSE_HEADER.txt at master from mulesoft/mongo-connector - GitHub" data-type="blob"> * <ul class="big-actions"> * <li><a class="file-edit-link minibutton js-rewrite-sha" href="/mulesoft/mongo-connector/edit/8e7d08d7da221425154e37b28dfa2a59046724e5/LICENSE_HEADER.txt" data-method="post" rel="nofollow"><span>Edit this file</span></a></li> * </ul> * * <div id="files" class="bubble"> * <div class="file"> * <div class="meta"> * <div class="info"> * <span class="icon"><img alt="Txt" height="16" src="https://a248.e.akamai.net/assets.github.com/images/icons/txt.png?1310086001" width="16" /></span> * <span class="mode" title="File Mode">100644</span> * <span>9 lines (5 sloc)</span> * <span>0.266 kb</span> * </div> * <ul class="actions"> * <li><a href="/mulesoft/mongo-connector/raw/master/LICENSE_HEADER.txt" id="raw-url">raw</a></li> * <li><a href="/mulesoft/mongo-connector/blame/master/LICENSE_HEADER.txt">blame</a></li> * <li><a href="/mulesoft/mongo-connector/commits/master/LICENSE_HEADER.txt" rel="nofollow">history</a></li> * </ul> * </div> * <div class="data type-text"> * <table cellpadding="0" cellspacing="0" class="lines"> * <tr> * <td> * <pre class="line_numbers"><span id="L1" rel="#L1">1</span> * <span id="L2" rel="#L2">2</span> * <span id="L3" rel="#L3">3</span> * <span id="L4" rel="#L4">4</span> * <span id="L5" rel="#L5">5</span> * <span id="L6" rel="#L6">6</span> * <span id="L7" rel="#L7">7</span> * <span id="L8" rel="#L8">8</span> * </pre> * </td> * <td width="100%"> * <div class="highlight"><pre><div class='line' id='LC1'>Mule Mongo Connector</div><div class='line' id='LC2'><br/></div><div class='line' id='LC3'>Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com</div><div class='line' id='LC4'><br/></div><div class='line' id='LC5'>The software in this package is published under the terms of the CPAL v1.0</div><div class='line' id='LC6'>license, a copy of which has been included with this distribution in the</div><div class='line' id='LC7'>LICENSE.txt file.</div><div class='line' id='LC8'><br/></div></pre></div> * </td> * </tr> * </table> * </div> * * </div> * </div> * </div> * </div> * * </div> * * <div class="frame frame-loading" style="display:none;" data-tree-list-url="/mulesoft/mongo-connector/tree-list/8e7d08d7da221425154e37b28dfa2a59046724e5" data-blob-url-prefix="/mulesoft/mongo-connector/blob/8e7d08d7da221425154e37b28dfa2a59046724e5"> * <img src="https://a248.e.akamai.net/assets.github.com/images/modules/ajax/big_spinner_336699.gif?1315867479" height="32" width="32"> * </div> * * </div> * <div class="context-overlay"></div> * </div> * * * <!-- footer --> * <div id="footer" > * * <div class="upper_footer"> * <div class="container clearfix"> * * <!--[if IE]><h4 id="blacktocat_ie">GitHub Links</h4><![endif]--> * <![if !IE]><h4 id="blacktocat">GitHub Links</h4><![endif]> * * <ul class="footer_nav"> * <h4>GitHub</h4> * <li><a href="https://github.com/about">About</a></li> * <li><a href="https://github.com/blog">Blog</a></li> * <li><a href="https://github.com/features">Features</a></li> * <li><a href="https://github.com/contact">Contact & Support</a></li> * <li><a href="https://github.com/training">Training</a></li> * <li><a href="http://enterprise.github.com/">GitHub Enterprise</a></li> * <li><a href="http://status.github.com/">Site Status</a></li> * </ul> * * <ul class="footer_nav"> * <h4>Tools</h4> * <li><a href="http://get.gaug.es/">Gauges: Analyze web traffic</a></li> * <li><a href="http://speakerdeck.com">Speaker Deck: Presentations</a></li> * <li><a href="https://gist.github.com">Gist: Code snippets</a></li> * <li><a href="http://mac.github.com/">GitHub for Mac</a></li> * <li><a href="http://mobile.github.com/">Issues for iPhone</a></li> * <li><a href="http://jobs.github.com/">Job Board</a></li> * </ul> * * <ul class="footer_nav"> * <h4>Extras</h4> * <li><a href="http://shop.github.com/">GitHub Shop</a></li> * <li><a href="http://octodex.github.com/">The Octodex</a></li> * </ul> * * <ul class="footer_nav"> * <h4>Documentation</h4> * <li><a href="http://help.github.com/">GitHub Help</a></li> * <li><a href="http://developer.github.com/">Developer API</a></li> * <li><a href="http://github.github.com/github-flavored-markdown/">GitHub Flavored Markdown</a></li> * <li><a href="http://pages.github.com/">GitHub Pages</a></li> * </ul> * * </div><!-- /.site --> * </div><!-- /.upper_footer --> * * <div class="lower_footer"> * <div class="container clearfix"> * <!--[if IE]><div id="legal_ie"><![endif]--> * <![if !IE]><div id="legal"><![endif]> * <ul> * <li><a href="https://github.com/site/terms">Terms of Service</a></li> * <li><a href="https://github.com/site/privacy">Privacy</a></li> * <li><a href="https://github.com/security">Security</a></li> * </ul> * * <p>© 2012 <span title="0.04983s from fe9.rs.github.com">GitHub</span> Inc. All rights reserved.</p> * </div><!-- /#legal or /#legal_ie--> * * <div class="sponsor"> * <a href="http://www.rackspace.com" class="logo"> * <img alt="Dedicated Server" height="36" src="https://a248.e.akamai.net/assets.github.com/images/modules/footer/rackspace_logo.png?v2" width="38" /> * </a> * Powered by the <a href="http://www.rackspace.com ">Dedicated * Servers</a> and<br/> <a href="http://www.rackspacecloud.com">Cloud * Computing</a> of Rackspace Hosting<span>®</span> * </div> * </div><!-- /.site --> * </div><!-- /.lower_footer --> * * </div><!-- /#footer --> * * * * <div id="keyboard_shortcuts_pane" class="instapaper_ignore readability-extra" style="display:none"> * <h2>Keyboard Shortcuts <small><a href="#" class="js-see-all-keyboard-shortcuts">(see all)</a></small></h2> * * <div class="columns threecols"> * <div class="column first"> * <h3>Site wide shortcuts</h3> * <dl class="keyboard-mappings"> * <dt>s</dt> * <dd>Focus site search</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>?</dt> * <dd>Bring up this help dialog</dd> * </dl> * </div><!-- /.column.first --> * * <div class="column middle" style='display:none'> * <h3>Commit list</h3> * <dl class="keyboard-mappings"> * <dt>j</dt> * <dd>Move selection down</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>k</dt> * <dd>Move selection up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>c <em>or</em> o <em>or</em> enter</dt> * <dd>Open commit</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>y</dt> * <dd>Expand URL to its canonical form</dd> * </dl> * </div><!-- /.column.first --> * * <div class="column last" style='display:none'> * <h3>Pull request list</h3> * <dl class="keyboard-mappings"> * <dt>j</dt> * <dd>Move selection down</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>k</dt> * <dd>Move selection up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>o <em>or</em> enter</dt> * <dd>Open issue</dd> * </dl> * </div><!-- /.columns.last --> * * </div><!-- /.columns.equacols --> * * <div style='display:none'> * <div class="rule"></div> * * <h3>Issues</h3> * * <div class="columns threecols"> * <div class="column first"> * <dl class="keyboard-mappings"> * <dt>j</dt> * <dd>Move selection down</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>k</dt> * <dd>Move selection up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>x</dt> * <dd>Toggle selection</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>o <em>or</em> enter</dt> * <dd>Open issue</dd> * </dl> * </div><!-- /.column.first --> * <div class="column middle"> * <dl class="keyboard-mappings"> * <dt>I</dt> * <dd>Mark selection as read</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>U</dt> * <dd>Mark selection as unread</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>e</dt> * <dd>Close selection</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>y</dt> * <dd>Remove selection from view</dd> * </dl> * </div><!-- /.column.middle --> * <div class="column last"> * <dl class="keyboard-mappings"> * <dt>c</dt> * <dd>Create issue</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>l</dt> * <dd>Create label</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>i</dt> * <dd>Back to inbox</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>u</dt> * <dd>Back to issues</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>/</dt> * <dd>Focus issues search</dd> * </dl> * </div> * </div> * </div> * * <div style='display:none'> * <div class="rule"></div> * * <h3>Issues Dashboard</h3> * * <div class="columns threecols"> * <div class="column first"> * <dl class="keyboard-mappings"> * <dt>j</dt> * <dd>Move selection down</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>k</dt> * <dd>Move selection up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>o <em>or</em> enter</dt> * <dd>Open issue</dd> * </dl> * </div><!-- /.column.first --> * </div> * </div> * * <div style='display:none'> * <div class="rule"></div> * * <h3>Network Graph</h3> * <div class="columns equacols"> * <div class="column first"> * <dl class="keyboard-mappings"> * <dt><span class="badmono">?</span> <em>or</em> h</dt> * <dd>Scroll left</dd> * </dl> * <dl class="keyboard-mappings"> * <dt><span class="badmono"></span> <em>or</em> l</dt> * <dd>Scroll right</dd> * </dl> * <dl class="keyboard-mappings"> * <dt><span class="badmono"></span> <em>or</em> k</dt> * <dd>Scroll up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt><span class="badmono"></span> <em>or</em> j</dt> * <dd>Scroll down</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>t</dt> * <dd>Toggle visibility of head labels</dd> * </dl> * </div><!-- /.column.first --> * <div class="column last"> * <dl class="keyboard-mappings"> * <dt>shift <span class="badmono">?</span> <em>or</em> shift h</dt> * <dd>Scroll all the way left</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>shift <span class="badmono"></span> <em>or</em> shift l</dt> * <dd>Scroll all the way right</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>shift <span class="badmono"></span> <em>or</em> shift k</dt> * <dd>Scroll all the way up</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>shift <span class="badmono"></span> <em>or</em> shift j</dt> * <dd>Scroll all the way down</dd> * </dl> * </div><!-- /.column.last --> * </div> * </div> * * <div > * <div class="rule"></div> * <div class="columns threecols"> * <div class="column first" > * <h3>Source Code Browsing</h3> * <dl class="keyboard-mappings"> * <dt>t</dt> * <dd>Activates the file finder</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>l</dt> * <dd>Jump to line</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>w</dt> * <dd>Switch branch/tag</dd> * </dl> * <dl class="keyboard-mappings"> * <dt>y</dt> * <dd>Expand URL to its canonical form</dd> * </dl> * </div> * </div> * </div> * </div> * * <div id="markdown-help" class="instapaper_ignore readability-extra"> * <h2>Markdown Cheat Sheet</h2> * * <div class="cheatsheet-content"> * * <div class="mod"> * <div class="col"> * <h3>Format Text</h3> * <p>Headers</p> * <pre> * # This is an <h1> tag * ## This is an <h2> tag * ###### This is an <h6> tag</pre> * <p>Text styles</p> * <pre> * *This text will be italic* * _This will also be italic_ * **This text will be bold** * __This will also be bold__ * * *You **can** combine them* * </pre> * </div> * <div class="col"> * <h3>Lists</h3> * <p>Unordered</p> * <pre> * * Item 1 * * Item 2 * * Item 2a * * Item 2b</pre> * <p>Ordered</p> * <pre> * 1. Item 1 * 2. Item 2 * 3. Item 3 * * Item 3a * * Item 3b</pre> * </div> * <div class="col"> * <h3>Miscellaneous</h3> * <p>Images</p> * <pre> * ![GitHub Logo](/images/logo.png) * Format: ![Alt Text](url) * </pre> * <p>Links</p> * <pre> * http://github.com - automatic! * [GitHub](http://github.com)</pre> * <p>Blockquotes</p> * <pre> * As Kanye West said: * * > We're living the future so * > the present is our past. * </pre> * </div> * </div> * <div class="rule"></div> * * <h3>Code Examples in Markdown</h3> * <div class="col"> * <p>Syntax highlighting with <a href="http://github.github.com/github-flavored-markdown/" title="GitHub Flavored Markdown" target="_blank">GFM</a></p> * <pre> * ```javascript * function fancyAlert(arg) { * if(arg) { * $.facebox({div:'#foo'}) * } * } * ```</pre> * </div> * <div class="col"> * <p>Or, indent your code 4 spaces</p> * <pre> * Here is a Python code example * without syntax highlighting: * * def foo: * if not bar: * return true</pre> * </div> * <div class="col"> * <p>Inline code for comments</p> * <pre> * I think you should use an * `<addr>` element here instead.</pre> * </div> * </div> * * </div> * </div> * * * <div class="ajax-error-message"> * <p><span class="icon"></span> Something went wrong with that request. Please try again. <a href="javascript:;" class="ajax-error-dismiss">Dismiss</a></p> * </div> * * * * * <span id='server_response_time' data-time='0.05161' data-host='fe9'></span> * </body> * </html> */ package org.mule.module.jpa; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.mule.api.MuleContext; import org.mule.api.context.MuleContextAware; import org.mule.api.expression.RequiredValueException; import org.mule.api.registry.InjectProcessor; import org.mule.config.i18n.AnnotationsMessages; import javax.persistence.EntityManagerFactory; import javax.persistence.PersistenceContext; import java.lang.reflect.Field; /** * <code>PersistenceContextProcessor</code> is responsible for injecting the <code>MuleEntityManager</code> * into components using the @PersistenceContext annotation. */ public class PersistenceContextProcessor implements InjectProcessor, MuleContextAware { protected transient final Log logger = LogFactory.getLog(PersistenceContextProcessor.class); MuleContext muleContext; public Object process(Object object) { Field[] fields; try { fields = object.getClass().getDeclaredFields(); } catch (NoClassDefFoundError e) { if (logger.isDebugEnabled()) { logger.warn(e.toString()); } return object; } for (Field field : fields) { if (field.isAnnotationPresent(PersistenceContext.class)) { field.setAccessible(true); try { if (field.get(object) == null) { EntityManagerFactory factory = muleContext.getRegistry() .lookupObject(EntityManagerFactory.class); if (factory == null) { throw new JPAException( "Couldn't find an EntityManagerFactory in the registry to inject"); } field.set(object, new MuleEntityManager(factory)); } else { logger.warn("The PersistenceContext has already been injected"); } } catch (RequiredValueException e) { throw e; } catch (Exception e) { throw new RequiredValueException(AnnotationsMessages.lookupFailedSeePreviousException(object), e); } } } return object; } public void setMuleContext(MuleContext context) { muleContext = context; } }