pátek 7. ledna 2005

Kdy použít EJB?

Odpověď na výše položenou otázku není jednoduché. Tok několik paralelních a na sobě nezávislých událostí, poskytl několik zajímavých postřehů a myšlenek. Určitě to tak nebylo plánováno, ale kdo by napsal lepší scénář. Pro mě osobně, sled událostí nastartoval Pavel Boháč příspěvkem kdy pouzit EJB . Diskuse na toto téma se rozvinula i na serveru Java.cz.

Některé názory jsou celkem zajímavé a rozhodně nejde pouze o EJB, je tam polemika o Hibernate, SOAP, EJB 3.0, Springu. Další události na sebe nenechaly dlouho čekat. Objevil jsem dnešní Radaka Burgeta článek JDO - Java Data Objects, který přinesl server Interval.cz. No a pak mi v RSS čtečce, integrované v ThunderBirdu, přistál velice pěkný spot Pavla Kolesnikova EJB 3.0 aneb Proč že tu mrtvolu stále resuscitují?, který je reakcí na "obživnušího" Jirku Hradila resp. jeho spoty Objevujeme EJB a Studujeme EJB.

No není to krása takhle při pátku? Jenom kdyby některé servery neměly, ale to je vlastně jedno...

středa 5. ledna 2005

Co dělat, když nefunguje plugin v Eclipse?

Včera jsem se hodinu snažil pomoci dj Padákovi s rozběhnutím jednoho pluginu v IDE Eclipse. Ve výsledku se to sice nepodařilo, bohužel, ale o několik obecných rad, které vždy zabraly, bych se rád podělil. Zároveň uvítám vaše postřehy.

Co je dobré vědět, před instalací

Verze aneb vrána k vráně

Základní pravidlo říká, deploynout pouze pluginy, které jsou určeny pro mnou používanou verzi Eclipse. Eclipse ctí verzování x.y.z, kde x představuje major verzi. Rozdíl mezi major verzemi představuje Eclipse API, se kterým jednotlivé pluginy notně spolupracují. Ypsilon představuje minor version, nejsem si přesně jist, ale i u těchto verzí může dojít ke změnám API, ale pravděpodobně pouze ke změnám zpětně kompatibilním (API se rozšíří). Povýšení verze na úrovni písmena z, představuje pouze servisní zásahy bug fix charakteru.

V současnosti je poslední verzí 3.1 M4, M značí milestone. Bývá pravidlem, že během milestone verzí se API neustále mění. Při vývoji Eclipse 3.0 bylo celkem devět milestone verzí a až kolem verze M7 se dalo mluvit o "zmraženém" API. Navíc rozhodně neplatilo, že čím vyšší verze milestone, tím větší kvalita. Jedna z verzí M8 nebo M9 trpěla výraznější pomalostí. V případě, že používáte milestone verzi Eclipse, nikdo vám funkčnost pluginu nezaručí.

Kam instalovat plugin

Plugin můžete nainstalovat dvěma způsoby. První způsob je přes funkci Install/Update (Help >> Software Updates >> Find and Install), ale to připadá v úvahu pouze pro některé typy pluginu. Každopádně pokud tahle možnost existuje, na stránkách příslušného pluginu najdete postup, aplikujte jí. Minimálně si ušetříte čas v dohledávání závislostí resp. dalších součástí, které plugin potřebuje.

Druhý způsob vychází z předpokladu, že jsme si plugin stáhli a nebo jsem jej někde získaly. Některé pluginy bývají distribuovány v adresářové struktuře, kterou stačí nakopírovat do ECLIPSE_HOME (adresář eclipse). Tuto strukturu poznáte tak, že obsahuje adresář plugins případně adresáře plugins a features. Pokud je v distribučním balíčku pouze samotný adresář, patří zkopírovat do ECLIPSE_HOME\plugins. Po každé instalaci pluginu, je dobré udělat restart celého IDE.

Integrace pluginu

Nezřídka se stává, že uživatel ani pořádně neví (nepřečte si), do jaké části Eclipse se plugin integruje. Někdy je plugin prezentován novým view, perspektivou či wizardem. Pokud má plugin nějaké nastavení, hledejte jej ve Window >> Preferences. Tip pro hard core uživatele, pokud pořád nevíte kam se ten zpropadený plugin integroval, prozkoumejte jeho plugin.xml, kde jsou extension pointy, na které je pověšen (Tak úplně vážně jsem tenhle tip nemyslel).

Kde zjistit nefunkčnost pluginu

Po instalaci pluginu a restartu IDE se může jevit všechno v pořádku, ale plugin nefunguje. Nejprve je nutné zjistit, jestli se plugin podařilo bez chyb nainstalovat. To můžeme ověřit několika způsoby.

  • Help >> About >> Plugin Details (požadovaný plugin nesmí chybět)
  • Help >> Software Updates >> Manage Configuration (požadovaný plugin nesmí chybět)
  • Window >> Show view >> other >> PDE >> Plug-ins (požadovaný plugin nesmí chybět)

Pokud plugin v seznamu není nebo hlásí chybu anebo se chová nekorektně, je dobré prohlédnout Error log. Přímo v Eclipse existuje view Error log, to můžete aktivovat přes Window >> Show view >> Other >> PDE Runtime. Pokud Vám Eclipse vůbec nenastartuje, nezbývá než si tento log přečíst ze souboru ECLIPSE_HOME\workspace\.metadata\.log,. Pokud vás error hlášky neposunou vpřed je dobré ihned využít přítele na šest (Google).

Mezi největší zrady paří závislost pluginu. Stalo se mi například u modelovacích nástrojů, že byly závisle na GEF. Pokud nebyl GEF, a to určitá verze, nainstalován, plugin nefungoval (dá se dohledat v logu a určit Googlem). Pokud by měl být plugin funkční pro vaší verzi Eclipse a stejně Vám nefunguje, vyplatí se udělat instalaci takzvaně do čistého prostředí. To znamená, že nainstalujete úplně znovu Eclipse a do něj nainstalujete pouze vámi požadovaný plugin, případně jeho závislostí.

pondělí 3. ledna 2005

Hibernate 3.0 v beta verzi

20. prosince minulého roku oznámil Gavin King uvolnění verze 3.0 beta 1 ORM frameworku Hibernate. Pokud vývojáři dodrží Hibernate Road Map, tak se můžeme opět těšit na pěknou porci vylepšení.

Související články

neděle 2. ledna 2005

Jzonic Yawiki, čeština bude

Pokud používáte wiki Jzonic Yawiki, pak Vás možná štve absence možnosti nastavit kódování. Vzhledem k tomu, že se mi Yawiki opravdu líbí, neváhal jsem a napsal jsem Andreasy Meckymu, jakožto jejímu autorovi.

Hi Andreas,

thanks to Yawiki. I have problem with page encoding in Yawiki. I dont know, if you have set any encoding information to HTTP response header, but encoding information via meta element in HTML result missed too. This is problem for any other character encoding than ISO-8859-1. For my (czech) is possible encoding Windows-1250, ISO-8859-2, utf-8 and other but no ISO-8859-1. For any other languages or more precisely characters is ISO-8859-1 unusable.

I think that Yawiki should prefer unicode e.g. utf-8. utf-8 is suiteble for any known characters. If i miss correct my, it can be simple to switch encoding to utf-8. You can to do it in Servlet filter

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletRequest)request).setCharacterEncoding("UTF-8"); ((HttpServletResponse)response).setContentType("text/html;charset=UTF-8"); chain.doFilter(request,response); } or change it in controller servlet.

Vzhledem k tomu, že odpověď dlouho nepřicházela, začal jsem si pohrávat s myšlenkou, že můj dotaz zůstal vyset kdesi v chapadlech SPAM filtru. Naštěstí Andreas neměl pouze čas a na Silvestra dorazila potěšující odpověď.

Hi Roman,

sorry that it took some time to answer. I will include the encoding informations in the configuration within the next version. When I find the time I will release a patched version within the next 2 weeks. I will send you an email when the patch is ready.

Andreas