<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 8 de noviembre de 2016, 21:23, Francisco Puga <span dir="ltr">&lt;<a href="mailto:fpuga@icarto.es" target="_blank">fpuga@icarto.es</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin-top:0px;margin-bottom:0px"><div dir="ltr">Hola,<div><br></div><div>Me preguntaba si es posible llamar desde una extensión escrita en Java a un script en python y recuperar el valor devuelto</div><div><br></div><div>Por ejemplo tengo un script tipo:</div><div><br></div><div>def points_to_polygon(point_list):</div><div>    polygon = do_things_with_the_points(<wbr>point_list)</div><div>    return polygon</div><div><br></div><div>y en java algo del tipo:</div><div><br></div><div>List&lt;IGeometry&gt; pointList = null;</div><div>IGeometry polygon = Script.points_to_polygon(<wbr>pointList)</div><div><br></div></div></blockquote><div>Hola Francisco,<br>asi sin pensar mucho.<br><br>ScriptingManager manager = ScriptingLocator.getManager();<br>ScriptingScript script = manager.getScript(script_file);<br>Object x = script.run();<br><br>Hecha un vistazo a:<br><br><a href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/scripting/ScriptingScript.html">http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/scripting/ScriptingScript.html</a><br><br>Y veras que tienes un run sin parametros, otro con, y un invokeFunction que te permiten<br>invocar al main (en caso del run) o a las funciones que quieras del script y recoger los<br>valores de vuelta.<br><br>Tambien tienes la posibilidad de devolver un objeto cuya clase esta definida en python<br>y usar luego invokeMethod para invocar a metodos de este.<br><br>Y puedes hacer que el script devuelba un objeto que implemente un interface de java (o <br>una clase java directamente) y entonces seria transparente acceder a este una vez <br>recuperado con run/invokeMethod.<br><br>Tambien puedes incluir tus scripts en el plugin de java, si que estas haciendo un<br>plugin mixto con codigo java y scripts y asi va todo en un solo paquete.<br>Si miras en la instalacion de gvSIG el plugin de &quot;org.gvsig.app.mainplugin&quot;, veras que <br>tienes una carpete &quot;scripting/scripts&quot;. Si creas esa carpeta en tu plugin aparecera <br>en la pestaña de sistema en el editor de scripts y se incluira automaticamente <br>en la ruta de busquedas de scripts.<br><br>Ups!<br>se me olvidaba, tendras que añadir la dependencia en el config.xml de tu plugin con<br>el plugin de scripting, añadir al pom de tu proyecto dependencias con <br><br>        &lt;dependency&gt;<br>            &lt;groupId&gt;org.gvsig&lt;/groupId&gt;<br>            &lt;artifactId&gt;org.gvsig.scripting.lib.api&lt;/artifactId&gt;<br>            &lt;scope&gt;compile&lt;/scope&gt;<br>        &lt;/dependency&gt;<br><br></div><div>y en el pom padre de tu proyecto en el dependencies management algo como:<br><br>            &lt;dependency&gt;<br>                &lt;groupId&gt;org.gvsig&lt;/groupId&gt;<br>                &lt;artifactId&gt;org.gvsig.scripting&lt;/artifactId&gt;<br>                &lt;version&gt;Aqui-la-version-que-toque&lt;/version&gt;<br>                &lt;type&gt;pom&lt;/type&gt;<br>                &lt;scope&gt;import&lt;/scope&gt;<br>            &lt;/dependency&gt;<br></div><div><br>La version tendras que mirarla en la instalacion de gvSIG contra la que quieras compilar, por ejemplo mirando la del jar:<br><br>  gvSIG/extensiones/org.gvsig.scripting.app.mainplugin/lib/org.gvsig.scripting.lib.api-2.3.31.jar<br><br></div><div>Seria la 2.3.31<br></div><div>(la que he puesto es la del jar que tengo en este momento en mi equipo, lo mejor es que uses la que tengas en la misma version de gvsig contra la que estes compilando tu plugin)<br><br>Ya cuantas si tienes problemas.<br></div><div><br>Un saludo<br>Joaquin<br><br> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-bottom:0px"><div dir="ltr"><div></div><div>Gracias.<br clear="all"><div><br></div>-- <br><div class="gmail-m_-3599639820421720407gmail_signature"><div dir="ltr"><div>Francisco Puga</div><div>iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.</div><div><a href="http://www.icarto.es/" target="_blank">http://www.icarto.es/</a></div><div><br></div><div>c/ Rafael Alberti nº 13 – 1º D</div><div>15008 A Coruña</div><div>Galicia (Spain)</div><div><a href="tel:%2B34%20881927808" value="+34881927808" target="_blank">+34 881927808</a></div><div><br></div><div>Este correo electrónico contiene información estrictamente confidencial y es de uso exclusivo del destinatario, quedando prohibida a cualquier otra persona su revelación, copia, distribución, o el ejercicio de cualquier acción relativa a su contenido. Si ha recibido este mensaje por error, por favor conteste a su remitente mediante correo electrónico y proceda a borrarlo de su sistema.</div><div><br></div><div>Sus datos personales serán tratados de forma confidencial y no serán cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer los derecho de oposición, acceso, rectificación y cancelación de acuerdo con lo establecido en la Ley Orgánica 15/99, de 13 de diciembre, de Protección de Datos de Carácter Personal dirigiéndose a Innovación, Cooperación, Cartografía e Territorio, SL. (ICARTO) en la dirección postal a C/ Rafael Alberti, nº 13, 1ºD, 15.008 – (A Coruña).</div></div></div>
</div></div>
<br>______________________________<wbr>_________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@<wbr>listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-<wbr>bin/mailman/listinfo/gvsig_<wbr>desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>