Hlavní navigace

Vývojové prostředí JBuilder a pluginy JGear

Pavel Tišnovský

Integrovaných vývojových prostředí určených pro vývoj aplikací v Javě existuje již celá řada. Mezi jedny z nejpovedenějších prostředí patří i JBuilder od společnosti Borland (dnes Code Gear), který prošel několika vývojovými fázemi. K JBuilderu je možno dokoupit i pluginy JGear, kterým je věnován tento článek.

Obsah

1. Společnost Borland a Code Gear
2. Vývojové prostředí JBuilder a pluginy JGear
3. Stručná charakteristika produktové řady JGear
4. Instalace JGear Performance a JGear LiveSource
5. JGear LiveSource
6. Z UML diagramu ke zdrojovému kódu a zpět
7. Odkazy na další informační zdroje

1. Společnost Borland a Code Gear

Před popisem vlastností pluginů (zásuvných modulů) JGear nezaškodí, když si připomeneme zajímavou historii společností Borland a Code Gear. Některým uživatelů už dnes pojem Borland nic neříká, ovšem není tomu tak dávno, co tato společnost patřila mezi pětici nejvýznamnějších výrobců programového vybavení (nejenom) pro osobní počítače řady PC a její produkty používala velká část celé jedné generace programátorů vytvářejících aplikace pro počítače s operačním systémem CP/M a později s DOSem a Microsoft Windows. Společnost byla založena v roce 1981. Původně se jednalo o firmu, jejíž vývojový tým sídlil v Dánsku (ostatně tři ze čtyř zakladatelů jsou Dánové), později se firma přesídlila přes Londýn do USA (Kalifornie, Texas).

Jedním z nejúspěšnějších produktů té doby byl bezesporu Turbo Pascal postavený na překladači známého programátora Anderse Hejlsberga (ten stojí za úspěchem několika dalších vývojových prostředí). Firma Borland využila a především po praktické stránce rozšířila původně těžkopádný a pro praxi těžko použitelný jazyk určený pro výuku programování do podoby celosvětově úspěšného produktu, který si vzal to nejlepší jak z překladačů (rychlost výsledného kódu), tak i z interpreterů (velmi rychlý přechod mezi zdrojovým kódem a běžícím procesem, symbolický debugger) – Pascal je totiž možné přeložit v jednom průchodu a překlad do paměti (in memory compilation) byl velmi rychlý i na pomalých strojích té doby (XT, AT).

Produkty založené na Pascalu patří od té doby k tomu nejlepšímu, co firma Borland v oblasti vývojových prostředí vytvořila. Mezi tyto produkty je možné počítat i Delphi s knihovnou vizuálních komponent VCL, která nahradila původní Borlanskou knihovnu OWL. Delphi je spolu s Visual Basicem považováno za jedno z prvních komerčně úspěšně používaných integrovaných vývojových prostředí typu RAD (Rapid Application Development), i když ono prvenství je poněkud sporné. Je zajímavé, že například téměř současně vydávané Borlandí prostředí a překladače pro jiné jazyky (Basic, Prolog, C++) byly vždy skoro o celou generaci opožděny za Pascalem (to se týká i Delphi v porovnání s C++ Builderem).

jgear01

Mezi známé produkty Borlandu z dřívější doby patří například:

Turbo Assembler (TASM), Turbo Basic, Turbo Pascal, Borland Pascal (v podstatě Turbo Pascal, který však překládal 16bitové programy určené pro chráněný režim DOSu), Borland C++ (dříve vytvářený zejména pro DOSové prostředí, později dostupný i pro třicetidvoubitové operační systémy Windows, řádkový překladač je možné použít zdarma), Kylix (vývojové prostředí založené na Delphi dostupné i pro Linux, jeho vývoj je však rozpačitý), Paradox (databáze) a Quattro Pro (tabulkový procesor). Některé z těchto aplikací, například starší verze Turbo Pascalu, jsou dnes zdarma dostupné – stačí se zaregistrovat na stránkách Borlandu a podívat se do sekce volně dostupných programů.

