Polecam prezentację w której Steve Vinoski przedstawia opinię wedle której usługi REST znakomicie nadają się do realizacji koncepcji SOA: http://www.infoq.com/presentations/rest-vinoski.
Dodatkowo polecam 2 artykuły na temat założeń usług w koncepcji REST (REpresentational State Transfer):
http://www.infoq.com/articles/rest-introduction
http://www.infoq.com/articles/rest-anti-patterns
oba autorstwa Stefan Tilkova.
niedziela, 20 lipca 2008
niedziela, 13 lipca 2008
polski słownik do eclipse
Eclipse od wersji 3.3 pozwala na sprawdzanie pisowni komentarzy JavaDoc. Jest to dobra rzecz, jeśli poważnie myślimy o wykorzystaniu tworzonego kodu w przyszłości i traktujemy dokumentację kodu jako kluczowy element.
Domyślnie sprawdzanie pisowni działa tylko w języku angielskim. Szukałem gotowego polskiego słownika do eclipse, ale nie udało mi się niczego znaleźć. Postanowiłem więc utworzyć taki słownik. Eclipse wymaga najprostrzego możliwego formatu: jeden wyraz w jednej linii, więc zadanie było łatwe, do rozwiązania była jedynie kwestia "kontentu". Sprawdziłem słowniki ispell, jednak nie udało mi się znaleźć skompilowanej (zawierającej wszystkie odmiany wyrazów) wersji. Na szczęscie aspell okazał się przyjazdny - do dyzpozycji mamy nie tylko pełny polski słownik, ale również możemy uruchamiać komendę aspell w cygwin.
Po kilku operacjach udało się wygenerować wymagany przez eclipse plik.
Należało wykonać następujące operacje (z linii komend w cygwin lub pod linuxem):
1. wygenerować wszystkie wyrazy z polskiego słownika:
2. przekonwertować plik do postaci jeden wyraz w jednej linii:
3. przekodować plik z iso-8859-2 na utf-8:
na koniec w elipse w menu preferences: General > Editors > Text Editors > Spelling ustawiamy User Definined dictionary na nasz słownik. Proponuję również zmniejszyć ilość prawidłowych podpowiedzi do 5.
Teraz po ponownym otwarciu plików źródłowych z polskimi komentarzami mamy już sprawdzanie pisowni prawie jak w wordzie :-).
A jeśli jakiś wyraz jest błędy - eclipse podpowie nam prawidłową wersję wyrazu gdy klikniemy Ctrl-1 (tak samo jak z kodem).
Jeśli ktoś będzie zainteresowany - mogę wystawić gotowy plik ze słownikiem (licencja raczej nie stanowi problemu).
(polish dictionary eclipse)
Źródła:
- Słownik pochodzi ze strony: http://aspell.net/win32/. (Wszystkie prawa należą do twórców słownika).
- manual do aspell
- cygwin
Domyślnie sprawdzanie pisowni działa tylko w języku angielskim. Szukałem gotowego polskiego słownika do eclipse, ale nie udało mi się niczego znaleźć. Postanowiłem więc utworzyć taki słownik. Eclipse wymaga najprostrzego możliwego formatu: jeden wyraz w jednej linii, więc zadanie było łatwe, do rozwiązania była jedynie kwestia "kontentu". Sprawdziłem słowniki ispell, jednak nie udało mi się znaleźć skompilowanej (zawierającej wszystkie odmiany wyrazów) wersji. Na szczęscie aspell okazał się przyjazdny - do dyzpozycji mamy nie tylko pełny polski słownik, ale również możemy uruchamiać komendę aspell w cygwin.
Po kilku operacjach udało się wygenerować wymagany przez eclipse plik.
Należało wykonać następujące operacje (z linii komend w cygwin lub pod linuxem):
1. wygenerować wszystkie wyrazy z polskiego słownika:
aspell --lang=pl dump master | aspell --lang=pl expand > wyrazy_pl.txt
2. przekonwertować plik do postaci jeden wyraz w jednej linii:
tr ',' '\n' < wyrazy_pl.txt > wyrazy2_pl.txt
3. przekodować plik z iso-8859-2 na utf-8:
iconv -f iso-8859-2 -t utf-8 wyrazy2_pl.txt > eclipse_pl.dict
na koniec w elipse w menu preferences: General > Editors > Text Editors > Spelling ustawiamy User Definined dictionary na nasz słownik. Proponuję również zmniejszyć ilość prawidłowych podpowiedzi do 5.
Teraz po ponownym otwarciu plików źródłowych z polskimi komentarzami mamy już sprawdzanie pisowni prawie jak w wordzie :-).
A jeśli jakiś wyraz jest błędy - eclipse podpowie nam prawidłową wersję wyrazu gdy klikniemy Ctrl-1 (tak samo jak z kodem).
Jeśli ktoś będzie zainteresowany - mogę wystawić gotowy plik ze słownikiem (licencja raczej nie stanowi problemu).
(polish dictionary eclipse)
Źródła:
- Słownik pochodzi ze strony: http://aspell.net/win32/. (Wszystkie prawa należą do twórców słownika).
- manual do aspell
- cygwin
niedziela, 1 czerwca 2008
jboss + mdb w ejb3 + activemq
Jesli ktos mial problem z uruchomieniem MessageDrivenBean dla ejb3 na serwerze aplikacji JBoss i borykal sie z wyjatkiem:
... javax.naming.NameNotFoundException: DefaultJMSProvider not bound ...,
oto krotki artykul opisujący jak to zrobić:
http://cwiki.apache.org/ACTIVEMQ/using-activemq-with-ejb3-jboss-example.html .
... javax.naming.NameNotFoundException: DefaultJMSProvider not bound ...,
oto krotki artykul opisujący jak to zrobić:
http://cwiki.apache.org/ACTIVEMQ/using-activemq-with-ejb3-jboss-example.html .
niedziela, 25 maja 2008
prezentacja OSGi na bazie SpringFramework
W znakomitym serwisie parleys.com (naprawdę polecam jako miejsce w którym można znaleźć wiele arcykiekawych prezentacji ) natrafilem na prezentację dotyczącą wykorzystania OSGi na bazie Springa.
Pierwsza częsć to niezwykle jasne przedstawienie OSGi - chyba najlepsze jakie widzialem w sieci. W drugiej czesci dowiemy sie o tym jak Spring ulatwia oparcie budowanego systemu na OSGi.
Pierwsza częsć to niezwykle jasne przedstawienie OSGi - chyba najlepsze jakie widzialem w sieci. W drugiej czesci dowiemy sie o tym jak Spring ulatwia oparcie budowanego systemu na OSGi.
sobota, 10 maja 2008
Sun pracuje nad komponentem renderującym HTMLa z prawdziwego zdarzenia
Cos czego zawsze brakowalo desktopowej javie to komponent slużący do renderowania HTMLa, umożliwiający zagnieżdżenie przeglądarki. Istnieje kilka rozwiązań opartych JNI wykorzystujących natywne przeglądarki takie jak JDic, a ostatnio reaktywownay JDicPlus czy obiecujący DJNativeSwing , ale są problemy z ich pracą na mniej popularnych platformach, a i możliwosci integracji sa mocno ograniczone.
Dlatego tak bardzo ucieszyly mnie wiesci z tegoroczonej konferencji JavaOne.
Na jednej z prezentacji JavaFX pokazano demo wykorzystujące nowy komponent opracowany przez Sun o nazwie JWebPane, który jest rendererem HTMLa stworzonym calkowicie w Javie. Inne jego cechy to: obsluga JavaScript i renderowanie zagnieżdżonych komponentów Swing (choc oczywiscie sam JWebPane jako komponent Swing też można zagnieździć).
Pytanie oczywiscie jak to będzie wyglądalo w praktyce, jak np. ze wsparciem dla CSS.
Pozostaje poczekać, aż komponent będzie szerzej dostępny.
Źródla:
http://floris.ouwendijk.nl/blog/index.php?blog=2&title=javaone_day_1&more=1&c=1&tb=1&pb=1
http://www.adam-bien.com/roller/abien/entry/what_s_actually_interesting_about
Dlatego tak bardzo ucieszyly mnie wiesci z tegoroczonej konferencji JavaOne.
Na jednej z prezentacji JavaFX pokazano demo wykorzystujące nowy komponent opracowany przez Sun o nazwie JWebPane, który jest rendererem HTMLa stworzonym calkowicie w Javie. Inne jego cechy to: obsluga JavaScript i renderowanie zagnieżdżonych komponentów Swing (choc oczywiscie sam JWebPane jako komponent Swing też można zagnieździć).
Pytanie oczywiscie jak to będzie wyglądalo w praktyce, jak np. ze wsparciem dla CSS.
Pozostaje poczekać, aż komponent będzie szerzej dostępny.
Źródla:
http://floris.ouwendijk.nl/blog/index.php?blog=2&title=javaone_day_1&more=1&c=1&tb=1&pb=1
http://www.adam-bien.com/roller/abien/entry/what_s_actually_interesting_about
wtorek, 29 kwietnia 2008
dobry link: Migrating to Maven 2 (Part 1)
Dla zainteresowanych i rozważających wykorzystanie Apache Maven 2 do budowania i ogólnie zarządzania cyklem życia aplikacji, Jim Bethancourt na swym blogu publikuje dobry tekst wprowadzający do tego narzędzia :
http://java.dzone.com/news/migrating-maven-2-part-1-0.
http://java.dzone.com/news/migrating-maven-2-part-1-0.
poniedziałek, 28 kwietnia 2008
Przygotowanie aplikacji dystrybuowanej poprzez Java Webstart
Technologia Webstart pozwala uruchamianie aplikacji desktopowych Java poprzez przeglądarkę. Użytkownik pobiera plik deskryptora aplikacji JNLP, który zawiera opis wszystkich niezbędnych do pobrania bibliotek oraz klasy uruchomieniowej. Moduł webstart będący częścią pakietu JRE odczytuje plik JNLP i pobiera najnowszą wersję wskazanych bibliotek (o ile się zmieniły) oraz uruchamia aplikację.
Przygotowanie wersji webstart naszej aplikacji wymaga utworzenia pliku JNLP, przygotowania i podpisania bibliotek jar oraz umieszczenia wszystkiego na serwerze tak aby całość była dostępna poprzez protokół http.
W automatyzacji tego procesu może pomóc nam wtyczka do Maven2 o nazwie webstart-maven-plugin.
Będziemy potrzebowali:
- pliku z kluczem (możemy go wygenerować za pomocą keygen)
- szablonu pliku JNLP:
Do pliku pom.xml dodajemy opis nowej wtyczki:
Następnie uruchamiamy:
Możliwe problemy:
Wszystko się zbudowało bez błędu, ale podczas uruchamiania pojawia się błąd:
JAR resources in JNLP file are not signed by the same certificate
Rozwiązanie:
Prawdopodobnie któraś z załączanych bibliotek była wcześniej podpisana. Niestety w takiej sytuacji maven nie zgłasza błedu.
Można jednak łatwo sprawdzić czy taka sytuacja nie miała miejsca analizując wyświetlane komunikaty podczas budowania - wtyczka webstart-maven-plugin wyświetli dla niej:
XYZ.jar is already signed. Skipping.
W takiej sytuacji musimy usunąć podpis z takiej biblioteki i ponownie zbudować projekt.
Referencje:
http://java.sun.com/docs/books/tutorial/jar/sign/signing.html
http://forum.java.sun.com/thread.jspa?threadID=704775&messageID=4086848
Przygotowanie wersji webstart naszej aplikacji wymaga utworzenia pliku JNLP, przygotowania i podpisania bibliotek jar oraz umieszczenia wszystkiego na serwerze tak aby całość była dostępna poprzez protokół http.
W automatyzacji tego procesu może pomóc nam wtyczka do Maven2 o nazwie webstart-maven-plugin.
Będziemy potrzebowali:
- pliku z kluczem (możemy go wygenerować za pomocą keygen)
- szablonu pliku JNLP:
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="1.0+"
codebase="http://localhost:8080/webstart/"
href="$outputFile">
<information>
<title>Moja aplikacja 123</title>
<vendor>3e software house <vendor/>
<homepage>http://3e.pl<homepage/>
<description kind="one-line"> </description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.4+"
initial-heap-size="32m"
max-heap-size="128m"
/>
$dependencies
</resources>
<application-desc main-class="$mainClass">
<argument>1</argument>
<argument>2</argument>
</application-desc>
</jnlp>
Do pliku pom.xml dodajemy opis nowej wtyczki:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>webstart-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jnlp</goal>
</goals>
</execution>
</executions>
<configuration>
<dependencies>
<excludes>
<exclude>commons-lang:commons-lang</exclude>
</excludes>
</dependencies>
<jnlp>
<inputTemplate>src/main/jnlp/template.vm</inputTemplate>
<outputFile>test.jnlp</outputFile>
<mainClass>com._3e.TestWebStart.MainWindow</mainClass>
</jnlp>
<sign>
<keystore>${project.basedir}/keystore/naszklucz</keystore>
<keypass>KODKLUCZA</keypass>
<storepass>KODPRZECHOWANIA</storepass>
<!--sigfile>m2m2m2</sigfile-->
<alias>AliasPlikuKlucza </alias>
<validity>180</validity>
<dnameCn>www.example.com</dnameCn>
<dnameOu>None</dnameOu>
<dnameO>ExampleOrg</dnameO>
<dnameL>Seattle</dnameL>
<dnameSt>Washington</dnameSt>
<dnameC>US</dnameC>
<verify>true</verify>
</sign>
<verbose>false</verbose>
</configuration>
</plugin>
Następnie uruchamiamy:
mvn install webstart:jnlp
Możliwe problemy:
Wszystko się zbudowało bez błędu, ale podczas uruchamiania pojawia się błąd:
JAR resources in JNLP file are not signed by the same certificate
Rozwiązanie:
Prawdopodobnie któraś z załączanych bibliotek była wcześniej podpisana. Niestety w takiej sytuacji maven nie zgłasza błedu.
Można jednak łatwo sprawdzić czy taka sytuacja nie miała miejsca analizując wyświetlane komunikaty podczas budowania - wtyczka webstart-maven-plugin wyświetli dla niej:
XYZ.jar is already signed. Skipping.
W takiej sytuacji musimy usunąć podpis z takiej biblioteki i ponownie zbudować projekt.
Referencje:
http://java.sun.com/docs/books/tutorial/jar/sign/signing.html
http://forum.java.sun.com/thread.jspa?threadID=704775&messageID=4086848
Subskrybuj:
Posty (Atom)