That sounds really nice!<br>Can you mention the features that you get working? which are left out?<br><br><br><div class="gmail_quote">On Mon, Jan 17, 2011 at 4:32 PM, Mark Proctor <span dir="ltr"><<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff"><div class="im">
On 17/01/2011 19:25, Paul Browne wrote:
<blockquote type="cite">Folks,<br>
<br>
A little bit later than expected (!) I've managed to get Drools
running within Google App Engine. <br>
</blockquote></div>
I thought App Engine wouldn't work with runtime generated bytecode
and had classloader restrictions?<br>
<br>
Mark<div class="im"><br>
<blockquote type="cite"><br>
A list of the changes that I made to the Drools Core and Drools
Util code are below. A lot of these changes are NullPointer checks
when reading properties from a file (i.e. things that you might
want in the codebase anyway).<br>
<br>
Notes on the sample I used to try this out are at <br>
<a href="http://code.google.com/p/red-piranha/wiki/ModifyDroolsRunInGoogleAppEngine" target="_blank">http://code.google.com/p/red-piranha/wiki/ModifyDroolsRunInGoogleAppEngine</a><br>
The sample (for the moment) is running a pre-built KnowledgeBase
within GAE (i.e. no rule compilation, nor any of the advanced
features).<br>
<br>
What is the best way of submitting the actual code changes for
review and possible inclusion as part of the Drools source code? <br>
</blockquote></div>
A patch against trunk attached to a jira should suffice, don't
forget we've moved to GIT.<br>
<br>
Mark<br>
<blockquote type="cite"><div class="im">
<br>
Thanks<br>
<br>
Paul<br>
<br>
<p><b> Drools Core </b></p>
<pre><span> </span><span>AbstractRuleBase</span><span>.</span><span>java </span><span>// line 265 surrounded by try / catch </span><span>
</span><span>this</span><span>.</span><span>config </span><span>=</span><span> </span><span>(</span><span>RuleBaseConfiguration</span><span>)</span><span> droolsStream</span><span>.</span><span>readObject</span><span>();</span></pre>
<pre><span> </span><span>RuleBaseConfiguration</span><span>.</span><span>java </span><span>// - line 985 surround by try / catch</span><span>
</span><span>this</span><span>.</span><span>classLoader </span><span>=</span><span> </span><span>ClassLoaderUtil</span><span>.</span><span>getClassLoader</span></pre>
<pre><span> </span><span>RuleBaseConfiguration</span><span>.</span><span>java </span><span>// line 395 surround by try / catch</span><span>
</span><span>this</span><span>.</span><span>chainedProperties </span><span>=</span><span> </span><span>new</span><span> </span><span>ChainedProperties</span><span>(</span><span> </span><span>"rulebase.conf"</span><span>,</span></pre>
<pre><span> </span><span>RuleBaseConfiguration</span><span>.</span><span>java </span><span>// line 457 surround by try / catch, default Conflict Resolver</span><span>
setConflictResolver</span><span>(</span><span> determineConflictResolver</span><span>(</span><span> </span><span>this</span><span>.</span><span>chainedProperties</span><span>.</span><span>getProperty</span><span>(</span><span> </span><span>"drools.conflictResolver"</span><span>,</span><span> </span></pre>
<p> <b> Drools Util </b></p>
<pre><span> </span><span>ChainedProperties</span><span>.</span><span>java </span><span>// line 98 - exception check around ClassLoader.getSystemClassLoader();</span></pre>
<pre><span> </span><span>ChainedProperties</span><span>.</span><span>java </span><span>// line 125 - exception check around ClassLoader.getSystemClassLoader();</span></pre>
<pre><span> </span><span>ChainedProperties</span><span>.</span><span>java </span><span>// line 160 </span><span>
</span><span>-</span><span> </span><span>null</span><span> check </span><span>for</span><span> properties </span><span>/</span><span>key </span><span>and</span><span> </span><span>return</span><span> </span><span>default</span></pre>
<pre><span> </span><span>ChainedProperties</span><span>.</span><span>java </span><span>// line 240 - surround by try / catch for securityaccessexception</span><span>
</span><span>if</span><span> </span><span>(</span><span> file </span><span>!=</span><span> </span><span>null</span><span> </span><span>&&</span><span> file</span><span>.</span><span>exists</span><span>()</span><span> </span><span>)</span><span> </span><span>{</span></pre>
<pre><span> </span><span>ChainedProperties</span><span>.</span><span>java </span><span>// line 270 - surround by try / catch for securityaccessexception</span><span>
</span><span>if</span><span> </span><span>(</span><span> file </span><span>!=</span><span> </span><span>null</span><span> </span><span>&&</span><span> file</span><span>.</span><span>exists</span><span>()</span><span> </span><span>)</span><span> </span><span>{</span></pre>
<pre><span> </span><span>ClassFieldInspector</span><span>.</span><span>java </span><span>// line 166 - </span><span>
</span><span>return</span><span> </span><span>"/"</span><span> </span><span>+</span><span> clazz</span><span>.</span><span>getCanonicalName</span><span>()</span><span> </span><span>+</span><span> </span><span>".class"</span><span>;</span></pre>
<pre><span> </span><span>ClassLoaderUtil</span><span>.</span><span>java </span><span>// line 25 - surround by try / catch for securityaccessexception</span><span>
</span><span>ClassLoader</span><span> systemClassLoader </span><span>=</span><span> </span></pre>
<br>
</div><pre><fieldset></fieldset>
_______________________________________________
rules-dev mailing list
<a href="mailto:rules-dev@lists.jboss.org" target="_blank">rules-dev@lists.jboss.org</a>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a>
</pre>
</blockquote>
<br>
</div>
<br>_______________________________________________<br>
rules-dev mailing list<br>
<a href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-dev</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br> - CTO @ <a href="http://www.plugtree.com">http://www.plugtree.com</a> <br> - MyJourney @ <a href="http://salaboy.wordpress.com">http://salaboy.wordpress.com</a><br>
- Co-Founder @ <a href="http://www.jbug.com.ar">http://www.jbug.com.ar</a><br> <br> - Salatino "Salaboy" Mauricio -<br>