Hlavní menu

Nástroje

WebKiv / OpenCmsBestPractices

View (print) - Edit page | Recent changes - Page history

Updated 30 June 2009, 09:18 by JaroslavPavuk

WebKiv.OpenCmsBestPractices History

Hide minor edits - Show changes to output

30 June 2009, 09:18 by JaroslavPavuk -
Added lines 37-41:



----
Zpět na FrameworkyProWebKiv
29 June 2009, 20:48 by Tomas Peterka -
Added lines 1-36:
!! Během vývoje pro [=OpenCms=] byla sesbíráná následující množina Best Practices

!!! Logujte hodně a do samostatných souborů

[=OpenCms=] dává k dispozici silný nástroj v podobě [=Log4J=]. Tento nástroj se dá použít k logování do standardního logu celého [=OpenCms=], to je však pro vývoj vlastních modulů velice nepraktické. Lepší je tedy určitě logovat do svého samostného souboru. Návod na to: [[OpenCmsLogovaniJednotlivychModulu|Jak vytvorit logovaci soubor pro jednotlive moduly do opencms]].

!!!Nejdříve vytvořte třídy, nahrajte je na [=OpenCms=] a až poté měňte xml konfigurační soubory

Problém se týká toho, že pokud definuji nějaké beany v konfiguračních souborech bez toho, abych si je před tím jako javovské třídy vytvořit, zkopíroval na [=OpenCms=] a publikoval, dojde k tomu, že [=OpenCms=] nahlásí při startu chybu [@ClassNotFoundException@] a nespustí se – nemá žádnou možnost, jak zjistit, že tyto třídy existují. Z tohoto důvodu je vždy potřeba nejprve vytvořit třídy, zkopírovat je na [=OpenCms=], publikovat a až poté je možní měnit konfigurační soubory [=OpenCms=] a restartovat Tomcat.

!!! Moduly vytvářejte v [=OpenCms=]

Ačkoliv nabízí plugin do Eclipse také možnost toho, vytvořit modul již v Eclipse a poté jej nakopírovat do [=OpenCms=], je více osvědčeným způsobem vytvořit si modul v [=OpenCms=], ten si do Eclipse pomocí tohoto pluginu stáhnout a zde editovat. Pro opětovné nakopírování na [=OpenCms=] se také více osvědčila možnost pouhého Copy to [=OpenCms=] Server – přímé publikování z Eclipse není na sto procent spolehlivé.

!!! První import modulu do Eclipse

Poté, co v [=OpenCms=] vytvoříte modul, je potřeba počítat s tím, že Eclipse module developer načítá seznam modulů z [=OpenCms=] jen jednou. To znamená, že se musíte držet následujícího pořadí:
1. Vytvořit modul v [=OpenCms=]
2. Publikovat modul v [=OpenCms=]
3. Použít Eclipse průvodce pro vytváření – import modulu z [=OpenCms=] do Eclipse
Pokud se Vámi vytvořený modul neobjeví ve seznamu nabízených modulů z [=OpenCms=] je potřeba zkontrolovat, zda je pagin nastaven na správnou instanci [=OpenCms=] (pokud jich máte současně nainstalováno více) a eventuelně restartovat Eclipse.

!!! Přenos vývoje mezi více instancemi [=OpenCms=]

Pokud budete vyvíjet modul na jednom počítači v jednom prostředí a poté budete vývoj přenášet například ke kolegovi, na jiný počítač je zapotřebí mít na paměti následující: Pokud se jedná o modul, který na druhém [=OpenCms=] zatím vůbec neexistuje, není možné jej na toto [=OpenCms=] z Eclipse nakopírovat!!! Pouhé použití funkce Copy to [=OpenCms=] Server v Eclipse nestačí! Je nutné si na originálním [=OpenCms=] modul vyexportovat: Administration View – Module Management – VYBRAT MODUL – Export Module. Toto vytvoří jednoduchý zip soubor v adresáři: [@OPENCMS_HOME\WEB-INF\packages\modules @]. Tento soubor se jmenuje stejně jako modul: cz.zcu.kiv.XXXX.

