Testujeme kód s TestNG

Testování kódu je důležité, abychom ověřili kvalitu softwaru, a předešli tak chybám, které mohou nastat. Na testování existuje celá řada názorů.
Zjišťovala jsem, jaké by mělo být pokrytí různých softwarových produktů, a podle tohoto článku by mělo být cílem pokrytí testy přibližně 70-80%.
Existuje  více druhů testování; v tomto článku se budeme zabývat takzvaným jednotkovým testováním, které používáme v CzechIdM. Jednotkové testy jsou takové testy, které testují pouze určitou část kódu (například metodu), nikoli funkcionalitu. Pro CzechIdM používáme k testování framework TestNG a pro analýzu pokrytí nástroj EclEmma.

Číst dále »

Prezentační vrstva v CzechIdM

Tento článek pojednává o tom, jakým stylem je řešena prezentační vrstva v CzechIdM.
Prezentační vrstva CzechIdM je založena na technologiích JavaServer Faces (JSF), Facelets a RichFaces. JavaServer Faces je framework, který usnadňuje vývoj uživatelských rozhraní JavaServer aplikací, dále používáme technologii Facelets, což zjednodušuje a zpřehledňuje samotný vývoj prezentační vrstvy. Podpora Ajaxu je zajištěna použitím knihoven projektu RichFaces. Z tohoto frameworku používáme taktéž některé komponenty. K modelování procesů používáme jBPM workflow, které jsou spouštěny po každém kliknutí na odkaz, tlačítko formuláře atd.

Číst dále »

Organizační struktura a CzechIdM

Představme si situaci, kdy je firma organizačně členěna do více oddělení. Jednotlivá oddělení (podorganizace) spravují pověření administrátoři. Tyto situace se dají v Identity Manageru CzechIdM snadno využít ke správě uživatelů i delegaci přístupů ve spravovaných systémech. Uživatele je možné řadit do podorganizací. Správu zvolených organizací je pak možné přidělit jakýmkoliv uživatelům. V následujícím postupu si ukážeme jak vytvořit organizaci v CzechIdM.

Číst dále »

Hibernate: cizí klíče bez cizích klíčů

Při implementaci našeho Identity Manageru CzechIdM jsme narazili na zajímavý problém týkající se technologie Hibernate a struktury tabulek v databázi. Potřebovali jsme zajistit funkcionalitu, kterou běžně poskytují v databázi cizí klíče. Jenže právě cizí klíče jsme použít nemohli. V tomto článku se na náš problém podíváme a vysvětlíme si, jak se nám ho podařilo vyřešit s použitím některých pokročilejších Hibernate anotací.

Číst dále »

Implementace DTO v CzechIdM

V tomto příspěvku se budeme zabývat návrhem některých datových struktur, kterými implementujeme DTO v našem Identity Manageru CzechIdM. Nebudeme se příliš věnovat samotnému kódu, raději se podíváme na problém s větším odstupem. Ukážeme si, jak jsme v našem případě navrhli jednoduchou hierarchii tříd, která nám umožní spravovat i velmi komplikovaná data. Vše si budeme na závěr ilustrovat na naší třídě UserView, která poskytuje informace o jedné konkrétní identitě v našem CzechIdM.

Číst dále »

Identity konektor pro Alfresco – SOAP nebo RESTful?

V tomto příspěvku si ukážeme, jakým způsobem lze připojit systém Alfresco k našemu Identity Manageru CzechIdM. Dopředu prozradím, že si k tomuto účelu navrhneme a naimplementujeme speciální Identity connector. Nebudeme si zde podrobně rozebírat implementaci konetoru jako například v případě Universal SSH konektoru, ale podíváme se na tento problém z poněkud jiného pohledu. Ukážeme si, jak postupujeme při zákazníkově požadavku na připojení nějakého nového systému k CzechIdM a jak jsme postupovali v tomto případě.

Číst dále »

Časovače, Java a CzechIdM – 1. část

Toto je první část příspěvku zaměřeného na časovače a časové služby v programovacím jazyce Java. V dnešním příspěvku si na úvod uvedeme dva příklady, kde najdou časovače své uplatnění. První je spíše obecného charakteru, druhý je již specifický a popisuje použití časovačů v našem systému CzechIdM. Poté si ukážeme, jak časovat úlohy v Java SE a Java EE 5 a 6 s použitím EJB kontejneru.

Příští příspěvek bude zaměřen více specificky, a to na jBPM časovače a na projekt Quartz. Zároveň si jednotlivé možnosti shrneme a porovnáme. Nezbývá než začít.

Číst dále »

Identity Manager – Jak připojit systém Vema

U zákazníka v ČR jsme připojovali náš Identity Manager CzechIdM na personalistiku od brněnské firmy Vema. Aplikace Vema je využívána pro evidenci zaměstnanců, a proto představuje primární zdroj informací o uživatelích. CzechIdM má na starosti správu uživatelských účtů postupně ve všech systémech organizace zákazníka. V tomto příspěvku tedy popíši, jak jsme řešili napojení CzechIdM na systém Vema.

Číst dále »

JAXB – ještě bližší propojení Javy a XML

Java i XML jsou technologie, které se často používají pro komunikaci mezi aplikacemi na různých operačních systémech. Proto je v Javě řada možností, jak s XML daty pracovat, např. SAX, DOM atd.. Jednou z dalších technologií provazující Javu s XML je i JAXB (Java Architecture for XML Binding), jejíž použití si ukážeme na praktických příkladech. JAXB nabízí metody pro konverzi XML dat na Java objekty a naopak, a umožňuje zápis a čtení XML z mnoha různých zdrojů, například ze souboru, streamu, nebo z URL. V tomto článku si na několika příkladech ukážeme, jak se s JAXB pracuje.

Číst dále »