Zprovoznění vývojového prostředí CzechIdM
V tomto článku si ukážeme, jak jednoduché je zprovoznění vývojového prostředí CzechIdM. Stačí k tomu pouze základní vývojářské nástroje pro programování v Javě a zdrojové soubory CzechIdM. Tímto návodem se řídí i noví zaměstnanci BCV solutions s.r.o.
Potřebné programy a zdroje
Uvádím seznam programů, které jsou běžně dostupné zdarma na webu. Pro zprovoznění vývojového prostředí je třeba stáhnou a nainstalovat všechny v uvedené verzi. Jak si můžete všimnout, CzechIdM je zatím vyvíjeno na Javě 1.5. Posledním bodem jsou samotné zdrojové projekty CzechIdM. Ty v tuto chvíli nejsou k dispozici veřejnosti.
- Stažení a instalace Javy 1.5.0_22 32-bit
- Stažení a instalace jboss-5.1.0.GA
- Stažení a instalace jboss-seam-2.2.2.Final
- Stažení a nastavení Eclipse Juno (for Java EE Developers, stáhnout 64bit, protože 32bit při spuštění vrací chybovou hlášku 13)
- Stažení CzechIdM repozitáře (jako verzovací systém je používán Git)
Nastavení nainstalovaných programů
Dále je uveden postup nastavení jednotlivých instalovaných částí. Postupně správně nastavíme JBoss, Eclipse a rozchodíme databázi MySQL. Návod je přizpůsoben nastavování na operačním systému Linux.
Nastavení JBoss
- Nastavení správné Javy do JBoss:
- Vstupte do složky, kde máte umístěný JBoss (konkrétně do jeho složky bin): ~/jboss-5.1.0.GA/bin
- Ve složce bin je soubor run.conf – ten otevřeme např. pomocí Vim, odkomentujeme řádek začínající „JAVA_HOME=“ a přidáme do něj umístění nainstalované Javy 1.5 (např. „JAVA_HOME=”/home/person/Programy/jdk1.5.0_22_32bit”“)
Nastavení Eclipse:
- Nejprve nastavíme Javu takto:
- Window -> Preferences -> Java -> Installed JREs -> Tlačítko Add… -> Standard VM – Next -> V dalším okně vyplníme JRE home adresou instalace naší Javy 1.5, pak ještě položku JRE name vyplníme přesně takto „jdk1.5.0_22-32bit“ a potvrdíme tlačítkem Finish
- Dále ve Window -> Preferences -> Java -> Compiler nastavíme „Compiler compliance level“ na 1.5
- Instalace JBoss Tools:
- Help -> Eclipse Marketplace -> Vyhledat „JBoss“ a nainstalovat „JBoss Tools“ pro verzi Eclipse, kterou máte nainstalovanou (např. Juno)
- Nastavení JBoss Tools:
- Window -> Preferences -> JBoss Tools -> JBoss Runtime -> Tlačítko ADD a najít cestu k instalaci jboss-seam-2.2.2, poté zaškrtnout možnost hned vedle „Every start“ a potvrdit OK
- Vytvoření JBoss serveru:
- Window -> Show View -> Servers – tím se v dolní části Eclipse objeví nová záložka Servers
- V záložce Servers klikneme pravým tlačítkem a dáme New -> Server -> JBoss Community -> JBoss AS 5.1 – Next -> Do položky „Home Directory“ najít instalaci JBoss v našem počítači a položku „JRE“ nastavit na JDK1.5.0_22-32bit a dát Next -> Nechat vše a další Next -> Finish
- Import projektů CzechIdM:
- Budeme importovat postupně tyto projekty:
- czechIDM/Realization/BCV_IdM
- czechIDM/Realization/BCV_IdM-ear
- czechIDM/Realization/BCV_IdM-ejb
- czechIDM/Realization/BCV_IdM-test
- czechIDM/Realization/Utils/IdmUploader
- Všechny stejným způsobem a to takto:
- File -> Import -> General – Existing Projects into Workspace – Next -> Select root directory a Finish
- Budeme importovat postupně tyto projekty:
- Nastavení importovaných projektů (je třeba udělat to pro každý projekt zvlášť):
- Project Properties -> Java Build Path a záložka Libraries – tam nastavit JRE System Library na jdk1.5.0_22-32bit
- Project Properties -> Targeted Runtimes a zaškrtnout tam jboss
- Projekt BCV_IDM-ejb navíc ještě:
- Project Properties -> Java Build Path a záložka Order and Export a dát tam položku „JRE System Library [jdk1.5.0_22-32bit]“ nahoru (tlačítkem UP)
pozn.: $ “přikaz” znamená, že se “příkaz” zadává do konzole
Vytvoření MySQL databáze:
Důležitá část běžícího CzechIdM je databáze. Obsahuje jak definice všech workflow a jejich instance, tak i různé auditní logy, které monitorují provoz.
- Vytvoření databáze (serveru):
- Instalace databáze z repozitáře Linux:
- Konkrétně balíčky MySQL databáze a MySQL-server
- Inicializační příkazy do teminálu:
- vypnout selinux, pokud běží
- $ systemctl start mysqld.service (jednorázové spuštění služby)
- $ chkconfig –levels 235 mysqld on (tím se nastaví pravidlo pro spuštění při startu systému)
- $ /usr/bin/mysql_secure_installation
- Instalace databáze z repozitáře Linux:
- Konfigurace databáze:
- Najděte konfigurační soubor MySQL. Měl by být buď v /etc/my.cnf nebo /etc/mysql/my.cnf. Případně jeho umístění zjistíte příkazem $ mysql –help | grep “Default options” -A 1
- Otevřete ho pro editaci (pokud neexistuje, zkopírujte ho z /usr/share/mysql/my_small.cnf a přejmenujte na my.cnf)
- Do jednotlivých bloku (client, mysqld, mysq) doplnit následující:
[client] default-character-set = utf8 [mysqld] character_set_server = utf8 character_set_client = utf8 innodb_flush_log_at_trx_commit=0 [mysql] default-character-set = utf8
- Aby se změny projevily, restartujte mysql
- $ systemctl stop mysqld.service
- $ systemctl start mysqld.service
- Příkazy pro vytvoření uživatele a databáze pro idm:
- $ mysql -u root -p
- > use mysql;
- > create database bcv_idm_repository;
- > create user ‘idmadmin’@’localhost’ identified by ‘idmadmin’;
- > create user ‘idmadmin’@’127.0.0.1’ identified by ‘idmadmin’;
- > grant all on bcv_idm_repository.* to ‘idmadmin’@’localhost’;
- > grant all on bcv_idm_repository.* to ‘idmadmin’@’127.0.0.1’;
- je potřeba doplnit do etc/hosts do řádky začínající na 127.0.0.1 položky název a nazev.localdomain (kde název znamená název počítače)
- Naplnění databáze daty:
- před plněním databáze je třeba spustit server, který jsme vytvořili dříve v Eclipse (vytvoří v databázi potřebné tabulky)
- v Eclipse v záložce Servers kliknout pravým na námi vytvořený server a vybereme > Add and Remove
- z dostupných přidáme BCV_IdM-ear a tři soubory ze složky BCV_IdM-ear/resources (pokud nejsou tyto soubory dostupné může pomoci restartovaní Eclipse po importu projektu)
- na všech přidaných je třeba spustit > Full Publish
- následně spustíme na serveru postupně >Clean, >Publish a >Start
- pokud se za běhu serveru vyskytne chyba “libXext.so.6: cannot open shared object file: No such file or directory” pak je třeba doinstalovat balícek libXp ( $ yum install libXp.so.6 )
- $ mysql -u root bcv_idm_repository < czechidm/Realization/SQLScripts/initial_import.sql (pokud je na rootovi nastaveno heslo, tak ještě option -p s heslem) (před CzechIdM musí být cesta k vašemu staženému CzechIdM)
- Alternativní možnost importu:
- $ mysql -u root -p
- > use bcv_idm_repository
- > .\(cesta k initial_import.sql)
- před plněním databáze je třeba spustit server, který jsme vytvořili dříve v Eclipse (vytvoří v databázi potřebné tabulky)
- Nahrání workflow pomocí uploaderu do databáze:
- V Eclipse otevřít (rozkliknout) projekt IdmUploader? -> src -> package eu.bcvsolutions.wfuploader
- a otevřít v něm „conf.properties“ a změnit řádky „wf-path“ a „rule-path“ a „email-template-path“ – je potřeba nastavit tam správnou cestu od začátku až po /Realization/BCV_IdM…
- Po upravení té cesty uložíme ten config (pomocí Ctrl + S)
- Spustíme IdmUploader
- Přihlásit se na CzechIdM:
- Do internetového prohlížeče zadat adresu: localhost:8080/idm a přihlásit se pomocí login:admin heslo:admin a pak zadat localhost:8080/idm/wfs_redeploy.seam
Požadavky a konfigurace Seam Frameworku
- TestNG
- Instalace v záložce Help -> Eclipse Marketplace.. -> vyhledat “testng” a nainstalovat
- Je potřeba mít nainstalovanou správnou verzi pluginu k použivané knihovně testng
- Další info na http://testng.org/doc/eclipse.html
- Project v Seam Frameworku (není nutný)
- http://docs.jboss.com/seam/latest/reference/en-US/html/gettingstartedwithjbosstools.html
- Na formuláři “New Seam Project” v části “Configuration” bude asi potřeba kliknout na tlačítko “Modify” a na následujícím formu zaškrtnout “Seam” a “JSF”.
- Po vytvoření nového projektu (ejb) zkontrolovat, že je v ejbModule/META-INF/persistance.xml nastavena property “hibernate.dialect” na hodnotu “org.hibernate.dialect.MySQL5Dialect”
- EclEmma(není nutný)
- Nástroj pro Code coverage
- Přidat plugin pomocí Help > Install New Software… > Add z http://update.eclemma.org
- Přibude další tlačítko pro spuštění projektu (spouští se stejně jako TestNG test – vybere se tam running konfigurace s TestNG)
- Papyrus(není nutný)
- Nástroj pro UML do Eclipse
- Indigo (…Install new software…): http://download.eclipse.org/modeling/mdt/papyrus/updates/releases/maintenance/indigo, Helios: http://download.eclipse.org/modeling/mdt/papyrus/updates/releases/helios
- Kdyby byl problém s instalací, tak stačí nainstalovat jen diagramy
- Při práci je dobré se přepnout do Papyrus perspektivy
Při nahrávání workflow z projektu Idm do databáze nelze nahrát některé workflow
Po spuštění IdmUploaderu vyhazuje chyby jako:
Incorrect string value: '\xC4\x8Det o...' for column 'source_code' at row 1
Je potřeba upravit kódování daného sloupce v dané tabulce v databázi:
ALTER TABLE `bcv_idm_repository`.`workflows_definitions` CHANGE COLUMN `source_code` `source_code` LONGTEXT CHARACTER SET 'utf8' COLLATE 'utf8_czech_ci' NOT NULL ;
Závěr
V článku jsme si ukázali, co obnáší zprovoznit vývojové prostředí CzechIdM. Je třeba pár volně dostupných programů a trochu trpělivosti. Po úspěšném dokončení postupu v tomto článku dostane programátor základní verzi identity manageru, kterou může dále rozšiřovat podle potřeby. To může být například připojením systémů a modelováním různých procesů, jako je příchod nového zaměstanance, které jsou popsány v dalších článcích tohoto blogu. Máte-li otázky týkající se tohoto tématu, neváhejte se ozvat na email veronika.crkvova@bcvsolutions.eu.