[Modelinterpreter] Java debug
kmate at caesar.elte.hu
kmate at caesar.elte.hu
Tue Mar 17 13:46:12 CET 2015
Sziasztok!
Azt hiszem ezen a ponton kicsit az oracle is ellentmondásra futott
önmagával. Ha nem a JDK, hanem a JRE readme-jét nézem, akkor nincs
benne a kiemelt kitétel:
http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html
Ugyanabban a "Redistributable JDK™ Files" szekcióban. Én itt
veszítettem el a fonalat jogilag. Egyébként ha benne van a JDT-ben,
akkor kb. egy @SuppressWarnings árán megúszható.
Üdv,
Máté
Idézet (Gergely Dévai <deva at caesar.elte.hu>):
> Sziasztok!
>
> Megnéztem az Oracle JDK license-t redistribution szempontból:
>
> C. LICENSE TO DISTRIBUTE SOFTWARE.
> Subject to the terms and conditions of this Agreement and
> restrictions and *exceptions set forth in the README File*,
> including, but not limited to the Java Technology Restrictions and
> Limitations on Redistribution of these Supplemental Terms, Oracle
> grants you a non-exclusive, non-transferable, limited license
> without fees to reproduce and distribute the Software, provided that
> (i) *you distribute the Software complete and unmodified* and only
> bundled as part of, and for the sole purpose of running, your
> Programs [...]
>
> JDK 8 Readme:
>
> Redistributable JDK files
> The limited set of files and directories from the JDK listed below
> may be included in vendor redistributions of the Java Runtime
> Environment (JRE). They *cannot be redistributed separately*, and
> must accompany a JRE distribution.
> [...]
> |lib/tools.jar
> ||
> |Nem tudom, a JDT-s pluginnál hogyan oldották meg, de a fentiek
> alapján a tools.jar csak egy teljes JDK részeként vagy egy teljes
> JRE-hez adott kiegészítésként csomagolható bele a szoftverünkbe.
>
> Marad az, hogy a JDT plugin internal részéből használjuk a JDI-t és
> elnyomjuk a warningot, vagy kipróbáljuk a JDT API-t.
>
> Üdv,
> Gergő
>
>
> On 2015-03-17 09:46, kmate at caesar.elte.hu wrote:
>> Sziasztok!
>>
>> A Java debugger API-kat összefogó JPDA specifikációt tudtommal
>> minden szóba jövő virtuális gép támogatja - nem tudok más ilyen
>> jellegű, kvázi konkurens megoldásról. Valósznűleg a JDT nem
>> véletlen másolta be a kódot, futtatáshoz ugyanis csak JRE kell az
>> Eclipse-nek, fordtója meg saját van, igy csak ez hiányzott nekik.
>> Lehet, hogy mi is igy járhatunk el, a specifikáció JDI része az
>> utóbbi években nem sokat változott tudtommal. A JDT-re még
>> kockázatosabbnak tűnik épiteni, magasabb szintű API, komplikáltabb
>> lehet az ő feature-jeiket kerülgetni. Ha licensz gondok lennének,
>> akkor meg ők sem tehették volna be. De nem tudom most mi a legjobb
>> megoldás, én a JDT API-t nem ismerem.
>>
>> Üdv,
>> Máté
>>
>> Idézet (Dévai Gergely <deva at elte.hu>):
>>
>>> Sziasztok!
>>>
>>> Elso"sorban a Java/Moka debug kapcsán érintettek figyelmébe:
>>>
>>> A Moka execution engine-t a korábban megbeszélteknek megfelelo"en
>>> úgy szeretnénk megvalósítani, hogy a Java debugger szolgáltatásait
>>> használjuk. Ehhez szükség van egy olyan API-ra, ami képes egy
>>> VM-et indítani, breakpoint-okat manipulálni és debug eseményeket
>>> lekérdezni.
>>>
>>> Máté tavalyi compiler-moka-jdi-javaUML2
>>> <https://plc.inf.elte.hu/modelinterpreter/trac/browser/experiments/compiler-moka-jdi-javaUML2> példája erre a célra a com.sun.jdi.VirtualMachineosztályt
>>> használja.
>>> Ezzel kapcsolatban egyrészt felmerül, hogy nem kötjük-e magunkat
>>> hozzá ezáltal egy konkrét JVM megvalósításhoz?
>>> Másrészt meg kell oldani a kapcsolódó függo"ség kezelését: A case
>>> study a lib könyvtárában tartalmazza az Oracle-to"l letöltheto"
>>> JDK-ból a tools.jar-t, ami tartalmazza a szükséges osztályokat.
>>> Kérdés, hogy egy eclipse projektben szabad-e a JDK egy részét
>>> binárisan terjeszteni? A weben írnak olyan véleményeket, hogy a
>>> JDK csak egyben terjesztheto". Ha nem csomagoljuk be ezt a jar-t,
>>> akkor meg el kell várnunk, hogy megfelelo" JDK legyen a
>>> felhasználóink gépén, és dinamikusan kell feloldaunk a
>>> függo"ségünket.
>>> Ugyanakkor valamelyik org.eclipse.jdt.debug plugin-ban is
>>> megvannak a com.sun.jdi.... csomagok, ám ez nem része a plugin
>>> publikus API-jának, így ha ezzel oldjuk fel a függo"séget, akkor
>>> warning a jutalom. A veszély nyilván az, hogy ezt a részt bármikor
>>> átírhatják nem kompatibilis módon.
>>>
>>> Azon tipródtam ma sokat, hogy lehetne-e használni a com.sun.jdi.*
>>> helyett az org.eclipse.jdt.* csomagok publikus API-ját? Ezek a
>>> csomagok standard eclipse pluginokban vannak, és JVM-függetlenül
>>> próbálnak Java szolgáltatásokat (többek között futtatás,
>>> debugolás) nyújtani. A breakpoint-ok elhelyezésénél még stratum
>>> beállítására leheto"séget adó függvényt is láttam. Az API
>>> használata nem triviális, mert többnyire egy halom interfészt
>>> nyújt, és elvárja, hogy a JVM implementációk extension pointokon
>>> keresztül adják az implementációt. Úgy tu"nik, hogy a
>>> JavaRuntime.getVMInstallTypes(), majd a
>>> IVMInstallType.createVMInstall(String id) függvényeken át lehet
>>> VM-et kapni. Boldi, a saját típusú Launch konfigrációk nem valami
>>> org.eclipse.jdt.launching alá tartozó típust adnak véletlenül?
>>>
>>> Vélemények, segítség jöhet!
>>>
>>> Üdv,
>>> Gergo"
>>>
>>>
>>
>>
>>
>> _______________________________________________
>> Modelinterpreter mailing list
>> Modelinterpreter at plc.inf.elte.hu
>> https://plc.inf.elte.hu/mailman/listinfo/modelinterpreter
>
>
More information about the Modelinterpreter
mailing list