- SOA/BPM/BAM Track
- Weblogic ADF Track
- Java Track

- Rapid Java EE 6 Application Development
- Geting Started With Pluggable Desktop Development
- Java EE Web Services
- What's New in NetBeans IDE 7.1

Nie będzie Nebeans 6.10 - zamiast tego zdecydowano na zmianę numeracji i przyznanie zaszczytnego i szczęśliwego numeru 7.0 dla nowej wersji Netbeans. Zapewne dlatego, że nowe NB ma wspierać JDK7 - w ten sposób numerki się zgadzają ;) Spis nowości dostępny jest pod linkiem http://wiki.netbeans.org/NewAndNoteworthyNB610
Rozpoczął się też nowy program NetCAT dla Netbeans 7.0. Jeżeli ktoś ma chwilę wolnego czasu można się zapisać. Dla tych co nie wiedzą co to NetCAT: http://wiki.netbeans.org/NetCAT
Długo mnie nie było, ale porobiły się duże zmiany w moim życiu osobistym ;) i mam nadzieję pojawiać się teraz częściej.
Netbeans (nawet najnowszy 6.9.1) ma błąd, który "psuje" plik antowy jeżeli chcemy wrzucać klasy Grooviego do testów. Dostajemy na konsoli:
Compiling 1 source file to /Users/piotrzalewski/NetBeansProjects/JavaApplication5/build/classes compile: /Users/piotrzalewski/NetBeansProjects/JavaApplication5/nbproject/build-impl.xml:725: Unknown attributes [apgeneratedsrcdir, processorpath] BUILD FAILED (total time: 5 seconds)
Zgłaszałem to jako buga na netbeans.org, został przypisany i trochę zignorowany :(. A szkoda, bo pisanie testów w Groovym jest łatwiejsze i wygodniejsze.
Postanowiłem więc mimo wsystko na tym posiedzieć i poszukać rozwiązania.
Są dwa problemy do rozwiązania:
Dla piewszego problemu znalazłem japońskie rozwiązanie pod http://feather.cocolog-nifty.com/weblog/2010/06/netbeans69groov.html. Do pliku groovy-build.xml należy dodać definicje atrybutów:
<attribute default="${javac.processorpath}" name="processorpath"/>
<attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/>
w sekcji makrodefinicji dla "javac".Drugi problem był łatwiejszy i rozwiązanie w bardziej ludzkim języku:
http://charliesquires.wordpress.com/2009/08/30/running-groovy-tests-in-netbeans-6-7-1/
Podany kod należy wkleić między tagi Uff - od razu łatwiej ;)
<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
<j2seproject3:junit testincludes="**/*Test.class"/>
</target>
<target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single">
<fail unless="test.includes">Must select some files in the IDE or set test.includes</fail>
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpath="${javac.classpath}"/>
<groovy>
properties."test.includes.class" = properties."test.includes".split("\\.")[0] + ".class"
</groovy>
<j2seproject3:junit excludes="" includes="${test.includes.class}"/>
</target>
<target name="-init-macrodef-junit">
<macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3">
<attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/>
<attribute default="**" name="testincludes"/>
<sequential>
<junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
<batchtest todir="${build.test.results.dir}">
<fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes}" includes="@{includes}">
<filename name="@{testincludes}"/>
</fileset>
</batchtest>
<classpath>
<path path="${run.test.classpath}"/>
</classpath>
<syspropertyset>
<propertyref prefix="test-sys-prop."/>
<mapper from="test-sys-prop.*" to="*" type="glob"/>
</syspropertyset>
<formatter type="brief" usefile="false"/>
<formatter type="xml"/>
<jvmarg line="${run.jvmargs}"/>
</junit>
</sequential>
</macrodef>
</target>
A w samym tagu project dodać:xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3"
Mam nowy nieduży projekt aplikacji standalone, postawiłem więc zapoznać się przy okazji z Griffonem. Griffon (http://griffon.codehaus.org/) jest frameworkiem (1) do pisania w Groovym aplikacji w Swingu. Ma ogromne wsparcie do pisania w sposób zgodny z MVC (wzorzec projektowy Model-View-Controler) - prawie się nie da zepsuć tego wzorca korzystając z Griffona :)
Zacząłem od wyboru IDE dla Groovego i na tym trochę utknąłem. Google zwraca sporo wyników, ale większość jest dość starych - a w technologi mocno rozwijającej się wszystko się zmienia z miesiąca na miesiąc. Ludzie byli dość zgodni, że jednym z najlepszych jest na pewno IntelliJ IDEA, ale niestety jest płatne. Zostałem z Eclipsem vs. Netbeans. Z tych dwóch Netbeans jest mi bardziej znane i chyba będzie łatwiejsze w użyciu - wsparcie dla groovego jest standardowo dostępne od wersji 6.7, a właśnie niedawno pokazała się wersja 6.9Beta. Jakby dla zupełnego przekonania mnie o tym pokazała się nowa wtyczka specjalnie dla Griffona (http://blogs.sun.com/geertjan/entry/griffon_and_netbeans_ide_61) - o ile mi wiadomo Eclipse nie dorobił się jeszcze wtyczki ułatwiającej prace z Griffonem.
Instalacja wtyczki jest prosta:
- pobrałem plik zip
- rozpakowałem
- w Netbeans wybrałem Tools->Plugins, zakładka Downloaded, przycisk Add Plugins i wskazałem oba pliki *.nbm.
- klik na Install i pierwszy problem - moja wersja 6.9Beta (na MacOSX) ma wbudowane pluginy do groovego z dnia 2010-04-20, a wtyczka do griffona wymaga ich z dnia 2010-04-21 - dziwna sprawa.
- spróbuję więc z Netbeans w wersji "night build" - w końcu w tej chwili do codziennych buildów trafiają chyba tylko poprawki do wersji Beta, więc nie powinno być.
- i niestety dostaję ten sam błąd - wygląda, że w pluginie jest wpisane na stałe jaką dokładnie wersje powinien mieć Groovy Support, nowsza też odpada - dla MacOs jest to niestety nie trafione. Wpisałem komentarz na strone autora - zobaczymy jutro.
I tak skończyła się na razie "łatwa instalacja" ;)
Sprawdziłem w domu na windowsie niestety także jest to wersja inna niż wymagana przez ten plugin. Wygląda na to, że na razie tylko na Linuxie działa ;) Dopisałem o windowsie i poczekam na reakcje autora.
(1) framework - zbiór blibliotek? ktoś proponował tłumaczenie "szkielet" które chyba jest najlepsze