jgear02

Společnost CodeGear vznikla v roce 2006 oddělením od mateřského Borlandu, který se v minulosti přejmenoval na Inprise a později opět zpátky na Borland. Důvodem bylo pravděpodobně přeorientování samotného Borlandu na jiné produkty, než vývojářské nástroje (zde totiž Borland už před mnoha lety ztratil vedoucí pozici na úkor Microsoftu, zejména jeho Visual Studia). CodeGear nyní formálně i fakticky produkuje zejména tyto produkty, které byly dříve vydávány buď pod značkou Borland nebo Inprise:

  • Delphi (v současnosti v sobě kromě Object Pascalu zahrnuje i další jazyky, viz následující řádky)
  • Turbo Delphi (jeden jazyk – Object Pascal – s vývojovým prostředím)
  • Turbo C++ (jeden jazyk – C++ – s vývojovým prostředím)
  • Turbo C# (jeden jazyk – C# – s vývojovým prostředím)
  • JBuilder (jeho současná podoba JBuilder 2007 je postavena na známém IDE Eclipse)
  • InterBase
  • Delphi for PHP
  • C++ Builder (vývojové prostředí pro C++ se stejným prostředím jako Delphi)
  • Code Gear 3rd Rail (vývojové prostředí pro Ruby, poměrně zajímavý počin)

Produkty Turbo Delphi, Turbo C++ a Turbo C# se podle slov CodeGear snaží navázat na slávu původních „Turbo“ překladačů, tj. zejména Turbo Pascalu a Turbo C++ (pro DOS). Jak již název napovídá, jedná se vždy o vývojové prostředí určené pro jeden konkrétní programovací jazyk, což je v kontrastu například s novými Delphi, které umožňují práci ve více jazycích – dokonce i části jednoho projektu mohou být psány v různých programovacích jazycích, podobně jako je tomu u konkurenčního vývojového prostředí od firmy Microsoft.

jgear03

2. Vývojové prostředí JBuilder a pluginy JGear

My se však v dnešním článku zaměříme především na integrované vývojové prostředí JBuilder a k němu dostupnými pluginy (přídavnými moduly) označovanými souhrnně názvem JGear. Historie samotného JBuilderu je poměrně zajímavá. Toto vývojové prostředí, které je určeno, jak již jeho název naznačuje, především pro vývoj aplikací psaných v Javě, sice od doby svého vzniku v roce 1997 stále nese stejný název, ovšem radikálně se změnilo jeho technické řešení. Původně se jednalo o IDE vytvořené v Delphi, šlo tedy o nativní aplikaci určenou pro třicetidvoubitové operační systémy Microsoft Windows. Další verze JBuilderu byly už vytvářeny v Javě, což ovšem mělo některé negativní dopady – JBuilder byl považován za velmi pomalý a také nestabilní (ostatně i rychlost vydávání nových verzí a updatů o lecčem svědčí; mezi lety 1997 a 2003 bylo vydáno deset verzí JBuilderu a minimálně devět jejich updatů).

Od verze JBuilder 2007 se však situace výrazným způsobem změnila, protože byl opuštěn původní model samostatně vyvíjeného integrovaného vývojového prostředí a přešlo se na vytváření IDE postaveného na známé platformě Eclipse. To na jednu stranu přineslo pro stávající uživatele JBuilderu změnu uživatelského rozhraní i způsob práce (i když nikoli převratnou, všechna IDE se navzájem inspirují, a tak se k sobě přibližují i způsobem ovládání), na stranu druhou se však vývoj zcela jistě urychlí, protože se vývojáři JBuilderu nebudou muset zabývat „nízkoúrovňovými“ problémy, které bude řešit samotné Eclipse (možná se konečně dočkáme i kvalitnějšího editoru, ideálně na bázi VIMu). Spojením s Eclipse je také možné provést integraci s dalším velkým množstvím pluginů vytvářených pro tuto platformu a také nesmíme zapomenout na stabilitu a kvalitu samotného Eclipse.

