Ostře sledovaná okna

K napsání tohoto článku mě inspiroval Ondra Medek svými maily v javovské konferenci v lednu 2010, v nichž se podivoval nad tím, že Java automaticky neuklízí zavřená okna. Pokud okno nemá nastaveno DISPOSE_ON_CLOSE, je při zavření pouze schováno a nadále zabírá paměť. K jeho dealokaci dojde až při zavolání metody dispose(). V tomto článku si […]

Aspectj jednoduchý performance monitor

V poslední době jsem se začal věnovat aspect oriented programming (AOP) a aspectj. Velmi mě překvapilo jak elegantně se pomocí AOP dá řešit určité problémy a měření výkonu a času strávené voláním metod patří do této kategorie. Před tím, než budete pokračovat v čtení doporučuji začít krátkým tutoriálem: http://www.eclipse.org/aspectj/doc/next/progguide/starting-aspectj.html, kde jsou vysvětleny základní pojmy. Koho […]

Integrace Spring, DWR a jQuery

Oblíbená trojkombinace technologií v podobě aplikačního rámce Spring, DWR a jQuery nám umožňuje Javascriptem volat metody servisních tříd spravovaných Springem. To je poměrně efektivnější přístup než příprava podobných řešení přímo v duchu MVC. Ve Springu 3.0. je však nově implementována zjednodušená podpora pro Ajax v podobě mvc-ajax modulu,…

Testování webových služeb

Aplikace řadu funkcí a dat publikuje přes webové služby. Je to rozhraní naší aplikace, na které se většinou pojí aplikace třetích stran, a proto je žádoucí mít aspoň nějakou jistotu, že nám rozhraní přes webové služby funguje. Webové služby jsou generovány dynamicky pomocí Apache CXF (pozn.: s tímto přístupem se neztotožňuji) a není výjimkou,…

Verzování datového modelu a LiquiBase

Přidávání tabulek, sloupců, integritních omezení, přejmenovávání a štěpení tabulek, konfigurace vývojového, testovacího a produkčního prostředí… Je mnoho požadavků, které mají vliv na podobu datového modelu. V tomto blogu zkusím popsat běžné činnosti týkající se správy relačního datového modelu a stručně představit nástroj LiquiBase. internetové odkazy: http://tom2ee-cs.blogspot.com/2010/01/verzovani-datoveho-modelu-liquibase.html

Ukazatelová aritmetika

V tomto krátkém článku si ukážeme, že i v Javě (přesněji Sun JDK) můžeme používat ukazatelovou aritmetiku. Nehledejte v tom však něco praktického. Jde spíše o exkurzi do méně známých končin JDK. Celé kouzlo je schováno ve tříde sun.misc.Unsafe. Tato třída umožňuje např. přímý přístup do paměti, atomické operace s pamětí (Compare and Swap), kopírování […]

Generování class diagramů

Class diagramy dnes umí vygenerovat mnoho nástrojů, ale přesto jsme raději nakonec použili vlastní řešení pro generování class diagramů. Mnohdy nám přišla nedostatečná kvalita vygenerovaných diagramů, jindy zase bylo málo možností konfigurace generování a nakonec se ukázalo, že bychom rádi celý proces generování class diagramů zautomatizovali,…

Jython XVI

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Persistentní objekty a Java projekce V minulém díle jsme si ukázali, jakým způsobem se provádí připojení k databázi Caché. Dnes budeme pokračovat a budeme předpokládat, že již existují třídy, které mají v sobě zabudováno rozhraní pro persistenci jejich instancí. Takovéto třídy je možné vygenerovat v prostředí Caché pomocí postupu zvaného java […]

Jython XVI

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Persistentní objekty a Java projekce V minulém díle jsme si ukázali, jakým způsobem se provádí připojení k databázi Caché. Dnes budeme pokračovat a budeme předpokládat, že již existují třídy, které mají v sobě zabudováno rozhraní pro persistenci jejich instancí. Takovéto třídy je možné vygenerovat v prostředí Caché pomocí postupu zvaného java […]

Kryptování RC4 a charset

Možná se někdy může stát, že je zapotřebí něco zašifrovat a třeba by též nebylo špatné viděl na implementaci. Zde uvádím nejjednodušší variantu RC4, kterou jsem našel na netu napsanou v Javascriptu (zde je link: http://farhadi.ir/works/rc4) a přepsal jsem ji do Javy. Oproti implementaci v package java.crypto jako parametr předpokládá binární data (String) namísto pole […]

Selenium remote control – testování AJAXu a další finty

Na posledním projektu jsem dělal větší část práce na GUI a nehodlal jsem stále dokola klikat jak cvičená opice a raději jsem si dal trochu práce s nasazením Selenium remote control. Nešlo ani tak o jednotkové testy jako spíš o integrační a regresní testování. Zvolil jsem remote control a ne plugin do firefoxu (Selenium IDE), protože takto […]

České řazení

Tento článek vznikl jako reakce na diskuzi v javovské konferenci konference@java.cz v listopadu 2009. Předmětem diskuze zde bylo řazení podle ČSN 97 6030. V dalším textu se nebudeme této normy striktně držet. Cílem článku není popsat implementaci řazení podle normy, ale spíše ukázat možnosti, které máme v Javě k dispozici pro abecední řazení řetězců. Chceme-li […]

Jython XV

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Proměnné, tabulky symbolů a rozsahy platnosti v Jythonu Pro připojení k databázovým systémům používá Jython rozhraní JDBC. To vyžaduje pouze vhodný ovladač pro danou databázi. My budeme používat databázi Caché, což je již téměř 30 let velice efektivní databázová technologie vycházející z vícerozměrného uspořádání dat, která nabízí vysoký […]

Jython XV

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Proměnné, tabulky symbolů a rozsahy platnosti v Jythonu Pro připojení k databázovým systémům používá Jython rozhraní JDBC. To vyžaduje pouze vhodný ovladač pro danou databázi. My budeme používat databázi Caché, což je již téměř 30 let velice efektivní databázová technologie vycházející z vícerozměrného uspořádání dat, která nabízí vysoký […]

Testujeme WS klienty

Chystám se přihřát si vlastní polívčičku a budu psát o tom, na čem právě ve svém volném čase dělám. Jde o knihovnu, která mi pomáhá s testováním Spring WS klientských aplikací. Jako obvykle jsem si chtěl ušetřit sám sobě práci. Jsem totiž docela nakažen testováním, takže se snažím psát unit testy skoro na všechno co […]

Jython XIV

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Proměnné, tabulky symbolů a rozsahy platnosti v Jythonu   V dnešní dílu se budeme zabývat otázkou, jak dlouho je platná definice proměnné či funkce, a z kterých míst jsou tyto definice přístupné. Jinými slovy, nastal čas si vážně pohovořit o jmenných prostorech. Pro sledování rozsahu platnosti definic používá […]

Jython XIV

autor: Štefan Havlíček, Sales Engineer, InterSystems B.V. Proměnné, tabulky symbolů a rozsahy platnosti v Jythonu   V dnešní dílu se budeme zabývat otázkou, jak dlouho je platná definice proměnné či funkce, a z kterých míst jsou tyto definice přístupné. Jinými slovy, nastal čas si vážně pohovořit o jmenných prostorech. Pro sledování rozsahu platnosti definic používá […]