downgrade aplikace z 6.0 na 5.0

Roman Pichlík roman.pichlik na gmail.com
Středa Listopad 24 21:11:08 CET 2010


Bez toho JDK se asi neobejdes, dokonce ani to ti nemusi stacit, pokud
se neco vola pres reflection. To poznas az v runtime kdyz ti vylitne
NoSuchMethodError ;-). Taky se mi onehda stalo, ze pri prechodu z Javy
1.5 na Javu 1.6 na WebSphere prestal fungovat kod kvuli tomu, ze
nejake cune spolehalo na to, ze v runtime Java pouziva tridu X a ona
se v novejsi verzi pouzila trida Y.  Jenom ti tim chci rici: pokud
vezmes kod, ktery chodil na Jave 6, prekompilujes ho pro Javu 5,  tak
nepocitej s tim, ze musi automaticky chodi i na Jave 5. Jsou to sice
okrajove pripady, ale jsou. Jedina ucinna ochrana je poradna baterie
unit a integracnich testu, ktere proti tomu pustis.

2010/11/24 Tomáš Záluský <zalusky na centrum.cz>:
>
> Dobrý den,
>
> máme webovou aplikaci napsanou v Javě 6.0 a musíme ji nasadit na aplikační server, kde je pouze 5.0. Ukázalo se, že aplikace nebude běžet nikde pod 6.0, takže jde o to dostat zdrojáky do stavu, kdy bude projekt zkompilovatelný a běhuschopný pod 5.0. Po vyřešení odlišností, které vyvstaly po změně source a target na maven-compiler-pluginu, ale zůstává potřeba odchytit případy, kdy se volá nějaká metoda přidaná až od 6.0 (např. Collections.newSetFromMap).
>
> Potřebuji tedy něco jako Retrotranslator, ale pouze pro přechod 6.0 -> 5.0 a z něj pouze přepínač -verifyref. Retrotranslator v současné podobě převede class soubory na max. 1.4, což mi přijde jako kanón na vrabce. Nechce se mi zatahovat do projektu backportovaný bytekód něčeho, co můžeme mít přímo z originálního překladače 5.0 (např. enumů), byť jsou s touto knihovnou dle různých zdrojů dobré zkušenosti.
>
> Protože ostatní projekty máme v 6.0 a 5.0 už nikdo nemá, chtěl jsem se vyhnout instalaci 5.0, ale vychází mi, že to stejně nepůjde. I kdybychom chtěli použít Retrotranslator jen pro ověření referencí, stejně bude vyžadovat cestu k jarům 5.0. A navíc se na chyby á la volání Collections.newSetFromMap přijde až při Maven buildu a Eclipse bude vesele hlásit, že je projekt zkompilovatelný. Takže to vidím na instalaci 5.0 a nastavení příslušného JDK pro tento konkrétní projekt. Nebo víte o nějaké jednodušší cestě?
>
> Díky za Vaše názory
> Tomáš Záluský
>
>
> ================================================
> ...with Ultimate flying is so easy...
> http://www.frisbee.cz    http://www.peaceegg.net
> ================================================
>



-- 
S pozdravem Roman "Dagi" Pichlik

/* http://dagblog.cz/ Blog pro kodery */


Další informace o konferenci Konference