Generování self-signed certifikátu v Javě

Kvůli projektu WinStrom a hlavně jeho novému serveru, jsme potřebovali při prvním spuštění systému vygenerovat self-signed certifikát. Certifikát totiž nemůže být podepsán žádnou certifikační autoritou, protože je možné aplikaci libovolně instalovat a jenom bychom vše zkomlpikovali (podobně je to i s SSH klíči při instalaci Linuxu).

Protože jsme potřebovali podporu více platforem a protože nechceme komplikovat instalaci a detekci nástrojů, nemohli jsem použít ani openssl ani keytool.
Pokračování textu Generování self-signed certifikátu v Javě

Optimalizujeme Hibernate

Při vývoji s Hibernate můžete narazit na výkonnostní problémy. Tento fakt je způsoben především tím, že Hibernate přidává další abstraktní vrstvu a pokud Vám jeho funkčnost není zcela známa, můžete narazit na problémy.

Chtěl bych zde osvětlit postupy, které my používáme při vývoji aplikací, abychom dosáhli co nejvyššího výkonu. Vysvětlení pojmů a samotné postupy na optimalizaci si můžete přečíst v článku Hibernate a optimalizace.
Pokračování textu Optimalizujeme Hibernate

Maven a závislost na WARu

Pokud vytváříte projekt typu WAR a chcete jej sdílet několika webovými projekty v Mavenu (tedy také projekty typu WAR) , lze udělat přímo závislost na war:

                <dependency>
                        <groupid>cz.softeu.pokus</groupid>
                        <artifactid>pokus-war</artifactid>
                        <version>1.0</version>
                        <type>war</type>
                        <scope>runtime</scope>
                </dependency>

Tento příkaz instruuje maven-war-plugin, aby vzal všechny wary na kterém tento projekt závisí a rozbalil je do výsledného waru. Přičemž platí, že se nejdříve zkopírují závislé wary a pak až náš projekt (tj. naše soubory přepisují soubory ze závislostí).

Nevýhodou tohoto řešení je, že pak nelze použít přímo mvn tomcat:run, ale je nutné použít pomalejší mvn tomcat:run-war.

Lokalizace stránky projektu v Mavenu

Před časem jsme provedli překlad stránky projektu v Mavenu do češtiny. Tento překlad je nyní již součástí vydané verze.

Jak tedy přeložit stránku do češtiny? Návod najdete v Guide Site.

Zkráceně prostě přidáte do pom.xml toto (např. ve vašem celofiremním rodičovském projektu):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-site-plugin</artifactId>
    <inherited>true</inherited>
    <configuration>
        <locales>cs,en</locales>
    </configuration>
</plugin>

Poznámka: jsou zde uvedeny cs a následně en pro takové pluginy, které ještě nejsou přeloženy do češtiny.

Build time vs. render time

Chtěl bych vám doporučit hezký článek Build time vs. render time ze serveru Wokring with JSF and Facelets.

Chtěl bych vypíchnout odstaveček:

It is very important to remember that you cannot have components „re-appear“ on post back of a JSF form. This is because a JSF component tree should never be altered between having its state saved and when its state is restored. This is very important, so let me say again, a JSF component tree should never be altered between having its state saved and when its state is restored. The reason is that this would violate the JSF specification/design.

Dobré vědět dříve, než člověk začne psát JSF stránky.

Záznam přednášky CZJUG: JBoss Seam

Včera (27. února) proběhla moje přednáška o praktických zkušenostech s webovým frameworkem Seam. Můžete si prohlédnout slajdy a nebo si je stáhnout. Samozřejme si můžete poslechnout i audio záznam. Video záznam bohužel nebyl pořízen.

Při přednášce jsem se pustil i do kritiky problémů s touto platformou (především JSF). Některé situace snad ani nelze označit za problémy, ale spíše za vlastnosti či chování. Je dobré však o těchto případech vědět.

Seam je v SoftEU preferovanou platformou a osobně zatím neznám lepší a efektivnější nástroj pro vývoj webových aplikací.

[podcast]http://dev-blog.ferschmann.cz/wp-content/uploads/2008/09/seam-czjug.mp3[/podcast]

JSF a hezká URL

Pokud stejně jako my používáte JSF a jsou pro Vás důležitá hezká URL, můžete použít Tuckey’s URL rewrite nebo SoftEU URL Rewriter, kteří zařídí přepsání hezkého URL na skutečné URL v JSF stránce.

Pravidla mohou přespat URL např. takto:
/objednavka/ -> /objednavka/list.jsf
/objednavka/100/ -> /objednavka/view.jsf?id=100

Pokud přepisování URL použijete, brzy narazíte na problém, že při použití <h:form/> se do stránky zapíše původní přepsaná stránka (/objednavka/view.jsf?id=100) a nikoliv hezké URL pro uživatele.
Pokračování textu JSF a hezká URL