Pro JBuilder a tím pádem i pro Eclipse a další vývojová prostředí na něm založených, je určena i sada pluginů vyvíjených firmou Code Gear, která je souhrnně označována jako JGear. Konkrétně se jedná o tyto čtyři přídavné moduly:

  1. JGear LiveSource
  2. JGear Performance
  3. JGear Team Client
  4. JGear Team Server

V následujících kapitolách si popíšeme první dva pluginy: JGear LiveSource a JGear Performance. Podotýkám, že se, stejně jako samotný JBuilder, jedná o placené produkty, ale je možné si je i zadarmo vyzkoušet v rámci testovacího období. Cena za pluginy se v přepočtu pohybuje okolo 6500,– Kč, konkrétní sumy jsou uvedeny na českých stránkách Code Gear (v současnosti je ceníková cena ve webshopu stanovena na 6900,– Kč). Jestli je cena adekvátní či ne samozřejmě záleží na konkrétním použití. Mě například práce s JGear LiveSource připadla srovnatelná se známým Rational Rose, jehož ceny se pohybují v jiných relacích.

jgear04

Dva koně z jedné stáje, tj. JBuilder 2007 a JGear, samozřejmě bez problémů spolupracují

3. Stručná charakteristika produktové řady JGear

Produktová řada JGear sestává z několika modulů, které nepracují jako samostatné aplikace, ale jako přídavné moduly (pluginy) určené pro instalaci do vybraných integrovaných vývojových prostředí. Moduly však na sobě nejsou závislé, tj. je možné provozovat například pouze jeden vybraný modul (pravděpodobně se bude jednat o povedený LiveSource) nebo klidně i moduly všechny. Jednotlivé moduly dostupné v produktové řadě JGear mohou být nainstalovány do několika integrovaných vývojových prostředí (IDE), které jsou založeny na populárním a stále se zlepšujícím Eclipse. Konkrétně se jedná o tato vývojová prostředí:

Eclipse Callisto (3.2)
IBM Rational Application Developer 7.0
MyEclipse 5.5
BEA Workshop 10.1
Turbo JBuilder 2007

Ve výše uvedené tabulce je nutné věnovat pozornost nejenom názvu integrovaného prostředí, ale i jeho verzi. Jak si podrobněji řekneme v následující kapitole, je například instalace JGear na jinou verzi Eclipse než 3.2 (Callisto) ne-li nemožné, tak poměrně komplikované, především kvůli závislosti JGearu na dalších přídavných modulech (pluginech), které jsou spolu s Eclipse dodávány buď přímo jeho vývojovým týmem nebo dalšími programátory. Podpora pro starší verze Eclipse (například verze 3.1 je docela často používána) neexistuje a podporu pro současnou verzi Eclipse 3.3 (Europe) můžeme očekávat začátkem příštího roku.

jgear05

Podle datasheetu o produktech JGear jsou podporovány operační systémy Microsoft Windows XP, Microsoft Windows Vista a Red Hat Enterprise Linux 4. Není se však zapotřebí obávat toho, že JGear na jiných systémech nepojede. Naopak, vyzkoušel jsem instalaci i běh na Microsoft Windows 2000 Server i Debianu Etch a vše fungovalo bez problémů. Dá se říci, že na systémech podporovaných JDK 5 nebo JDK 6 pojede i JGear.

4. Instalace JGear Performance a JGear LiveSource

