<?xml version="1.0"?>
<rss version="2.0">
<channel>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/</link>
<title>helma.org/wiki/Helma NG/Running Rhino and Helma NG on Google App Engine</title>
<description>Updates for Page helma.org/wiki/Helma NG/Running Rhino and Helma NG on Google App Engine</description>
<pubDate>Thu, 24 May 2012 14:01:15 +0000</pubDate>
<item>
<title>Version 31</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=31</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;30&lt;/td&gt;&lt;td&gt;You need [Apache Ant][ant] to build Helma NG. Change to the helma-ng directory you just checked out and run ant it with the &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;jar&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`jar` &lt;/span&gt;target:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;36&lt;/td&gt;&lt;td&gt;If this worked then you should now have a file called &lt;span class=&#39;diffremoved&#39;&gt;lib/helma&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/helma&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;jar&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;42&lt;/td&gt;&lt;td&gt;The new project should have two subdirectories, &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;src&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`src` &lt;/span&gt;and &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;war&amp;quot;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war`&lt;/span&gt;. Again, the &lt;span class=&#39;diffremoved&#39;&gt;src &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`src` &lt;/span&gt;dir is only relevant for Java code, as we&#39;ll put our JavaScript code directly in &lt;span class=&#39;diffremoved&#39;&gt;war/WEB-INF &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war/WEB-INF` &lt;/span&gt;and our jar files in &lt;span class=&#39;diffremoved&#39;&gt;war/WEB-INF/lib&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war/WEB-INF/lib`&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;44&lt;/td&gt;&lt;td&gt;Next, copy over some jar files from the Helma NG lib directory to the &lt;span class=&#39;diffremoved&#39;&gt;war/WEB-INF/lib &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war/WEB-INF/lib` &lt;/span&gt;of your project. You&#39;ll probably need the following:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;58&lt;/td&gt;&lt;td&gt;From the SDK directory, copy demos/new_project_template and rename it to your application&#39;s name (say &amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;Demo&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`Demo`&lt;/span&gt;&amp;quot;). &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;60&lt;/td&gt;&lt;td&gt;Open &lt;span class=&#39;diffremoved&#39;&gt;Demo/build&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`Demo/build&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml`&lt;/span&gt;, locate the property &lt;span class=&#39;diffremoved&#39;&gt;appengine&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`appengine&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;sdk &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;sdk` &lt;/span&gt;and modify it so that it points to the path of the SDK root directory on your machine.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;65&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;description=&amp;quot;Copies the App Engine JARs to the WAR.&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;67&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;flatten=&amp;quot;true&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;74&lt;/td&gt;&lt;td&gt;Again in &lt;span class=&#39;diffremoved&#39;&gt;build&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`build&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml` &lt;/span&gt;locate the &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;war&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war` &lt;/span&gt;target and add a dependency on the &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;copyjars&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`copyjars` &lt;/span&gt;target so that it looks like:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;77&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;description=&amp;quot;Assemble the application directory&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;79&lt;/td&gt;&lt;td&gt;Run &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;ant&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`ant` &lt;/span&gt;in the same directory as &lt;span class=&#39;diffremoved&#39;&gt;&amp;quot;build&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`build&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml&amp;quot; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml` &lt;/span&gt;so that the &lt;span class=&#39;diffremoved&#39;&gt;WEB-INF &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF` &lt;/span&gt;directory will be created.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;81&lt;/td&gt;&lt;td&gt;Next, copy over some jar files from the Helma NG lib directory to the &lt;span class=&#39;diffremoved&#39;&gt;www/WEB-INF/lib &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`www/WEB-INF/lib` &lt;/span&gt;of your project. You&#39;ll probably need the following:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;95&lt;/td&gt;&lt;td&gt; 1. Copy the modules directory from the Helma NG directory to &lt;span class=&#39;diffremoved&#39;&gt;war/WEB-INF &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war/WEB-INF` (or `www/WEB-INF`, if you created the project from the command-line) &lt;/span&gt;so that the resulting directory is called `WEB-INF/modules`.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;97&lt;/td&gt;&lt;td&gt; 2. Copy the demo app from &lt;span class=&#39;diffremoved&#39;&gt;apps/demo &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Helma NG&#39;s `apps/demo` &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;war/WEB-INF &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`war/WEB-INF` (or `www/WEB-INF`, respectively) &lt;/span&gt;so that the resulting directory is called `WEB-INF/demo`. Note that the demo app contains a symbolic link, which is not supported by Google App Engine. Copying files with `cp -rL` will take care of &lt;span class=&#39;diffremoved&#39;&gt;dereferncing &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;dereferencing &lt;/span&gt;the link.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;99&lt;/td&gt;&lt;td&gt; 3. Copy or move the static directory from within the demo app two levels up to the war directory &lt;span class=&#39;diffremoved&#39;&gt;(war/static)&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;(`war/static` or `www/static`)&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;105&lt;/td&gt;&lt;td&gt;That&#39;s it - save all your changes and click on the green Run button in Eclipse or run &lt;span class=&#39;diffremoved&#39;&gt;the dev_appserver.sh script &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`ant dev_appserver` &lt;/span&gt;to start the development server. If everything worked as planned you should be able to access the [demo app](http://helma-ng.appspot.com/) on http://localhost:8080/. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Sun, 27 Sep 2009 22:54:18 +0000</pubDate>
<author>earl</author>
</item>
<item>
<title>Version 30</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=30</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;28&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;git &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`git &lt;/span&gt;clone git://github.com/hns/helma-ng.&lt;span class=&#39;diffremoved&#39;&gt;git&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;git`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;34&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;ant jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`ant jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;46&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/js&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/js&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;47&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/helma&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/helma&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;48&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/log4j-1&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/log4j-1&lt;/span&gt;.2.15.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;81&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/js&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/js&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;82&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/helma&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/helma&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;83&lt;/td&gt;&lt;td&gt;* &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/log4j-1&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`lib/log4j-1&lt;/span&gt;.2.15.&lt;span class=&#39;diffremoved&#39;&gt;jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;jar`&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;91&lt;/td&gt;&lt;td&gt; 1. Copy the modules directory from the Helma NG directory to war/WEB-INF so that the resulting directory is called &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/modules&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF/modules`&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;93&lt;/td&gt;&lt;td&gt; 2. Copy the demo app from apps/demo to war/WEB-INF so that the resulting directory is called &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/demo&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF/demo`&lt;/span&gt;. Note that the demo app contains a symbolic link, which is not supported by Google App Engine. Copying files with &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;cp -rL&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`cp -rL` &lt;/span&gt;will take care of dereferncing the link.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;97&lt;/td&gt;&lt;td&gt; 4. Edit &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF/web&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml` &lt;/span&gt;to look [like the attached file](http://dev.helma.org/static/files/3318/web.xml), or just download and overwrite the file.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;99&lt;/td&gt;&lt;td&gt; 5. Edit &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/appengine-web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF/appengine-web&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml` &lt;/span&gt;to look [like the attached file](http://dev.helma.org/static/files/3318/appengine-web.xml), or just download and overwrite the file.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;107&lt;/td&gt;&lt;td&gt;The setup is much the same as with the Helma NG demo application, only that you point the JackServlet to your own Jack web appliction in &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`WEB-INF/web&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml`&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;109&lt;/td&gt;&lt;td&gt;For example, assuming you have the following simple Jack application in &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;app/main&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`app/main&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;js&amp;lt;/tt&amp;gt;: &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;js`: &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;115&lt;/td&gt;&lt;td&gt;You would then set the &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modulePath&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`modulePath` &lt;/span&gt;servlet init-parameter in [web.xml](http://dev.helma.org/static/files/3318/web.xml) to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;app&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`app`&lt;/span&gt;, &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;moduleName&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`moduleName` &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;main&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`main`&lt;/span&gt;, and &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;functionName&amp;lt;/tt&amp;gt; &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`functionName` &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;handler&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;`handler`&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Mon, 21 Sep 2009 15:35:42 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 29</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=29</link>
<description>&lt;ul class=&#39;diffproperties&#39;&gt;&lt;li&gt;Set &lt;span class=&#39;diffpropname&#39;&gt;useMarkdown&lt;/span&gt; to &lt;span class=&#39;diffadded&#39;&gt;true&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;#MARKDOWN&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Mon, 21 Sep 2009 10:59:55 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 28</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=28</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;15&lt;/td&gt;&lt;td&gt;This article covers two options, one using the Helma NG webapp framework, and one using the &lt;span class=&#39;diffremoved&#39;&gt;*Jack|http://github.com/tlrobinson/jack/tree/master* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Jack] &lt;/span&gt;interface for JavaScript web applications. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 16 Sep 2009 17:18:05 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 27</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=27</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;### &lt;span class=&#39;diffremoved&#39;&gt;Prerequisites: &lt;/span&gt;Installing App Engine SDK and Helma NG&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;40&lt;/td&gt;&lt;td&gt;### Creating a new &lt;span class=&#39;diffremoved&#39;&gt;Web App &lt;/span&gt;project with the Eclipse plugin&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;58&lt;/td&gt;&lt;td&gt;### Creating a new &lt;span class=&#39;diffremoved&#39;&gt;Web App &lt;/span&gt;project from the command line&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 16 Sep 2009 17:02:49 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 26</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=26</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Prerequisites: Installing App Engine SDK and Helma NG&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;40&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Creating a new Web App project with the Eclipse plugin&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;58&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Creating a new Web App project from the command line&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;93&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Running Helma NG apps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;109&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Running Jack apps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;125&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;=== &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;### &lt;/span&gt;Attachments&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 16 Sep 2009 16:59:46 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 25</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=25</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;With Google&#39;s *announcement|http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html* of *Java support|http://code.google.com/appengine/docs/java/overview.html* for App Engine there is all of a sudden a very attractive new option for hosting Java based web applications. Of course my first impulse was to check if it would run *Rhino|http://www.mozilla.org/rhino/* and Helma NG (I had little hopes for Helma 1 as it runs a lot of background threads and relies heavily on relational or file based database backends, both of which are not available on App Engine).&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;#MARKDOWN&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;3&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;To my surprise, Rhino works perfectly out &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;With Google&#39;s [announcement][1] &lt;/span&gt;of &lt;span class=&#39;diffremoved&#39;&gt;the box, and I only had to make a few changes to Helma NG to get the demo app *running on &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Java support][2] for &lt;/span&gt;App &lt;span class=&#39;diffremoved&#39;&gt;Engine|http://helma-ng.appspot.com/*. This &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Engine there &lt;/span&gt;is &lt;span class=&#39;diffremoved&#39;&gt;somewhat in contradiction with what *others have found|http://olabini&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;all of a sudden a very attractive new option for hosting Java based web applications&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;com/blog/tag/gae/*,&lt;/span&gt;&amp;nbsp;&lt;span class=&#39;diffremoved&#39;&gt;and I discovered only later that I &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Of course my first impulse &lt;/span&gt;was &lt;span class=&#39;diffremoved&#39;&gt;partly lucky &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;to check if it would run [Rhino] and Helma NG (I had little hopes &lt;/span&gt;for &lt;span class=&#39;diffremoved&#39;&gt;not stomping on any SecurityExceptions, but on the other hand it&#39;s by virtue of Rhino not doing &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Helma 1 as it runs &lt;/span&gt;a lot of &lt;span class=&#39;diffremoved&#39;&gt;tricks under the hood, &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;background threads &lt;/span&gt;and &lt;span class=&#39;diffremoved&#39;&gt;Helma NG doing all its &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;relies heavily on relational or &lt;/span&gt;file &lt;span class=&#39;diffremoved&#39;&gt;reading through a unified *resource framework|http://github.com/hns/helma-ng/tree/10f5c896b0e9d9e2193ee24174d084965400520f/src/org/helma/repository*.&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;based database backends,&lt;/span&gt;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;both of which are not available on App Engine).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;5&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[1]: http://googleappengine.blogspot.com/2009/04/seriously-this-time-new-language-on-app.html&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;6&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[2]: http://code.google.com/appengine/docs/java/overview.html&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;7&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[rhino]: http://www.mozilla.org/rhino/&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;8&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;9&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;To my surprise, Rhino works perfectly out of the box, and I only had to make a few changes to Helma NG to get the demo app [running on App Engine][3]. This is somewhat in contradiction with what [others have found][ola], and I discovered only later that I was partly lucky for not stomping on any SecurityExceptions, but on the other hand it&#39;s by virtue of Rhino not doing a lot of tricks under the hood, and Helma NG doing all its file reading through a unified [resource framework][4]. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;10&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;11&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[3]: http://helma-ng.appspot.com/&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;12&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[ola]: http://olabini.com/blog/tag/gae/&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[4]: http://github.com/hns/helma-ng/tree/master/src/org/helma/repository&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;14&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;10&lt;/td&gt;&lt;td&gt;First, install the App Engine SDK for Java as described on the &lt;span class=&#39;diffremoved&#39;&gt;*Google pages|http://code.google.com/appengine/docs/java/gettingstarted/installing.html*&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Google pages][gae-install]&lt;/span&gt;. Whether you use the Eclipse plugin or the command line SDK shouldn&#39;t make a difference. I&#39;m using Eclipse, but things should work in a similar fashion with the command line SDK.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;12&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[gae-install]: http://code.google.com/appengine/docs/java/gettingstarted/installing.html&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;15&lt;/td&gt;&lt;td&gt;You can &lt;span class=&#39;diffremoved&#39;&gt;*download &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[download &lt;/span&gt;the latest &lt;span class=&#39;diffremoved&#39;&gt;release|http://github.com/hns/helma-ng/downloads* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;release][download] &lt;/span&gt;or get the current snapshot &lt;span class=&#39;diffremoved&#39;&gt;*from Github|http://github.com/hns/helma-ng/tree/master*&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[from Github][github]&lt;/span&gt;, either by clicking the download button or using the following git command: &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[download]: http://github.com/hns/helma-ng/downloads&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;18&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[github]: http://github.com/hns/helma-ng/tree/master&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;19&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;20&lt;/td&gt;&lt;td&gt;You need &lt;span class=&#39;diffremoved&#39;&gt;*Apache Ant|http://ant.apache.org/* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Apache Ant][ant] &lt;/span&gt;to build Helma NG. Change to the helma-ng directory you just checked out and run ant it with the &amp;quot;jar&amp;quot; target:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;22&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[ant]: http://ant.apache.org/&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;23&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;24&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;41&lt;/td&gt;&lt;td&gt;From here, you have two options: Run an app using the Helma NG webapp framework, or one using the &lt;span class=&#39;diffremoved&#39;&gt;*Jack|http://github.com/tlrobinson/jack/tree/master* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Jack] &lt;/span&gt;interface. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;43&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;[jack]: http://github.com/tlrobinson/jack/tree/master&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;44&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;52&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;target name=&amp;quot;copyjars&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;54&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;copy todir=&amp;quot;${war.dir}/WEB-INF/lib&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;56&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;fileset dir=&amp;quot;${appengine.sdk}/lib/user&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;57&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;include name=&amp;quot;\*\*/*.jar&amp;quot; /&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;58&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/fileset&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;59&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/copy&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;60&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;/target&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;60&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;target name=&amp;quot;war&amp;quot; depends=&amp;quot;enhance,copyjars&amp;quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;73&lt;/td&gt;&lt;td&gt;From here, you have two options: Run an app using the Helma NG webapp framework, or one using the &lt;span class=&#39;diffremoved&#39;&gt;*Jack|http://github.com/tlrobinson/jack/tree/master* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Jack] &lt;/span&gt;interface. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;79&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;# &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt; 1. &lt;/span&gt;Copy the modules directory from the Helma NG directory to war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/modules&amp;lt;/tt&amp;gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;80&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;# Copy the demo app from apps/demo to war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/demo&amp;lt;/tt&amp;gt;. Note that the demo app contains a symbolic link, which is not supported by Google App Engine. Copying files with &amp;lt;tt style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;cp -rL&amp;lt;/tt&amp;gt; will take care of dereferncing the link.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;81&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;# Copy or move the static directory from within the demo app two levels up to the war directory (war/static).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;82&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;# Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/web.xml&amp;lt;/tt&amp;gt; to look *like the attached file|http://dev.helma.org/static/files/3318/web.xml*, or just download and overwrite the file.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;83&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;# Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/appengine-web.xml&amp;lt;/tt&amp;gt; to look *like the attached file|http://dev.helma.org/static/files/3318/appengine-web.xml*, or just download and overwrite the file.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;81&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;That&#39;s it - save all your changes and click on the green Run button in Eclipse or run the dev_appserver&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt; 2&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;sh script &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt; Copy the demo app from apps/demo &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;start &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;war/WEB-INF so that &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;development server&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/demo&amp;lt;/tt&amp;gt;&lt;/span&gt;. &lt;span class=&#39;diffremoved&#39;&gt;If everything worked as planned you should be able to access &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Note that &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;*demo app|http://helma-ng&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;demo app contains a symbolic link, which is not supported by Google App Engine&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;appspot.com/* on http://localhost:8080/.&lt;/span&gt;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;Copying files with &amp;lt;tt style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;cp -rL&amp;lt;/tt&amp;gt; will take care of dereferncing the link.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;83&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt; 3. Copy or move the static directory from within the demo app two levels up to the war directory (war/static).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;84&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;85&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt; 4. Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/web.xml&amp;lt;/tt&amp;gt; to look [like the attached file](http://dev.helma.org/static/files/3318/web.xml), or just download and overwrite the file.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;86&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;87&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt; 5. Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/appengine-web.xml&amp;lt;/tt&amp;gt; to look [like the attached file](http://dev.helma.org/static/files/3318/appengine-web.xml), or just download and overwrite the file.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;88&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;89&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;That&#39;s it - save all your changes and click on the green Run button in Eclipse or run the dev_appserver.sh script to start the development server. If everything worked as planned you should be able to access the [demo app](http://helma-ng.appspot.com/) on http://localhost:8080/. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;90&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;86&lt;/td&gt;&lt;td&gt;Helma NG uses &lt;span class=&#39;diffremoved&#39;&gt;*Jack|http://github.com/tlrobinson/jack/tree/master* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[Jack] &lt;/span&gt;to as web application connector, so you are not bound to use the Helma webapp infrastructure. If you prefer, you can use Helma NG as a container for Jack applications fully compatible with the &lt;span class=&#39;diffremoved&#39;&gt;*ServerJS &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[ServerJS &lt;/span&gt;Securable Modules &lt;span class=&#39;diffremoved&#39;&gt;proposal|https://wiki&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;proposal](https://wiki&lt;/span&gt;.mozilla.&lt;span class=&#39;diffremoved&#39;&gt;org/ServerJS/Modules/SecurableModules*&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;org/ServerJS/Modules/SecurableModules)&lt;/span&gt;. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;92&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;function handler(env) &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;93&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;return [200, {&amp;quot;Content-Type&amp;quot;: &amp;quot;text/plain&amp;quot;}, [&amp;quot;Hello World!&amp;quot;]];&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;94&lt;/td&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;94&lt;/td&gt;&lt;td&gt;You would then set the &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modulePath&amp;lt;/tt&amp;gt; servlet init-parameter in &lt;span class=&#39;diffremoved&#39;&gt;*web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[web&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml|http://dev&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml](http://dev&lt;/span&gt;.helma.org/static/files/3318/web.&lt;span class=&#39;diffremoved&#39;&gt;xml* &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml) &lt;/span&gt;to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;app&amp;lt;/tt&amp;gt;, &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;moduleName&amp;lt;/tt&amp;gt; to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;main&amp;lt;/tt&amp;gt;, and &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;functionName&amp;lt;/tt&amp;gt; to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;handler&amp;lt;/tt&amp;gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 16 Sep 2009 16:29:14 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 24</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=24</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;82&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;# Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;WEB-INF/appengine-web.xml&amp;lt;/tt&amp;gt; to look *like the attached file|http://dev.helma.org/static/files/3318/appengine-web.xml*, or just download and overwrite the file.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Mon, 13 Jul 2009 11:08:39 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 23</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=23</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;52&lt;/td&gt;&lt;td&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;**/*&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;\*\*/*&lt;/span&gt;.jar&amp;quot; /&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Sat, 04 Jul 2009 19:08:29 +0000</pubDate>
<author>simono</author>
</item>
<item>
<title>Version 22</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=22</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;13&lt;/td&gt;&lt;td&gt;You can *download the latest release|http://github.com/hns/helma-ng/downloads* or get &lt;span class=&#39;diffremoved&#39;&gt;a &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;the current &lt;/span&gt;snapshot &lt;span class=&#39;diffremoved&#39;&gt;from *Subversion|https://dev&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;*from Github|http://github&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;helma.org/svn/helma-ng/trunk* or *Git|http://github.&lt;/span&gt;com/hns/helma-ng/tree/master*&lt;span class=&#39;diffremoved&#39;&gt;. For Subversion&lt;/span&gt;, &lt;span class=&#39;diffadded&#39;&gt;either by clicking &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;command is:&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;download button or using the following git command: &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;15&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;svn co https&amp;amp;#58;//dev.helma.org/svn/helma-ng/trunk/ helma-ng&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;16&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;17&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;For Git: &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;18&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;21&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 16 Jun 2009 10:20:49 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 21</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=21</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;27&lt;/td&gt;&lt;td&gt;=== Creating a new Web App &lt;span class=&#39;diffremoved&#39;&gt;project&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;project with the Eclipse plugin&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;29&lt;/td&gt;&lt;td&gt;Once you have everything in place, create a new, empty App Engine application. &lt;span class=&#39;diffremoved&#39;&gt;With &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;Use &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;Eclipse plugin you do this using the &lt;/span&gt;new project wizard and &lt;span class=&#39;diffremoved&#39;&gt;selecting &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;select &lt;/span&gt;&amp;quot;Web Application Project&amp;quot; in the Google category. This will ask you for a project name and a package name. The package name doesn&#39;t matter unless you plan to write Java code, but it is required so just enter anything.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;34&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;35&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/js.jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;36&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/helma.jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;37&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;* &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;lib/log4j-1.2.15.jar&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;38&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;39&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;App Engine has its own web server of course, so you don&#39;t need the jetty or servlet jar files. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;40&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;41&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;From here, you have two options: Run an app using the Helma NG webapp framework, or one using the *Jack|http://github.com/tlrobinson/jack/tree/master* interface. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;42&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;43&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;=== Creating a new Web App project from the command line&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;44&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;45&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;From the SDK directory, copy demos/new_project_template and rename it to your application&#39;s name (say &amp;quot;Demo&amp;quot;). &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;46&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;47&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Open Demo/build.xml, locate the property appengine.sdk and modify it so that it points to the path of the SDK root directory on your machine.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;48&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;49&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Also add the following:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;50&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;51&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;lt;target name=&amp;quot;copyjars&amp;quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;52&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; description=&amp;quot;Copies the App Engine JARs to the WAR.&amp;quot;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;53&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;copy todir=&amp;quot;${war.dir}/WEB-INF/lib&amp;quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;54&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; flatten=&amp;quot;true&amp;quot;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;55&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;fileset dir=&amp;quot;${appengine.sdk}/lib/user&amp;quot;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;56&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;include name=&amp;quot;**/*.jar&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;57&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/fileset&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;58&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/copy&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;59&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;lt;/target&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;60&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;61&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Again in build.xml locate the &amp;quot;war&amp;quot; target and add a dependency on the &amp;quot;copyjars&amp;quot; target so that it looks like:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;62&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;63&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;lt;target name=&amp;quot;war&amp;quot; depends=&amp;quot;enhance,copyjars&amp;quot;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;64&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; description=&amp;quot;Assemble the application directory&amp;quot;&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;65&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;66&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Run &amp;quot;ant&amp;quot; in the same directory as &amp;quot;build.xml&amp;quot; so that the WEB-INF directory will be created.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;67&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;68&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;Next, copy over some jar files from the Helma NG lib directory to the www/WEB-INF/lib of your project. You&#39;ll probably need the following:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Sat, 30 May 2009 13:23:43 +0000</pubDate>
<author>bard</author>
</item>
<item>
<title>Version 20</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=20</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;70&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;=== Attachments&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;71&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;72&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:53:33 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 19</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=19</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;47&lt;/td&gt;&lt;td&gt;# Copy the modules directory from the Helma NG directory to war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;war/WEB-INF/modules&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;WEB-INF/modules&amp;lt;/tt&amp;gt;&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;48&lt;/td&gt;&lt;td&gt;# Copy the demo app from apps/demo to war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;war/WEB-INF/demo&amp;lt;/tt&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;WEB-INF/demo&amp;lt;/tt&amp;gt;&lt;/span&gt;. Note that the demo app contains a symbolic link, which is not supported by Google App Engine. Copying files with &amp;lt;tt style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;cp -rL&amp;lt;/tt&amp;gt; will take care of dereferncing the link.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;49&lt;/td&gt;&lt;td&gt;# Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;war/WEB-INF/web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;WEB-INF/web&lt;/span&gt;.xml&amp;lt;/tt&amp;gt; to look *like the attached file|http://dev.helma.org/static/files/3318/web.xml*, or just download and overwrite the file.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;57&lt;/td&gt;&lt;td&gt;The setup is much the same as with the Helma NG demo application, only that you point the JackServlet to your own Jack web appliction in &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;war/WEB-INF/web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;WEB-INF/web&lt;/span&gt;.xml&amp;lt;/tt&amp;gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;65&lt;/td&gt;&lt;td&gt;You would then set the &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modulePath&amp;lt;/tt&amp;gt; servlet init-parameter in &lt;span class=&#39;diffremoved&#39;&gt;*WEB-INF/web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;*web&lt;/span&gt;.xml|http://dev.helma.org/static/files/3318/web.xml* to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;app&amp;lt;/tt&amp;gt;, &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;moduleName&amp;lt;/tt&amp;gt; to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;main&amp;lt;/tt&amp;gt;, and &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;functionName&amp;lt;/tt&amp;gt; to &amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;handler&amp;lt;/tt&amp;gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:52:53 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 18</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=18</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;50&lt;/td&gt;&lt;td&gt;# Edit &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;war/WEB-INF/web.xml&amp;lt;/tt&amp;gt; to look *like &lt;span class=&#39;diffremoved&#39;&gt;this|http://dev&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;the attached file|http://dev&lt;/span&gt;.helma.org/static/files/3318/web.xml*, or just download and overwrite the file.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;66&lt;/td&gt;&lt;td&gt;You would then set the &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modulePath&amp;lt;/tt&amp;gt; servlet init-parameter in &lt;span class=&#39;diffremoved&#39;&gt;web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;*WEB-INF/web&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;xml &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;xml|http://dev.helma.org/static/files/3318/web.xml* &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;code&amp;gt;app&amp;lt;/code&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;app&amp;lt;/tt&amp;gt;&lt;/span&gt;, &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;moduleName&amp;lt;/tt&amp;gt; to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;main&amp;lt;/tt&amp;gt;&lt;/span&gt;, and &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;functionName&amp;lt;/tt&amp;gt; to &lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;code&amp;gt;handler&amp;lt;/code&amp;gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;handler&amp;lt;/tt&amp;gt;&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:51:11 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 17</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=17</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;70&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;% this.attachments %&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:48:00 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 16</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=16</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;5&lt;/td&gt;&lt;td&gt;This article covers two options, one using the Helma NG webapp framework, and one using the *Jack|http://github.com/tlrobinson/jack/tree/master* interface for JavaScript web applications. &lt;span class=&#39;diffremoved&#39;&gt;Both are currently unfinished and subject to change, but it&#39;s enough to get your feet wet.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:46:24 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 15</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=15</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;b&amp;gt;NOTE: this guide is out of date already. The servlet name has changed to org.helma.jack.JackServlet, and the servlet parameters to moduleName, functionName, and helmaHome, respectively. I&#39;ll update this page as soon as the dust has settled. Sorry for the inconvenience and thanks for checking out Helma NG!&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;14&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;There hasn&#39;t been a release of Helma NG in recent times, so you have to &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;You can *download the latest release|http://github.com/hns/helma-ng/downloads* or &lt;/span&gt;get &lt;span class=&#39;diffremoved&#39;&gt;it &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;a snapshot &lt;/span&gt;from &lt;span class=&#39;diffremoved&#39;&gt;either &lt;/span&gt;*Subversion|https://dev.helma.org/svn/helma-ng/trunk* or *Git|http://github.com/hns/helma-ng/tree/master*. For Subversion, the command is:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;42&lt;/td&gt;&lt;td&gt;From here, you have two options: Run an app using the Helma NG webapp framework, or one using the *Jack|http://github.com/tlrobinson/jack/tree/master* interface. &lt;span class=&#39;diffremoved&#39;&gt;The first is currently subject to major redesign, while the latter is rather unfinished, so choose your tools wisely :-)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;48&lt;/td&gt;&lt;td&gt;# Copy &lt;span class=&#39;diffremoved&#39;&gt;over &lt;/span&gt;the modules directory from the Helma NG directory to &lt;span class=&#39;diffremoved&#39;&gt;the &lt;/span&gt;war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;war/WEB-INF/modules&amp;lt;/tt&amp;gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;49&lt;/td&gt;&lt;td&gt;# Copy the demo app &lt;span class=&#39;diffremoved&#39;&gt;itself &lt;/span&gt;from apps/demo to war/WEB-INF so that the resulting directory is called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;war/WEB-INF/demo&amp;lt;/tt&amp;gt;&lt;span class=&#39;diffadded&#39;&gt;. Note that the demo app contains a symbolic link, which is not supported by Google App Engine. Copying files with &amp;lt;tt style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;cp -rL&amp;lt;/tt&amp;gt; will take care of dereferncing the link&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;50&lt;/td&gt;&lt;td&gt;# Edit &lt;span class=&#39;diffremoved&#39;&gt;the &lt;/span&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;web&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;war/WEB-INF/web&lt;/span&gt;.xml&amp;lt;/tt&amp;gt; &lt;span class=&#39;diffremoved&#39;&gt;file in the war/WEB-INF directory &lt;/span&gt;to look *like this|http://dev.helma.&lt;span class=&#39;diffremoved&#39;&gt;org/static/files/3318/web-helma&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;org/static/files/3318/web&lt;/span&gt;.xml*, or just &lt;span class=&#39;diffremoved&#39;&gt;copy &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;download and overwrite &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;file if you are lazy&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;file&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;52&lt;/td&gt;&lt;td&gt;That&#39;s it - save all your changes and click on the green Run button in Eclipse &lt;span class=&#39;diffadded&#39;&gt;or run the dev_appserver.sh script &lt;/span&gt;to start the development server. If everything worked as planned you should be able to access the *demo app|http://helma-ng.appspot.com/* on http://localhost:8080/. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;54&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; The Helma webapp framework is currently in state of major redesign. If you&#39;re looking for a stable development platform I recommend to wait until the upcoming 0.3 release.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;55&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;57&lt;/td&gt;&lt;td&gt;Helma NG &lt;span class=&#39;diffremoved&#39;&gt;provides a servlet to run &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;uses &lt;/span&gt;*Jack|http://github.com/tlrobinson/jack/tree/master* &lt;span class=&#39;diffremoved&#39;&gt;applications without using Helma&#39;s own module &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;to as web application connector, so you are not bound to use the Helma webapp &lt;/span&gt;infrastructure. &lt;span class=&#39;diffremoved&#39;&gt;In this mode&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;If you prefer&lt;/span&gt;, you &lt;span class=&#39;diffremoved&#39;&gt;get &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;can use Helma NG as &lt;/span&gt;a &lt;span class=&#39;diffremoved&#39;&gt;relatively naked JavaScript runtime that is &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;container for Jack applications &lt;/span&gt;fully &lt;span class=&#39;diffremoved&#39;&gt;compliant to &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;compatible with &lt;/span&gt;the *ServerJS Securable Modules proposal|https://wiki.mozilla.org/ServerJS/Modules/SecurableModules*. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;59&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;Copy over &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;The setup is much &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;modules directory from &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;same as with &lt;/span&gt;the Helma NG &lt;span class=&#39;diffremoved&#39;&gt;directory to the war/WEB-INF so that the resulting directory is called war/WEB-INF/modules&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;demo application&lt;/span&gt;, &lt;span class=&#39;diffremoved&#39;&gt;but for a minimal runtime, just copy &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;only that you point &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;following two files:&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;JackServlet to your own Jack web appliction in &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;war/WEB-INF/web.xml&amp;lt;/tt&amp;gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;60&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;* &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modules/global.js&amp;lt;/tt&amp;gt; - for basic functionality such as module and resource loading&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;61&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;* &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modules/helma/jack.js&amp;lt;/tt&amp;gt; - for helper functions used by the jack servlet&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;61&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;Then&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;For example&lt;/span&gt;, &lt;span class=&#39;diffremoved&#39;&gt;create a directory called &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;war/WEB-INF/myapp&amp;lt;/tt&amp;gt;, and &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;assuming you have the following simple Jack application &lt;/span&gt;in &lt;span class=&#39;diffremoved&#39;&gt;that directory a file called &lt;/span&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;main&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;app/main&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;js&amp;lt;/tt&amp;gt; with the following content:&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;js&amp;lt;/tt&amp;gt;: &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;64&lt;/td&gt;&lt;td&gt;&amp;nbsp; &amp;nbsp; return [200, {&amp;quot;Content-Type&amp;quot;: &amp;quot;text/plain&amp;quot;}, &lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;[&lt;/span&gt;&amp;quot;Hello World!&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;];&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;]];&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;67&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;Finally&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;You would then set the &amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;modulePath&amp;lt;/tt&amp;gt; servlet init-parameter in web.xml to &amp;lt;code&amp;gt;app&amp;lt;/code&amp;gt;&lt;/span&gt;, &lt;span class=&#39;diffremoved&#39;&gt;edit &lt;/span&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&lt;span class=&#39;diffremoved&#39;&gt;&amp;gt;web.xml&amp;lt;/tt&amp;gt; file in war/WEB-INF &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;gt;moduleName&amp;lt;/tt&amp;gt; &lt;/span&gt;to &lt;span class=&#39;diffremoved&#39;&gt;look *like this|http://dev.helma.org/static/files/3318/web-jack.xml*&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;&lt;/span&gt;, &lt;span class=&#39;diffremoved&#39;&gt;or just download &lt;/span&gt;and &lt;span class=&#39;diffremoved&#39;&gt;overwrite the file&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;functionName&amp;lt;/tt&amp;gt; to &amp;lt;code&amp;gt;handler&amp;lt;/code&amp;gt;&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;69&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;Save all your changes and click on &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;After starting &lt;/span&gt;the &lt;span class=&#39;diffremoved&#39;&gt;green Run button in Eclipse to start the &lt;/span&gt;development &lt;span class=&#39;diffremoved&#39;&gt;server. You &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;server you &lt;/span&gt;should &lt;span class=&#39;diffremoved&#39;&gt;now see &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;be able to access &lt;/span&gt;your &lt;span class=&#39;diffremoved&#39;&gt;minimal &lt;/span&gt;Jack app &lt;span class=&#39;diffremoved&#39;&gt;on &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;at &lt;/span&gt;http://localhost:8080/. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;71&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;If you don&#39;t want or need Helma NG, another option for running Jack on App Engine is using the JackServlet Tom Robinson&#39;s original *Jack library|http://jackjs.org/*. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;72&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;73&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffremoved&#39;&gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; Jack support in Helma NG is very new, and thus quite incomplete. Feel welcome to close any gaping holes!&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Tue, 19 May 2009 14:45:54 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 14</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=14</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;1&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&amp;lt;b&amp;gt;NOTE: this guide is out of date already. The servlet name has changed to org.helma.jack.JackServlet, and the servlet parameters to moduleName, functionName, and helmaHome, respectively. I&#39;ll update this page as soon as the dust has settled. Sorry for the inconvenience and thanks for checking out Helma NG!&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;2&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Wed, 22 Apr 2009 15:24:27 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 13</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=13</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;74&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;If you don&#39;t want or need Helma NG, another option for running Jack on App Engine is using the JackServlet Tom Robinson&#39;s original *Jack library|http://jackjs.org/*. &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;75&lt;/td&gt;&lt;td&gt;&lt;span class=&#39;diffadded&#39;&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Fri, 10 Apr 2009 10:40:56 +0000</pubDate>
<author>hannes</author>
</item>
<item>
<title>Version 12</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=12</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;19&lt;/td&gt;&lt;td&gt;&amp;lt;tt style=&amp;quot;font-weight:bold;color:#d33;&amp;quot;&amp;gt;git clone &lt;span class=&#39;diffremoved&#39;&gt;git@github&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;git://github&lt;/span&gt;.&lt;span class=&#39;diffremoved&#39;&gt;com:hns/helma-ng&lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;com/hns/helma-ng&lt;/span&gt;.git&amp;lt;/tt&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Thu, 09 Apr 2009 14:43:42 +0000</pubDate>
<author>zumbrunn</author>
</item>
<item>
<title>Version 11</title>
<link>http://helma.org/wiki/Helma+NG/Running+Rhino+and+Helma+NG+on+Google+App+Engine/history.diff?v=11</link>
<description>&lt;div class=&#39;diffbody&#39;&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=&quot;width:2em; color:#999;&quot;&gt;21&lt;/td&gt;&lt;td&gt;You need *Apache Ant|http://ant.apache.org/* to build Helma NG. Change to the helma-ng directory you just checked &lt;span class=&#39;diffremoved&#39;&gt;ou tand &lt;/span&gt;&lt;span class=&#39;diffadded&#39;&gt;out and &lt;/span&gt;run ant it with the &amp;quot;jar&amp;quot; target:&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</description>
<pubDate>Thu, 09 Apr 2009 13:22:58 +0000</pubDate>
<author>hannes</author>
</item>
</channel>
</rss>

