Ano, ano. Dnes jsem po nasazení nového buildu opět strávil plodné čtyři hodiny věštěním z křišťálové koule zvané Oracle Application Server. Ještě ke všemu na prostředí, ke kterému není přímý přístup. Kód, který máme již na tuctu instalací, který bez problémů běží i na dvou testovacích strojích s "přibližně" stejnou konfigurací na produkci ne a ne.
Výsledkem mého pátrání bylo to, že pokud se na konkrétní verzi OC4J zavolá metoda getParameterMap() dřív než některá z metod getParameter, getParameterNames nebo getParameterValues, tak je výsledkem prázdná mapa, přestože se v requestu parametry nachází.
O autorovi: Jetyho blog | LinkedIn
Pavel Jetenský se věnuje Java/J2EE vývoji již od roku 2003, z toho několik let v Irsku. Zajímají ho techniky automatického testování. V současné době pracuje jako metodický vedoucí Java/J2EE v Deltax Systems a.s.
Toto školení vám ukáže, jak co nejlépe využít různých pomůcek vývojového nástroje Eclipse IDE pro urychlení vývoje SW. Není zaměřeno na žádné pluginy pro Eclipse, veškeré tipy využijete v základní instalaci.
V minulém článku, ve kterém jsem se zabýval JavaScript Closures, jsem se zmiňoval o tom, že mě k jejich studiu donutilo používání efektů z knihovny jQuery. Také jsem sliboval, že o svých zkušenostech něco málo napíšu v dalším článku. Nuže směle do toho.
jQuery je obecná knihovna obalující odlišné implementace (více než odlišnosti jazyka, míním odlišnosti práce s DOM reprezentací) JavaScriptu v běžně používaných prohlížečích. Efekty jsou pouze její minoritní částí, kterou možná většina vývojářů pracujících s jQuery ani nevyužívá.
Předevčírem se v mé RSS síti zachytila zajímavá zpráva, která dobře zapadá do katalogu řešení pro automatické testování. Jedná se o MockFtpServer, který se velmi podobá přístupu SubEtha SMTP Serveru, se kterým mám velmi pozitivní zkušenosti.
Princip je skutečně analogický zmiňovanému SubEtha SMTP Serveru, se kterým lze jednoduše ověřovat správné rozesílání emailů. Jednoduše nakonfigurujeme "virtuální" FTP server a nastartujeme jej na konkrétním portu. V testech pak můžeme ověřovat kód, který komunikuje s FTP serverem, aniž bychom museli vytvářet vlastní stub nebo mock objekty:
Blíží se konec roku a s ním i rekapitulace toho, co je za námi. Rád bych prošel, ve zkratce to co se letošní rok odehrálo a zveřejnil pár statistik z Google Analytics a Wordpressu.
Hlavními událostmi tohoto roku, které mají nějakou spojitost s blogem, byla jOpenSpace konference, školení NetBeans platform a dvojice přednášek na Univerzitě Hradec Králové. Všechny události zarezonovaly blogem ať už ve formě záznamů a reportáží, nebo jako vedlejší produkt příprav na tyto akce.
V polovině listopadu jsem měl na Univerzitě Hradec Králové přednášku o automatickém testování v Javě, ve které jsem zabrousil už trošku do větší hloubky než v té, která proběhla na jaře tohoto roku. Přestože jsem především závěr přednášky nemohl probrat do takových podrobností, jak bych rád, doufám, že se mi většinu nasbíraných zkušeností nějakým způsobem podařilo předat. Pokud vás tedy opakovaně trápí některé problémy při psaní unit a integračních testů, možná při poslechu zjistíte, že i já jsem řešil podobný problém a můžu vám nabídnout nějaký tip co s daným problémem udělat, popř.
Nevím jak vy, ale já mám vždy radost, když někdo jiný nezávisle dojde ke stejným závěrům, jako jsem došel já sám. Osobně to považuji za jisté potvrzení smysluplnosti mých vlastních úvah a toho, že nejsem tak úplně "mimo mísu".
Dnes vyšel na java.DZone.com článek s názvem Monitoring Declarative Transactions in Spring od Toma Celluciho, který se zabývá jednoduchým otestováním správného nastavení pointcutů při používání deklarativního nastavení transakcí ve Springu. Pokud si pamatujete, sám jsem tuto problematiku řešil před pár měsíci a publikoval vlastní řešení (a tak trochu mě zviklal Dagi, když se na něj na jOpenSpace moc netvářil).
Javascript používám několik let, snad už od doby kdy jsem na univerzitě začal koketovat s webem. Celou dobu ho používám jen na jednoduché skriptování bez ambic na jakýkoliv propracovanější programovací model. S nástupem kvalitních frameworků jako je třeba jQuery, PrototypeJS, MooTools, Script.aculo.us a další, je člověk přinucen ponořit se do tajů JavaScriptu hlouběji a narazí na věci o kterých se mu před tím ani nesnilo. V tomto článku bych se s vámi rád podělil o pár zkušeností a především odkazů na kvalitní články o tzv.
Díky mému špatnému odhadu, kolik je možné probrat za hodinu a půl jsem se na minulé přednášce nestihnul dotknout žádného z pokročilejších témat souvisejících s automatickým testováním, se kterými se při douhodobém vývoji s použitím testů zcela jistě setkáte. Proto jsem se s Tomášem Kozlem z Univerzity Hradec Králové dohodl na druhé přednášce, která by se věnovala už jen pouze těmto záludnějším věcem a také rozkryla podporu pro testování ve Spring Frameworku.
Není se třeba obávat, že by můj zájem o publikaci přednášek z jOpenSpace 2008 zveřejněním té mé ochladl. Ba naopak - předkládám Vám druhou várku záznamů a ještě nás čeká jedna várka, na kterou se můžete do konce roku těšit.
Pro úplnost ještě uvádím odkaz na předchozí záznamy:
Audio #1 Lightning Talk - Using Spring in large applications, Roman Pichlík V této přednášce Dagi popisuje zkušenost s nasazením (a používáním) Spring Frameworku na velkém projektu v Hewlett-Packard.
Hned na začátku upozorňuji, že kdo očekává technické informace bude zklamán. Tento článek je spíš takovým zamyšlení nad tím, co znamená pro vývojáře slovo Release (nebo chcete-li český ekvivalent Spuštění). Z jednoho úhlu se na toto slovo můžeme dívat jako na měřítko času - obyčejní lidé měří čas v rocích, měsících a dnech, úředníci a ekonomové měří čas na zdaňovací období a kvartály, učitelé měří čas na semestry a pololetí a my vývojáři na milestony a releasy.
O autorovi: Jetyho blog | LinkedIn
Pavel Jetenský se věnuje Java/J2EE vývoji již od roku 2003, z toho několik let v Irsku. Zajímají ho techniky automatického testování. V současné době pracuje jako metodický vedoucí Java/J2EE v Deltax Systems a.s.
Na Java Open Space jsem měl na téma Selenium lightning talk. Honza ho nahrál jako podcast a zveřejnil v předchozím článku, ale bohužel je v nahrávce hodně šumu.
Naštěstí ale ještě existuje screencast z původní verze školení Selenium testování GUI, které jsem prezentoval letos na jaře pro kolegy z mojí firmy.
Nice thing about Aspect Oriented Programming is that you can easily add piece of logic to several (possibly other way not connected) parts of your application. You'll only write an Advice (piece of code that should be weaved into original code and executed at exactly specified point of time) and define Pointcut (an expression defining which classes and methods shall be advised). Please, keep in mind, that above description is somewhat simplyfying and that AOP could be much broader than this.
V reportáži z tohoto setkání jsem sliboval, že se pokusíme uveřejnit audio záznamy z jednotlivých session. Od slov došlo k realizaci a je připravena první várka záznamů ve formě podcastů.
Open Space Talk - ORM, Roman Pichlík V této session se vede diskuse obecně o knihovnách pro objektově relační mapování. Zkraje se probírají obtíže s použitím Hibernate v prostředí desktopových Swingových aplikací v souvislosti s lazy loadingem v AWT threadu (do 16 minuty).
I've run into interesting and very strange problem. I was writing transactional Spring test that opens transaction at the beginning of it, and rollbacks at the end. First part of my test performed bunch of INSERT and UPDATE SQL commands and after that I was checking persisted changes by loading data back from the database. Suddenly my tests started to fail. And I was searching for the reason ...
The reason was that the data created by the first part of test was not cleared by rollback at the end of the test.
Existují situace, kdy aplikaci neinstalujete sami, ale instaluje ji třetí strana - ať už je třetí stranou myšlen technik zákazníka nebo kolega z jiného oddělení firmy. Vy posléze přijdete už k nainstalované aplikaci, u které si nikdy tak úplně stoprocentně nemůžete být jisti verzí neřkuli verzemi knihoven, které daná aplikace používá. Přesto tato znalost může být pro řešení některých problémů zásadní (např. proto, že oprava může spočívat v pouhé instalaci nové verze knihovny / modulu).
Je tomu už drahně let, co jsem používal k populaci JavaBean Commons-BeanUtils z rodiny Apache Jakarta. Od chvíle, kdy stavím svoje aplikace nad Springem, pozbývá používání této knihovny smysl - naopak bylo by bláhové se této knihovny držet, když Spring nabízí již ve svém základu mnohem víc. Prostým logickým úsudkem lze odvodit, že Spring coby IoC kontejner bude obsahovat promyšlenou logiku pro injektování dat do Java Bean. Nicméně v dokumentaci o tom najdete jen poměrně krátkou kapitolu Validation.
Tato reportáž vznikla v průběhu posledních session na J-Open Space konferenci v Jizerských Horách. Je na místě se ptát, co za akci to vlastně bylo. Jednalo se o první setkání lidí z české Java scény, kteří byli ochotní jeden letní víkend věnovat povídání o Javě a zkušenostech s SW vývojem obecně. Prvotní idea uspořádání konference a vlastní organizace akce patřila Michalovi Šrajerovi (alias Srakyi) ze společnosti Inmite. Výsledný mix 25 účastníků byl velmi pestrý - počínaje zástupci akademické sféry, lidí od Sun Microsystems nebo těch, co se točí okolo CZJUG (za pořadatele Dagi a několik přednášejících) a konče řadou českých bloggerů.
If you use Maven 2 and Teamcity integration server, you might want to perform releases on server. Although it's not so complicated, some things must fit one into another and you might spend a lot of time till you find out how to configure pom.xml and build configuration. For those of you, who need to setup it, this article could come quite handy.
Let's assume that you have maven release process setuped up for your localhost.
Templatovací jazyky v Javě mají poměrně dlouhou minulost. První a zřejmě nejznámnější jsou JSP, které jsou součástí javy. Jsou nejstarší z rodiny templatovacích jazyků a přestože jsou masivně používány dodnes, mnoho lidí k nim má své výhrady:
psaní JSP je obtížné pro ne-java programátory - přestože původní myšlenkou bylo, aby JSP psali odborníci na web (tedy "webdevelopeři") tato myšlenka zcela jistě minula realitu; praxe je taková, že JSP píší z různých důvodu opět Java developři, jejichž je jednak nedostatek a jednak jejich zaměření je spíš na aplikační kód než na validitu a použitelnost HTML výstupu JSP stránky nejsou použitelné, díky životnímu cyklu JSP (JSP -> .