U profesionálních produktů, jakým bezesporu JGear je, by měla být instalace bezproblémová, takže to může vypadat, že je tahle kapitola zbytečná. Z důvodů uvedených níže jsem ji však do tohoto článku zařadil, abych ušetřil čas případným zájemcům o tento produkt při instalaci do „nekompatibilního“ integrovaného vývojového prostředí. Z tabulky uvedené v předchozí kapitole je zřejmé, že JGear Performance i JGear LiveSource je možné provozovat i v populárním vývojovém prostředí Eclipse, ovšem pouze ve verzi 3.2 (Callisto). Pokud používáte starší verzi (3.1) či naopak Eclipse 3.3 (Europe), bude práce s JGear Performance i JGear LiveSource doprovázeno řadou problémů, zejména kvůli návaznosti na další přídavné moduly, které nebudou mít správnou verzi. Pokoušel jsem se JGear „přemluvit“ pro spolupráci s Eclipse 3.3, ale i přes veškerou snahu, včetně downgrade některých přídavných modulů, například Mavenu, se stále v některých okamžicích moduly nechovaly podle očekávání.

jgear06

Na této verzi Eclipse by provozování JGear Performance a JGear LiveSource bylo problematické

Řešení jsou čtyři: použít poněkud starší Eclipse 3.2 (Callisto), nainstalovat si trial verzi JBuilderu 2007, který samozřejmě JGear podporuje (popř. zakoupit plnou verzi JBuilderu, což v součinnosti s JGear tvoří pěkný tandem pro vývoj) nebo počkat do dalšího roku, kdy by měla být oficiálně vydaná podpora pro Eclipse 3.3 (Europe). Uvidíme, jak rychle společnost Code Gear zareaguje na vydání další verze Eclipse s kódovým jménem Ganymede. Pro účely této recenze byla vyzkoušena první i druhá varianta. Na dalších screenshotech budu porůznu ukazovat jak okna a dialogy z Eclipse, tak i JBuilderu, který je, jak již víme z první kapitoly, na Eclipse postaven. Kromě toho jsou screenshoty pořízené ze dvou operačních systémů – Debian Etch a Windows 2000 Server, protože jsem chtěl otestovat chování JGear i na takto odlišných platformách.

jgear07

Začátek instalace (Eclipse běžící v Microsoft Windows)

Moduly JGear se instalují stejně jako jakékoli jiné moduly pro Eclipse – pomocí položky menu Software Updates (viz následující obrázek). Po výběru této položky se zobrazí nabídka míst (URL adres), na kterých lze nalézt položky repozitáře nabízejících jednotlivé moduly. Do seznamu těchto míst stačí přidat další adresu s obsahem http://www.jbu­ilderupdatesi­te.com/2007r2. To platí pro Eclipse, Bea Workshop aj., v případě JBuilderu už je tato adresa přednastavena.

jgear08

Vyhledávání modulů (Eclipse běžící v Debianu s FluxBoxem)

Poté již stačí požadované moduly vybrat a nainstalovat. V případě JBuilderu 2007 nedojde k žádným kolizím s již nainstalovanými pluginy, u Eclipse je zapotřebí doinstalovat například novou verzi pluginu Maven a další (veškeré potřebné informace se vypisují v horní části dialogu).

jgear09

Výběr pluginů pro instalaci (Eclipse běžící v Debianu s FluxBoxem)

jgear10

Podrobnější výběr pluginů pro instalaci (Eclipse běžící v Debianu s FluxBoxem)

Po instalaci je možné projít registrační procedurou, kterou lze opět provést více způsoby – přes zaslaný registrační klíč, souborem s registračními informacemi, telefonicky atd. Postup je jednoduchý; ukázán je na následujících několika screenshotech. Za zmínku snad stojí zajímavá chyba, která se projevila tím, že se nedá vyplnit položka Country (JBuilder asi správně rozeznal, že se neprovádí registrace z USA), ale bez vyplnění této položky se nedá pokračovat v registraci.

jgear11

Vyplnění informací o uživateli (Eclipse běžící v Debianu s FluxBoxem)

jgear12

Registrace přes internet (Eclipse běžící v Debianu s FluxBoxem)

jgear13

Dokončení úspěšné registrace (Eclipse běžící v Debianu s FluxBoxem)

jgear14

Výpis registrovaných komponent (Eclipse běžící v Debianu s FluxBoxem)

