[Javalist] Classloader anonymous gond

Gábor Garami gabor.garami at hron.me
2013. Ápr. 19., P, 02:18:37 CEST


Ertem, koszi, ez hasznos volt.

Garami Gábor
E-mail: gabor.garami at hron.me
Tel: +36 20 235 9621
MSN: hrgy at vipmail.hu
Skype: hron84


2013/4/19 <istvan.ketler at lhsystems.com>

>  Ugye mostanában foglalkoztam hasonló problémával, és a következőre
> jutottam.****
>
> ** **
>
> Amitől függ egy plugin, az legyen már betöltve és elindítva mire a tőle
> függő sorra kerül.****
>
> ** **
>
> Az egymástól független pluginek betöltési sorrendje teljesen indifferens.
> Ezek a pluginok egymásról nem tudnak semmit, egymás számára nem léteznek.
> Akkor miért nem mindegy, hogy milyen sorrendben indulnak? (Ha van egy
> harmadik plugin amelyik mindkettőtől függ, akkor az meg ugye csak akkor
> indulhat, ha már a másik kettő elindult, így annak megint mindegy hogy mi
> volt a sorrend).****
>
> ** **
>
> Namost OSGi esetén ez nem különbözik, szóval teljesen egyetértek, ne akard
> befolyásolni, majd a konténer megoldja és a függőségek adta sorrendben jól
> betölt mindent amit kell.****
>
> ** **
>
> Azt nem tudom, hogy az OSGi tud-e valamit kezdeni a körkörös
> hivatkozásokkal. Némi töprengés után arra jutottam, hogy nem kívánok ilyen
> alkalmazásokat támogatni, és ha ilyen lenne, akkor nem indul a
> keretrendszerem, dob egy kivételt.****
>
> ** **
>
> Maga a betöltési algoritmus egyébként egyszerű (így utólag), de azért
> kellett hozzá egy kis idő amíg végiggondoltam. Hátha valakit érdekel,
> leírom. Szóval nekem így műxik:****
>
> ** **
>
> Elindulok a véletlenszerűen megtalált pluginek listáján, és
> betöltöm/elindítom azokat, akik nem függnek más pluginektől, vagy csak már
> elindított pluginektől függnek. Ezt ismételgetem addig, amíg ki nem ürül az
> el nem indított pluginek listája, vagy amíg egy adott iterációban
> egyáltalán nem tudok egyet sem betölteni. Ha egyet sem tudtam betölteni,
> akkor az ugye azt jelenti, hogy körkörös függőség van közöttük (vagy
> missing plugin van, amit persze szintén észreveszek).****
>
> ** **
>
> Üdv,****
>
> Iván****
>
> ______________________________****
>
> *István Ketler*
>
> Senior Consultant****
>
> ** **
>
> Lufthansa Systems Hungária Kft.****
>
> GUI Service Center****
>
> Mobile Solutions Team, Development Center Danube****
>
> Neumann János u. 1/e****
>
> 1117 Budapest****
>
> Hungary****
>
> Phone: +36 1 887-2815****
>
> Fax: +36 1 887-0577****
>
> Mobile: +36 30 600-4936****
>
> E-mail: istvan.ketler at LHsystems.com****
>
> *www.LHsystems.com <http://www.lhsystems.com/>*
>
> ** **
>
> *From:* javalist-bounces at lists.javaforum.hu [mailto:
> javalist-bounces at lists.javaforum.hu] *On Behalf Of *Gábor Lipták
> *Sent:* Thursday, April 18, 2013 11:27 AM
> *To:* Java lista
>
> *Subject:* Re: [Javalist] Classloader anonymous gond****
>
>  ** **
>
> Sziasztok!****
>
> ** **
>
> A runlevel megadása kézzel kerülendő. Normális esetben az ember a
> függőségek adta természetes sorrendre kellene hogy támaszkodjon.****
>
> ** **
>
> Gábor****
>
> ** **
>
> 2013. április 18. 10:55 István Székely írta, <istvan.szekely at i-logic.hu>:*
> ***
>
> Hali,
>
> Én csak az Equinoxot ismerem, Felix-szel még nem volt dolgom.
>
> 1. Van rá hatásod, meg lehet adni run level-eket. Amiknek kisebb, azt
> hamarabb indítja. Azon belül nem vagyok biztos a sorrendben, de szerintem
> abban a sorrendben indulnak, ahogy a konfigban felsorolod, és szerintem az
> indulás nem párhuzamos. Valami rémlik, hogy a bundle activator futása ne
> tartson sokáig, mert addig blokkolja a többi szálat.
>
> 2. Úgy gondolom, elvben igen, de az Equinox a plugins könyvtárban keres
> (és gondolom, a dropins-ben, pont, mint ahogy az Eclipse is teszi).
>
> Üdv,
> Stivi
>
>
> On 2013-04-18 02:14, Gábor Garami wrote:****
>
>  Koszonom a doksikat mindkettotoknek, kezd oszladozni a homaly. Amit nem
> ertek:  ****
>
> ** **
>
> 1) a pluginek akkor ezek szerint a fuggosegek fuggvenyeben kialakulo
> sorrendben, ezen belul pedig parhuzamosan indulnak ****
>
> 2) a tutorialok egy kicsit kihagyjak az "install" reszt, Elvben a bundle-t
> alkoto jar a classpathen akarhol lehet? Vagy van valami framework-fuggo
> specko mappa?****
>
> ** **
>
> Egyebkent tetszos a dolog, az LDAP alapu query-k mindig is tetszettek, bar
> a logikajukat szokni kell.****
>
>
> ****
>
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84****
>
> ** **
>
> 2013/4/17 Zsombor <gzsombor at gmail.com>****
>
> Pontosan :) Elég pár interfacet használnod, és becsomagolnod a kész cuccot
> egy jar-ba, megfelelő Manifest fileal felszerelve, és máris OSGI
> fejlesztőnek mondhatod magadat :)****
>
> Zs****
>
> ** **
>
> 2013/4/17 Bence Oláh <bence.olah at gmail.com>****
>
> Hali!****
>
> Az Eclipse konkrétan csak kényelmi funkciót nyújt az OSGI fejlesztéshez,
> ráadásul van más OSGI implementáció is, mint az Equinox ami Eclipse alatt
> fut, pl az Apache Felix. A neten nagyon sok info van a témában, pl az
> alkalmazás szerverek egy része osgi compliant.****
>
>
>
> http://stackoverflow.com/questions/16140/whats-the-best-way-to-get-started-with-osgi
> http://www.sonatype.com/books/mcookbook/reference/osgi.html****
>
>
> Üdv
> Bence****
>
> ** **
>
> 2013/4/17 Gábor Garami <gabor.garami at hron.me>****
>
> Khmmm... ennel picit tobbre szamitottam... :-) ****
>
> ** **
>
> Ugy ertem, hogy van vele tapasztalat is? Hogy mukodik? Maven-nel lehet
> ilyet?****
>
>
> ****
>
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84****
>
> ** **
>
> 2013/4/17 Zsombor <gzsombor at gmail.com>****
>
> Persze****
>
> ** **
>
> 2013/4/17 Gábor Garami <gabor.garami at hron.me>****
>
> Van lehetoseg OSGi fejlesztesre Eclipse-tol eltero IDE alatt is, pl
> IntelliJ?****
>
>
> ****
>
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84****
>
> ** **
>
> 2013/4/17 István Székely <istvan.szekely at i-logic.hu>****
>
> Szia,
>
> Pontosan 0 db XML-re van szükséged (legalábbis Equinox alatt biztosan).
>
> A konténer pedig ennyi:
> 104K    org.eclipse.equinox.common_3.6.0.v20110523.jar
> 32K    org.eclipse.equinox.event_1.2.100.v20110502.jar
> 48K    org.eclipse.equinox.launcher_1.2.0.v20110502.jar
> 212K    org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
> 1,4M    org.eclipse.osgi_3.7.0.v20110613.jar
> 72K    org.eclipse.osgi.services_3.3.0.v20110513.jar
> 24K    org.eclipse.osgi.util_3.2.200.v20110110.jar
>
> Amúgy amit Iván írt, az elég meggyőző, úgyhogy befejezem. :)
>
> Üdv,
> Stivi ****
>
>
>
>
> On 2013-04-17 14:33, Gábor Garami wrote:****
>
>  Nekem se jott be az OSGi, nekem meg kevesebb cuccom van, mint neked,
> plusz, en nem annyira kedvelem az XML-ezest. ****
>
> ** **
>
> A JSPF ( https://code.google.com/p/jspf/ ) egy egesz jo kis cucc, par
> perc alatt tanulhato, annotacio alapu tortenet. Just works.****
>
> ** **
>
> Egy pelda (ehm... ) app:
> http://git.hron.me/?p=hron84/jtranslate.git;a=tree****
>
> ** **
>
> Foleg a jtranslate-app es a jtranslate-google modulok fognak teged
> erdekelni. Az API-bol csak a me.hron.jtranslate.core.TranslationServiceFactory
> erdekes, ez az, ami felizgatja a plugin frameworkot.****
>
>
> ****
>
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84****
>
> ** **
>
> 2013/4/17 <istvan.ketler at lhsystems.com>****
>
> Sziasztok,
>
> just for the record:
>
> Természetesen én voltam a ló, de nagy. A jarban lévő jar fájlokat
> kitömörítem egy temp katalógusba, amit úgy hozok létre ha még nem volt. Azt
> akarom, hogy megálláskor törlődjék ez a katalógus. Ezért az egész
> keretrendszer exception environment-ben van, ha nem tud elindulni, a törlés
> automatikus. Namost valamiért a törlést áttettem a finally-ba, így amikor
> az indító thread megállt, jól letörölte a temp dirt. Az egyébként üres
> volt, de a class loader ezt mégis észrevette, és becsukta magát, attól
> kezdve nem töltött semmit. Finally-ból a törlés visszakerült a hibaágba, és
> megy mint a parancsolat... De ehhez kellett egy debuggolható rt.jar, mert
> az oracle fene nagy bölcsességében törölte a debug infókat. Legalább egy
> napot megtakarított volna vele ha végigkövethettem volna már sokkal
> korábban hogy mi történik.
>
>
> Ami a kerék újra feltalálását illeti...
>
> Szeretem az OSGi-t, de ugye akkor kell egy konténer, amit nem annyira
> akarok. Az eclipse esetén meg asszem kell az equinox, az emf core, az
> application model és barátai, meg a 4.0 workbench. Utána kezdhetem írni a
> saját bigyóimat, de eddigre már van néhány tucat jar fájlom. Mivel pluginem
> van összesen talán 40, meg használok vagy 8-10 3rd party apit, így az
> eclipse rögvest megduplázná a disztribúciómat.
>
> Kliens oldali keretrendszer kell. Ha letörlök egy jar fájlt (plugint),
> akkor minden gomb és egyéb hivatkozás tűnjön el vele együtt automatikusan.
> Ha beteszek egyet, akkor jelenjenek meg a gombok, menük, satöbbi hozzá,
> szintén "maguktól". (Na jó, újraindítás azért kelljen hozzá, de semmi
> konfig fájl buzerálás.) Legyen context, és változzék a menü/toolbar
> struktúra a contexttől függően. A plugin és a libjei egyetlen jar fájlként
> legyenek deployolhatók (jarban jar). Van még néhány ilyen követelmény. Amit
> lehetett, azt készen vettem (Jide action és docking framework), de az
> application framework-jük már nem tudja mindazt amit szeretnék. Szóval
> azért körüljártam ezt a problémát, és sorra az összes opciót kikukáztam,
> maradt a saját keretrendszer. Ami amúgy 24 osztályból és 6 interfészből
> áll, és ebben a logolási szolgáltatás is benne van, meg a három saját
> exception osztályom is. Adok még hozzá 5 API-t (jide action, common,
> components, és dock, meg a log4j), ez összesen 6 jar. És igen, van
> extension is (kétféle - nyújtott szolgáltatás amire elő lehet fizetni,
> illetve opcionális szolgáltatási pontra való becsatlakozás is). A plugin
> csak azon más plugint látja amelyiktől függ. Satöbbi. Mindeközben ezzel a
> két nap szívással együtt is megáll 100 emberóra alatt a fejlesztés
> (tesztelés included).
>
> Köszi, sziasztok, jó éjt!
>
> Iván****
>
>
> ______________________________
> István Ketler
> Senior Consultant
>
> Lufthansa Systems Hungária Kft.
> GUI Service Center
> Mobile Solutions Team, Development Center Danube
> Neumann János u. 1/e
> 1117 Budapest
> Hungary
> Phone: +36 1 887-2815
> Fax: +36 1 887-0577
> Mobile: +36 30 600-4936
> E-mail: istvan.ketler at LHsystems.com
> www.LHsystems.com
>
>
> -----Original Message-----****
>
> From: javalist-bounces at lists.javaforum.hu [mailto:
> javalist-bounces at lists.javaforum.hu] On Behalf Of István Székely
> Sent: Tuesday, April 16, 2013 10:58 AM
> To: javalist at lists.javaforum.hu
> Subject: Re: [Javalist] Classloader anonymous gond****
>
> Szia,
>
> Ha már itt tartunk: nem kell neked teljes Eclipse RCP, de én a helyedben
> biztosan OSGi vonalon indultam volna el. Pont ezt az osztálybetöltősdit
> dolgozták ki nagyon szépen. Minden ilyen problémát levenne a helyedről.
>
> Nekünk van egy stand-alone OSGi alkalmazásunk, sima parancssoros program,
> nincs UI, semmi nehézsúlyú komponens. Equinox-szal szépen működik évek óta.
>
> Üdv,
> Stivi
>
> On 2013-04-15 19:43, istvan.ketler at lhsystems.com wrote:
> > A Jide action és docking framework-öt használom. Plugin framework egy
> sem jó; van túl nagy (eclipse, netbeans) és van olyan is amelyik elég béna
> (jpf), ráadásul halott a projekt már közel 10 éve. Amúgy más funkcionalitás
> is kell, ez is mellette szól.****
>
> ** **
>
> ** **
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist****
>
> ** **
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20130419/755baae4/attachment.html>


További információk a(z) Javalist levelezőlistáról