<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Something I've done to address this sort of thing is to call the
function from a different one which you write yourself, which does the
registerBean() so that the user doesn't have to. E.g. in Java have a
template like:<br>
<pre>import theFunctions # pretend all functions are defined in the same file
result = theFunctions.%s()
bsf.registerBean("result", result)
</pre>
then in Java if you have a method that takes a function name you would
like to run, you just have to do something like [untested code]:<br>
<pre>Object execJythonFunction(String funcName)
{
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.printf(theTemplate, funcName);
String actualCode = sw.toString();
bsfMgr.exec(..., actualCode);
Object result = bsfMgr.lookupBean("result");
return result;
}
</pre>
And now, the user's function doesn't need to do any registerBean
stuff. All it needs to do is compute some value in the function and
return it, and the template code does the rest. Does that make sense?<br>
<br>
Andy<br>
<br>
Neil Benn wrote:
<blockquote cite="mid001701c71a2f$341d9ed0$0300a8c0@..." type="cite">
<meta http-equiv="Content-Type" content="text/html; ">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 10">
<meta name="Originator" content="Microsoft Word 10">
<link rel="File-List" href="cid:filelist.xml@...">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:DocumentKind>DocumentEmail</w:DocumentKind>
<w:EnvelopeVis/>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:blue;
text-decoration:underline;
text-underline:single;}
p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig
{mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
span.apple-style-span
{mso-style-name:apple-style-span;}
span.spelle
{mso-style-name:spelle;}
span.grame
{mso-style-name:grame;}
span.EmailStyle21
{mso-style-type:personal-reply;
mso-style-noshow:yes;
mso-ansi-font-size:10.0pt;
mso-bidi-font-size:10.0pt;
font-family:Arial;
mso-ascii-font-family:Arial;
mso-hansi-font-family:Arial;
mso-bidi-font-family:Arial;
color:navy;}
span.SpellE
{mso-style-name:"";
mso-spl-e:yes;}
span.GramE
{mso-style-name:"";
mso-gram-e:yes;}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<div class="Section1">
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">Hello,<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><span
style=""> </span>Whoops,
no I didn’t have it working – ran the wrong test (bit tired that
day).<span style=""> </span>The issue is that I can’t
use <span class="SpellE"><span class="GramE">objInterp.exec</span></span><span
class="GramE">(</span><span class="SpellE">strScript</span>) as exec
doesn’t return
an object – it just returns void.<span style="">
</span>The current way I have to do register a return value, tell the
user to
set the result to that value, get it out and then deregister that value
inside
my script.<span style=""> </span>That works but it is
very different for the user as they have to do thing differently when
coding <span class="SpellE">Jython</span> extensions to the system
than a ruby extension (haven’t
tried groovy yet).<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><span
style=""> </span>From
what I can see – I’m stuck here, can anyone point me to a potential
solution (I’m fairly experienced in <span class="SpellE">CPython</span>
as
I use it in my day job and code Java in the evening – contrary to most
people ;) )?<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><span
style=""> </span>Thanks,
in advance for your help.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">Cheers,<o:p></o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;">Neil<o:p></o:p></span></font></p>
<div>
<p class="MsoAutoSig"><font color="navy" face="Times New Roman"
size="3"><span style="font-size: 12pt; color: navy;" lang="EN-GB">---<o:p></o:p></span></font></p>
<p class="MsoAutoSig"><font color="navy" face="Times New Roman"
size="3"><span style="font-size: 12pt; color: navy;" lang="EN-GB">Neil
Benn<o:p></o:p></span></font></p>
<p class="MsoAutoSig"><font color="navy" face="Times New Roman"
size="3"><span style="font-size: 12pt; color: navy;" lang="EN-GB">CEO
Ziath Ltd<o:p></o:p></span></font></p>
<p class="MsoAutoSig"><font color="navy" face="Times New Roman"
size="3"><span style="font-size: 12pt; color: navy;" lang="EN-GB"><a class="moz-txt-link-freetext" href="http://www.ziath.com">http://www.ziath.com</a><o:p></o:p></span></font></p>
</div>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial; color: navy;"><o:p> </o:p></span></font></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Tahoma"
size="2"><span style="font-size: 10pt; font-family: Tahoma;">-----Original
Message-----<br>
<b><span style="font-weight: bold;">From:</span></b>
<a class="moz-txt-link-abbreviated" href="mailto:jython-users-bounces@...>
[<a class="moz-txt-link-freetext" href="mailto:jython-users-bounces@...>] <b><span
style="font-weight: bold;">On Behalf Of </span></b>Sidharth Kuruvila<br>
<b><span style="font-weight: bold;">Sent:</span></b> 04 December 2006
22:53<br>
<b><span style="font-weight: bold;">To:</span></b>
<a class="moz-txt-link-abbreviated" href="mailto:jython-users@...>
<b><span style="font-weight: bold;">Subject:</span></b> Re:
[Jython-users] Use of
eval</span></font></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">Hi Ben,<o:p></o:p></span></font></p>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">eval is
meant for
expressions. What you want to use is exec<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><span
class="apple-style-span"><font face="Arial" size="1"><span
style="font-size: 8pt; font-family: Arial;" lang="EN-GB">Object
objResult = objInterp.exec(strScript);</span></font></span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
<div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">On
05-Dec-06, at 2:48 AM,
Neil Benn wrote:<o:p></o:p></span></font></p>
</div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><br
style="">
<!--[if !supportLineBreakNewLine]--><br style="">
<!--[endif]--><o:p></o:p></span></font></p>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:SMARTTAGTYPE
namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="PersonName">Hello,<O:P></O:P></O:SMARTTAGTYPE></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span>I
am trying to evaluate a script which runs as follows (using both BSF
and <span class="spelle">JYthonInterp</span> does the same thing):<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">---<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font color="black"
face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">String
<span class="spelle">strScript</span>
= </span></span></font><font color="#2a00ff" face="Courier New"
size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: rgb(42, 0, 255);">"def
<span class="grame">test(</span>):\n"</span></span></font><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">;</span></span></font><o:p></o:p></p>
<span courier=""><O:P></O:P></span>
<p class="MsoNormal" style="margin-left: 36pt;"><span class="grame"><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">strScript</span></span></font></span><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;"> +=
</span></span></font><font color="#2a00ff" face="Courier New" size="2"><span
courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: rgb(42, 0, 255);">"\<span
class="spelle">treturn</span> 1\n"</span></span></font><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">;</span></span></font><o:p></o:p></p>
<span courier=""><O:P></O:P></span>
<p class="MsoNormal" style="margin-left: 36pt;"><span class="grame"><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">strScript</span></span></font></span><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;"> +=
</span></span></font><font color="#2a00ff" face="Courier New" size="2"><span
courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: rgb(42, 0, 255);">"test()"</span></span></font><font
color="black" face="Courier New" size="2"><span courier=""><span
style="font-size: 10pt; font-family: "Courier New"; color: black;">;<O:P></O:P></span></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font color="black"
face="Courier New" size="2"><span courier=""><O:P><span
style="font-size: 10pt; font-family: "Courier New"; color: black;"> </span></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">Object <span class="spelle">objResult</span>
= <span class="grame">objInterp.eval(</span><span class="spelle">strScript</span>);<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">---<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">However I get the following <span class="spelle">traceback</span>
(this is when run from <span class="spelle">JythonInterp</span>),
I’ve snipped the bottom bit off because it is in the unit test code<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="spelle">Traceback</span>
(innermost last):<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span>(<span class="grame">no</span>
code
object) at line 0<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><span class="spelle"><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;" lang="EN-GB">SyntaxError</span></font></span><font
face="Arial" size="2"><span
style="font-size: 10pt; font-family: Arial;" lang="EN-GB">: ('invalid
syntax', ('<string>', 1, 1, 'def <span class="grame">test(</span>):'))<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.parser.fixParseError</span>(<span
class="spelle">parser.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.parser.parse</span>(<span
class="spelle">parser.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.Py.compile_flags</span>(<span
class="spelle">Py.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.Py.compile_flags</span>(<span
class="spelle">Py.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.__builtin__.eval</span>(__<span
class="spelle">builtin__.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.core.__builtin__.eval</span>(__<span
class="spelle">builtin__.java</span>)<span style="">
</span><O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
<span class="spelle">org.python.util.PythonInterpreter.eval</span>(<span
class="spelle">PythonInterpreter.java</span>)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
uk.co.ziath.datapaq.server.scripting.JythonScriptProcessor.evaluateScript(JythonScriptProcessor.java:76)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span><span class="grame">at</span>
uk.co.ziath.datapaq.server.scripting.test.JythonScriptProcessorTest.testMethodJythonScript(JythonScriptProcessorTest.java:75)<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><<span class="grame">snip</span>><O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">---<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span>When
I attempt to run a simple script such as 3* 4 and evaluate it, I get
back 12 as
I would expect.<span style=""> </span>However it seems
that any multi-line script fails on me.<span style="">
</span>Is it true that I cannot use a multi-line script in an
evaluate
statement (I know I can do it in an execute statement)?<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><span style=""> </span>Thanks
for your help.<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">Cheers,<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB">Neil<O:P></O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font face="Arial"
size="2"><span style="font-size: 10pt; font-family: Arial;"
lang="EN-GB"><O:P> </O:P></span></font><o:p></o:p></p>
<p class="MsoAutoSig" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"
lang="EN-GB">---<O:P></O:P></span><o:p></o:p></font></p>
<p class="MsoAutoSig" style="margin-left: 36pt;"><ST1:PERSONNAME><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"
lang="EN-GB">Neil Benn</span><o:p></o:p></font></ST1:PERSONNAME></p>
<O:P></O:P>
<p class="MsoAutoSig" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"
lang="EN-GB">CEO Ziath Ltd<O:P></O:P></span><o:p></o:p></font></p>
<p class="MsoAutoSig" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"
lang="EN-GB"><a href="http://www.ziath.com">http://www.ziath.com</a><O:P></O:P></span><o:p></o:p></font></p>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"
lang="EN-GB"><O:P> </O:P></span><o:p></o:p></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">-------------------------------------------------------------------------<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">Take
Surveys. Earn Cash.
Influence the Future of IT<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">Join
SourceForge.net's
Techsay panel and you'll get the chance to share your<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">opinions
on IT &
business topics through brief surveys - and earn cash<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><a
href="http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________">http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV_______________________________________________</a><o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;">Jython-users
mailing list<o:p></o:p></span></font></p>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><a
href="mailto:Jython-users@...>
</div>
<div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><a
href="https://lists.sourceforge.net/lists/listinfo/jython-users">https://lists.sourceforge.net/lists/listinfo/jython-users</a><o:p></o:p></span></font></p>
</div>
</div>
<p class="MsoNormal" style="margin-left: 36pt;"><font
face="Times New Roman" size="3"><span style="font-size: 12pt;"><o:p> </o:p></span></font></p>
</div>
</div>
<pre wrap="">
<hr size="4" width="90%">
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
<a class="moz-txt-link-freetext" href="http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV">http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV</a></pre>
<pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Jython-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Jython-users@...>
<a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/jython-users">https://lists.sourceforge.net/lists/listinfo/jython-users</a>
</pre>
</blockquote>
<br>
</body>
</html>
|