5. JGear LiveSource

Konečně se dostáváme k popisu jednotlivých přídavných modulů. Plugin JGear LiveSource je určený pro jednoduchou tvorbu UML diagramů, převod těchto diagramů na zdrojový kód v Javě a také pro zpětný převod kódu v Javě do UML diagramu – jedná se tedy o plný dvoucestný nástroj, který funguje podobně jako například produkty Rational Rose, ARTiSAN Real-time Studio či I-Logix Rhapsody.

Jazyk označovaný zkratkou UML, neboli plným názvem Unified Modeling Language je, jak již název napovídá, unifikovaný modelovací jazyk, jenž má, narozdíl od převážně textově orientovaných programovacích jazyků, vlastní grafickou syntaxi (tj. pravidla pro sestavování jednotlivých elementů jazyka do větších objektů) a sémantiku (tj. jednoznačná pravidla určující jednotlivým syntaktickým výrazům jejich význam).

V současné době má jazyk UML největší význam při návrhu rozsáhlých softwarových systémů, protože objektově orientovaný návrh každé složitější aplikace je nezbytným předpokladem pro její úspěšnou a rychlou implementaci. Pro objektově orientovaný návrh je samozřejmě možné použít různé podpůrné prostředky, zejména další odlišné typy diagramů, UML je však významné také v tom ohledu, že přesně specifikuje, co má daný diagram obsahovat, což je velmi důležité zejména při sdílení informací mezi jednotlivými analytiky a vývojáři (samozřejmě, že samostatně pracující vývojář si pro svoji potřebu kreslí vlastní značky, které nemusí splňovat žádné normy).

Dále je již z principu UML nutné, aby vytvářené grafy měly vnitřní konzistenci a přesně danou sémantiku, což u jiných typů grafů nemusí být obecně zaručeno. UML diagramů existuje několik typů, jež se liší podle toho, jaké se pomocí nich plánují či zpracovávají úlohy. Tyto diagramy se od sebe odlišují především repertoárem použitých značek, způsobem jejich vzájemného propojení a s nimi související sémantikou.

Mezi velké přednosti jazyka UML i na něm postavených UML diagramů patří existence otevřeného a rozšiřitelného standardu, podpora celého vývojového cyklu aplikace či jiného (ne nutně programového) systému, a velká podpora pro různé aplikační oblasti. Pro širší využití jazyka UML v praxi mluví také významný fakt, že je podporován celou řadou vývojových nástrojů, ať už samostatných aplikací určených pouze pro práci s UML, tak i integrovaných vývojových prostředí (IDE), které v některých případech dovolují provádět převod informací mezi UML diagramem a algoritmem zapsaným v programovacím jazyce (a samozřejmě i opačným směrem, který je však z pochopitelných důvodů složitější a ne vždy uskutečnitelný). Právě pro tento účel, tj. pro převod z UML do zdrojového kódu Javy a naopak, slouží plugin JGear LiveSource.

6. Z UML diagramu ke zdrojovému kódu a zpět

JGear LiveSource umožňuje striktně obousměrný převod mezi Javovským kódem a UML diagramy. Základ pro vývojáře v objektově orientovaném jazyku, jakým je i Java, tvoří samozřejmě diagram tříd (Class Diagram). Podpora diagramu tříd znamená, že si můžeme celou třídu a její vztahy s okolními třídami „nakreslit“ a poté provést převod tohoto diagramu do formy Javovského zdrojového kódu. Do bloku se třídou (nebo i rozhraním, výčtem atd.) je možné vkládat i informace o jednotlivých metodách a datových položkách objektu/třídy spolu s informací o přístupových právech (public, protected, private, friend).

Dokonce je možné provést i opačný převod, tj. ze zdrojového kódu se vygeneruje diagram tříd. To se hodí například v případě zkoumání cizího kódu, při vytváření programové dokumentace k aplikaci, komunikaci s analytiky, nebo pro prezentaci navrženého řešení problému například pro nadřízené – osobně patřím spíše mezi programátory, kteří se raději věnují psaní zdrojového kódu (nejlépe ve VIMu) než UML či jiným diagramům, proto možnost převodu tímto směrem jenom vítám.

