<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:st1="urn:schemas-microsoft-com:office:smarttags"><head><META content="text/html; charset=utf-8" http-equiv="Content-Type">



<STYLE><!-- /* Style Definitions */ p.acaa1d18-a05c-4928-9a9b-4d9a12b04ea7, li.acaa1d18-a05c-4928-9a9b-4d9a12b04ea7, div.acaa1d18-a05c-4928-9a9b-4d9a12b04ea7, table.acaa1d18-a05c-4928-9a9b-4d9a12b04ea7Table {margin:0cm; margin-bottom:.0001pt;}div.Section1 {page:Section1;}--></STYLE>

<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META content="MSHTML 8.00.6001.19046" name=GENERATOR></head><BODY>
<P CLASS="acaa1d18-a05c-4928-9a9b-4d9a12b04ea7"><FONT FACE="Arial" SIZE="2">
<DIV align=left dir=ltr><FONT color=#0000ff face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE style="BORDER-LEFT: #0000ff 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
  <DIV class=gmail_quote>2011/6/12 Charles Lepple <SPAN dir=ltr><<A href="mailto:clepple@gmail.com">clepple@gmail.com</A>></SPAN><BR>
  <BLOCKQUOTE class=gmail_quote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex">
    <DIV style="WORD-WRAP: break-word">
    <DIV>
    <DIV class=im>
    <DIV>On Jun 12, 2011, at 12:48 PM, Arnaud Quette wrote:</DIV><BR>
    <BLOCKQUOTE type="cite"><BR>
      <DIV class=gmail_quote>2011/6/12 Charles Lepple <SPAN dir=ltr><<A href="mailto:clepple@gmail.com" target=_blank>clepple@gmail.com</A>></SPAN><BR>
      <BLOCKQUOTE class=gmail_quote style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex">On Jun 11, 2011, at 3:53 PM, Arnaud Quette 
        wrote:<BR><BR>
        <BLOCKQUOTE class=gmail_quote style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex"> * jNUT Java binding<BR>   the exact 
          content of this task is still to be defined, but this should include 
          native client access and NSS support,<BR>   the following 
          will be considered with a lower priority:<BR>     - 
          device discovery (JNI using libnut-scanner),<BR>     - 
          configuration (using Augeas)<BR>     - mDNS 
          discovery<BR>   I'm currently checking resources staffing 
          with Eaton<BR></BLOCKQUOTE><BR>I'm not a huge fan of Java to begin 
      with,</BLOCKQUOTE>
      <DIV><BR>so do I.<BR>but having played with Android a year and a half ago, 
      and having some requests more recently made me think we are still lacking 
      a Java binding...<BR> </DIV>
      <BLOCKQUOTE class=gmail_quote style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex">but if I had to interface a Java tool with NUT, I 
        wouldn't want the hassle of native bindings (i.e. JNI) unless it was 
        absolutely necessary. Most of the NUT protocol should be easily 
        implementable in pure Java (including SSL).<BR></BLOCKQUOTE>
      <DIV><BR>indeed, native client access (ie implement the ascii NUT protocol 
      in Java) is easy enough to be implemented directly (as we have in Python, 
      Nagios plugin, ...)<BR></DIV></DIV></BLOCKQUOTE>
    <DIV><BR></DIV></DIV>
    <DIV>Ah, I think we're saying the same thing. IIRC "native" in terms of Java 
    is the underlying processor/OS, and I think you are describing a "pure Java" 
    implementation.</DIV></DIV></DIV></BLOCKQUOTE></DIV>
  <DIV><BR>indeed, so let's go for native ;-)<BR clear=all><BR>cheers,<BR>Arno<BR>
  <DIV align=left dir=ltr><FONT color=#0000ff face=Arial size=2></FONT> </DIV></DIV></BLOCKQUOTE>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>Hi all,</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>In general:</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>As the current client API is a little too low level to be interesting 
to be wrapped to Java (and others), is there more interesting to develop a 
higher level API in C (like in Python) and to wrap it many languages (java but 
not only: python, perl and many others can be targeted) with a tool like 
SWIG ( <A href="http://swig.org/"><FONT face="Times New Roman" size=3>http://swig.org/</FONT></A> ).</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>Two linked benefits can be gained from such approach 
:</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>1- A common API can be distributed over all languages and rely on an 
unique implementation, which make them more visible and clear than many rewrites 
in each languages.</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>2- When you augment the API (like adding a method), all languages 
benefit of it with least effort (just running again the generation 
tool).</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>In java specific wrapper:</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>In term of distribution : platforms which provide package 
management can easily resolve dependancies between wrapped client pack and 
"native" one; on other plateforms (like windows) project can build and 
provide a "big" stand-alone jar with "native" client build for all 
plateforms (Windows x86/x64, Linux on many plateforms and so on...) or dedicated 
"light" jars for many plateforms (windows/linux, x86/x64/arm ...). This can 
probably be provided automatically with smart commands on 
buildbot.</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>In my developer point of view:</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>I think it is more interesting for a developper to implement a 
high-level API than a simple communication protocol rewrite.</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>I think also it is more valuable at long term for the nut 
project.</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>My two cents.</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>BR,</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2>Emilien</FONT></SPAN></DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV>
<DIV align=left><SPAN class=030391809-14062011><FONT color=#0000ff face=Arial size=2></FONT></SPAN> </DIV> </FONT></P>
<P CLASS="acaa1d18-a05c-4928-9a9b-4d9a12b04ea7"><SPAN STYLE="FONT-SIZE: 11pt; COLOR: red; FONT-FAMILY: 'Calibri','sans-serif'"><SPAN LANG="EN-US" STYLE="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"><FONT COLOR="#0000ff" SIZE="2"><SPAN LANG="EN-US" STYLE="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><SPAN STYLE="COLOR: #1f497d"><SPAN STYLE="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Arial"><FONT COLOR="#999999">
<HR>
<FONT SIZE="1"></FONT></FONT></SPAN><SPAN STYLE="COLOR: blue"></SPAN> 
<P></P></SPAN></SPAN></FONT></SPAN></SPAN>
<P></P></P></BODY></HTML>