Takto vyexportovaný modul je poté potřeba na druhé [=OpenCms=] neimportovat: Administration View – Module Management – Import module with http. V otevřeném dialogovém okně jednoduše zadáte cestu k souboru s modulem a potvrdíte. Modul se naimpotuje a publikuje (neuškodí, pokud publikování ještě manuálně zkontrolujete). Poté je již možné z eclipse tento modul na tomto [=OpenCms=] standardním způsobem kopírovat.
Tento bod je zvláště důležitý také proto, že [=OpenCms=] všechny třídy, které si ve svých modulech vytvoříte, kopíruje do adresáře [@OPENCMS_HOME/WEB-INF/classes@] (jak je standardně od Java EE aplikace očekáváno) a zde jsou také Springem hledány (kde jinde než na classpath... ) A pokud [=OpenCms=] interně modul nevytvoří, neprovádí ani tuto činnost a Spring poté může hlásit chyby, protože své třídy prostě nenajde.

!!! V Eclipse projektu nepoužívejte xml soubory

Pokud ve vašem projektu v Eclipse použijete nějaký xml soubor, nebude možné tento projekt - modul na [=OpenCms=] nakopírovat. Je to z toho důvodu, že [=OpenCms=] potřebuje ke všem xml souborům jejich xsd. Uvedené omezení lze například vyřešit tak, že soubor [@XXX.xml@] přejmenujete na [@XXX.cnf@]. Platí , pokud chcete ve vašem modulu mít např. další konfigurační soubor Springu.

!!!Tip pro urychlení práce

Pokud vyvíjíte modul cz.zcu.kiv.XXX, je možné nastavit [=OpenCms=] tak, aby po startu automaticky ukazovalo na tento modul – nemusíte se poté zdlouhavě proklikávat několika adresářem: V hlavním okně zvolte Preferences a zde si dle svého přání nastavte hodnotu pole Start with folder .
29 June 2009, 20:20 by Tomas Peterka -
Deleted lines 0-20:
!Odkazy na zajimave stranky
*JSP Tag Libraries - pro renderovani vystupu na jsp strance
**Prehled OpenSource Java taglib: http://java-source.net/open-source/jsp-tag-libraries
**Displaytag pro generovani tabulek: http://displaytag.sourceforge.net/1.2/
**Jakarte Taglibs: http://jakarta.apache.org/taglibs/

*Spring MVC
**Knizka ''Spring In Action''
**Spring Reference Documentation, Kapitola 13 - Web MVC Framework http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html
**Spring Reference Documentation, Kapitola 14 - View technologies http://static.springframework.org/spring/docs/2.5.x/reference/view.html
**Eventuelne kapitola 15 - Integrating with other web frameworks http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html
** Prehled Spring Forms Tagliby - spring-form.tld http://static.springframework.org/spring/docs/2.5.x/reference/spring-form.tld.html

*Spring Web Flow
**Reference Manual - http://static.springframework.org/spring-webflow/docs/2.0.x/reference/html/index.html
**API - http://static.springframework.org/spring-webflow/docs/2.0.x/javadoc-api/index.html
**Reference Application - http://richweb.springframework.org/swf-booking-faces

* Eclipse Sysdeo Tomcat Pluin - http://www.eclipsetotale.com/tomcatPlugin.html
* OpenCms Module Developer - http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/
**Flash prezentace: http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/userinstructions.html
29 June 2009, 20:19 by Tomas Peterka -
Added lines 1-21:
!Odkazy na zajimave stranky
*JSP Tag Libraries - pro renderovani vystupu na jsp strance
**Prehled OpenSource Java taglib: http://java-source.net/open-source/jsp-tag-libraries
**Displaytag pro generovani tabulek: http://displaytag.sourceforge.net/1.2/
**Jakarte Taglibs: http://jakarta.apache.org/taglibs/

*Spring MVC
**Knizka ''Spring In Action''
**Spring Reference Documentation, Kapitola 13 - Web MVC Framework http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html
**Spring Reference Documentation, Kapitola 14 - View technologies http://static.springframework.org/spring/docs/2.5.x/reference/view.html
**Eventuelne kapitola 15 - Integrating with other web frameworks http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html
** Prehled Spring Forms Tagliby - spring-form.tld http://static.springframework.org/spring/docs/2.5.x/reference/spring-form.tld.html

*Spring Web Flow
**Reference Manual - http://static.springframework.org/spring-webflow/docs/2.0.x/reference/html/index.html
**API - http://static.springframework.org/spring-webflow/docs/2.0.x/javadoc-api/index.html
**Reference Application - http://richweb.springframework.org/swf-booking-faces

* Eclipse Sysdeo Tomcat Pluin - http://www.eclipsetotale.com/tomcatPlugin.html
* OpenCms Module Developer - http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/
**Flash prezentace: http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/userinstructions.html