jgear15

Ve skutečnosti se neprovádí převod mezi UML a kódem žádnými (z hlediska uživatele) složitými operacemi, ale skutečnou synchronizací – při změně UML se změní i zdrojový kód a naopak. Ze začátku to může vypadat nebezpečně („nějaký program si mi dovoluje lézt do zdrojáků?!“), ale sami si můžete odzkoušet, že změny kódu jsou prováděny prakticky bezchybně a kupodivu i rychle. Kromě běžných Javovských tříd (POJO – Plain Old Java Object) jsou podporovány i EJB (Enterprise Java Beans) 2 a především 3 (lituji vývojáře, kteří musí z nějakých důvodů používat EJB 2). JGear LiveSource toho nabízí více, například podporuje kromě diagramu tříd i další typy diagramů: stavový diagram a sekvenční diagram (opět s návazností na zdrojový kód). Podrobnosti si řekneme ve druhé části této recenze, ve které se mj. budeme zabývat dalšími typy diagramů, které lze v tomto modulu použít, podíváme se na možnosti pluginu JGear Performance a také se pokusím zhodnotit další vlastnosti tohoto bezesporu zajímavého balíku.

7. Odkazy na další informační zdroje

Nejvíce informací o produktech z vývojové řady JGear se dozvíte přímo na stránkách společnosti Code Gear. Část dokumentace je dostupná v sekci nazvané JGear, ovšem většina ukázek programových kódů, postupů a instruktážní videa jsou „schována“ spíše pod položkou JBuilder. Pro snazší hledání zde uvedu několik zajímavých adres:

  1. Borland Software Corporation:
    http://www.bor­land.com/
  2. Borland Developer Network:
    http://bdn.bor­land.com/
  3. Borland Code Central:
    http://cc.bor­land.com/
  4. Zde je možné produkty JGear i další produkty společnosti Code Gear zakoupit:
    http://shop.co­degear.cz
  5. Stránka, ze které je možné získat JBuilder a další produkty:
    http://www.co­degear.com/dow­nloads
  6. Oficiální stránka o JBuilderu:
    http://www.co­degear.com/Pro­ducts/JBuilder
  7. Borland na Wikipedii:
    http://en.wiki­pedia.org/wiki/Bor­land
  8. JBuilder na Wikipedii:
    http://en.wiki­pedia.org/wiki/Jbu­ilder
  9. Eclipse na Wikipedii:
    http://en.wiki­pedia.org/wiki/E­clipse_(softwa­re)
  10. Eclipse Callisto Projects (verze Eclipse, se kterou spolupracují pluginy JGear):
    http://www.eclip­se.org/callis­to/callistopro­jects.php
  11. Europa Simultaneous Release (současná verze Eclipse):
    http://wiki.e­clipse.org/in­dex.php/Europa_Si­multaneous_Re­lease
  12. Ganymede Simultaneous Release (vyvíjená verze Eclipse):
    http://wiki.e­clipse.org/in­dex.php/Ganyme­de_Simultaneou­s_Release
  13. Pavel Tišnovský: Nástroje pro tvorbu UML diagramů
    /clanky/nastroje-pro-tvorbu-uml-diagramu/
Našli jste v článku chybu?

7. 12. 2007 21:39

YF (neregistrovaný)
bejt zamestnanec borlandu - to musi hodne bolet! jak se rika s uctou: die well! :)

7. 12. 2007 21:37

YF (neregistrovaný)
hahahahahahahahahahahahahaha
Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Vitalia.cz: Cena stejného léku se liší i o tisíce

Cena stejného léku se liší i o tisíce

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Vitalia.cz: Típněte to! Kde všude si už nezakouříte?

Típněte to! Kde všude si už nezakouříte?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR