09 stycznia 2009

Wtyczka Grails do Wicketa do...kosza

Liczyłem na to, że popróbuję się z wtyczką Wicket dla Grails, ale się przeliczyłem. To znaczy, popróbowałem się z nią, aż doszedłem do kroku instalacji i...nic.

Dotychczasowa praca z Grails pozwala mi sądzić, że tworzenie aplikacji w Grails to nic innego jak programowanie w Groovy ze wsparciem bibliotek pomocniczych, jak wspomniany Wicket, dzięki pomocy wtyczek. Listę dostępnych wtyczek można sprawdzić poleceniem grails list-plugins.
  jacek@dev ~
$ grails list-plugins
Welcome to Grails 1.1-beta2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:/dev/grails

Base Directory: C:\dev\cygwin\home\jacek
Running script c:\dev\grails\scripts\ListPlugins_.groovy
Environment set to development
...i tutaj cała lista wtyczek
Plug-ins you currently have installed are listed below:
-------------------------------------------------------------

You do not have any plugins installed.

To find more info about plugin type 'grails plugin-info [NAME]'

To install type 'grails install-plugin [NAME] [VERSION]'

For further info visit http://grails.org/Plugins
Wtyczki instaluje się w projekcie grailsowym i są one z nim związane. Wykonanie większości poleceń grails daje inne rezultaty w zależności od projektu. Zgodnie z komunikatami z list-plugins więcej informacji o danej wtyczce można znaleźć wykonując grails plugin-info.
  jacek@dev ~
$ grails plugin-info wicket
Welcome to Grails 1.1-beta2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:/dev/grails

Base Directory: C:\dev\cygwin\home\jacek
Running script c:\dev\grails\scripts\PluginInfo_.groovy
Environment set to development
Reading remote plugin list ...

--------------------------------------------------------------------------
Information about Grails plugin
--------------------------------------------------------------------------
Name: wicket | Latest release: 0.6
--------------------------------------------------------------------------
Provides integration between Grails and the Wicket framework
--------------------------------------------------------------------------
Author: Graeme Rocher
--------------------------------------------------------------------------
Find more info here: http://grails.org/Wicket+Plugin
--------------------------------------------------------------------------

A plug-in that makes Wicket (http://wicket.sourceforge.net/)
the default view rendering framework for Grails.
Wicket is a component oriented framework that, like Grails,
embraces convention-over-configuration approaches.

--------------------------------------------------------------------------
Available full releases: 0.2 0.3 0.4 0.5 0.6
Available zip releases: 0.1

To get info about specific release of plugin 'grails plugin-info [NAME] [VERSION]'

To get list of all plugins type 'grails list-plugins'

To install latest version of plugin type 'grails install-plugin [NAME]'

To install specific version of plugin type 'grails install-plugin [NAME] [VERSION]'

For further info visit http://grails.org/Plugins
Wystarczy, więc zapoznać się z dokumentacją i zdecydować o instalacji wtyczki poleceniem grails install-plugin.
  jacek@dev ~
$ grails install-plugin wicket
Welcome to Grails 1.1-beta2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:/dev/grails

Base Directory: C:\dev\cygwin\home\jacek
C:\dev\cygwin\home\jacek does not appear to be part of a Grails application.
The following commands are supported outside of a project:
create-app
create-plugin
help
list-plugins
package-plugin
plugin-info
set-proxy
Run 'grails help' for a complete list of available scripts.
Czyż nie wspomniałem o tym, że nie mogę wykonać polecenia instalacji wtyczki poza projektem?! Właśnie, a jak stworzyć projekt? Kolejnym poleceniem Grails - grails create-app.
  jacek@dev /cygdrive/c/projs
$ grails create-app
Welcome to Grails 1.1-beta2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:/dev/grails

Base Directory: C:\projs
Running script c:\dev\grails\scripts\CreateApp_.groovy
Environment set to development
Application name not specified. Please enter:
WicketGrailsDemo
[mkdir] Created dir: C:\projs\WicketGrailsDemo\src
...
Created Grails Application at C:\projs/WicketGrailsDemo
Teraz instalacja wtyczki kończy się pomyślnie.
  jacek@dev /cygdrive/c/projs/WicketGrailsDemo
$ grails install-plugin wicket
Welcome to Grails 1.1-beta2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: c:/dev/grails

Base Directory: C:\projs\WicketGrailsDemo
Running script c:\dev\grails\scripts\InstallPlugin.groovy
Environment set to development
Reading remote plugin list ...
[copy] Copying 1 file to C:\Documents and Settings\Administrator\.grails\1.1-beta2\projects\WicketGrailsDemo\plugins
Installing plug-in wicket-0.6
[mkdir] Created dir: C:\Documents and Settings\Administrator\.grails\1.1-beta2\projects\WicketGrailsDemo\plugins\wicket-0.6
[unzip] Expanding: C:\Documents and Settings\Administrator\.grails\1.1-beta2\plugins\grails-wicket-0.6.zip
into C:\Documents and Settings\Administrator\.grails\1.1-beta2\projects\WicketGrailsDemo\
plugins\wicket-0.6
Executing wicket-0.6 plugin post-install script ...
Warning, target causing name overwriting of name default
[mkdir] Created dir: c:\projs\WicketGrailsDemo\grails-app\pages
: Warning: Could not find file c:\projs\WicketGrailsDemo\null\src\templates\WicketApplication.groovy to copy.
at org.apache.tools.ant.taskdefs.Copy.execute(Copy.java:420)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at Script1.run(Script1.groovy:15)
at _PluginDependencies_groovy$_run_closure18.doCall(_PluginDependencies_groovy:416)
at _PluginDependencies_groovy$_run_closure25.doCall(_PluginDependencies_groovy:661)
at _GrailsPlugins_groovy$_run_closure2.doCall(_GrailsPlugins_groovy:78)
at gant.Gant$_dispatch_closure4.doCall(Gant.groovy:306)
at gant.Gant.dispatch(Gant.groovy:316)
at gant.Gant.this$2$dispatch(Gant.groovy)
at gant.Gant.invokeMethod(Gant.groovy)
at gant.Gant.processTargets(Gant.groovy:461)
at gant.Gant.processTargets(Gant.groovy:446)
Error installing plugin: Warning: Could not find file
c:\projs\WicketGrailsDemo\null\src\templates\WicketApplication.groovy
to copy.: Warning: Could not find file
c:\projs\WicketGrailsDemo\null\src\templates\WicketApplication.groovy to copy.
Taa, chciałbym. Niepokojący jest ten null w ścieżce. I dlaczego projekty i wtyczki instalowane są w katalogu domowym użytkownika?! Przeglądając wicket-0.6/scripts/_Install.groovy odniosłem wrażenie, że z jakiś nieznanych mi powodów zmienna "pluginHome" nie jest poprawnie ustawiona, więc...zarzuciłem temat. Za słaby jestem jeszcze z Grails, aby próbować się z tego typu problemami. Zdaje się, że ostatnie zmiany w kodach wtyczki to początek 2008 - 06 March 2008, więc można przypuszczać, że Wicket i Grails to nie jest dobry pomysł na początek poznawania Grails. Zabieram się za inną - cas-client - This plugin provides client integration for JA-SIG CAS. Mam do rozpoznania wykorzystanie CAS w aplikacjach javowych, więc może się uda w połączeniu z Grails.