Jan
20
2008
Filed under Java,PHP by Łukasz Dywicki
Parę dni wstecz trafiłem na ciekawe rozszerzenie Reflection API do PHP. Umożliwia ono używanie tagów phpdoc w charakterze adnotacji. Rozwiązanie te jest zbliżone do znanego mi z Javy xdocleta. Drobną, aczkolwiek zauważalną, różnicą jest fakt, że xdoclet był odpalany przed kompilacją kodu ponieważ bytecode nie zawierał adnotacji. Oczywiście po wejściu Javy 5 xdoclet podupadł, jako coś co wyparły właśnie adnotacje. Może dla tych, którzy nie mieli okazji spotkania sie z takim rozwiązaniem drobny przykład kodu w Javie: Continue Reading »
Dec
29
2007
Filed under Java by Łukasz Dywicki
Nigdy bym nie pomyślał, że stworzenie nowej aplikacji w oparciu o J2EE będzie tak trudne. A jednak, mimo wszystko, jest!
Zachwycony prostotą rozwiązania wbudowanego w standard, mianowicie roli i mapowania adresów, postanowiłem je wykorzystać. JSF mimo całej swej wspaniałości, mechanizmu autoryzacji nie dostarcza.
Continue Reading »
Dec
02
2007
Filed under Agavi,Eclipse,Wiadomości by Łukasz Dywicki
Cały dzisiejszy dzień poświęciłem na zbudowanie szkieletu modelu pod Agavi IDE. W trakcie dnia zaszło kilka nagłych zwrotów akcji na miarę dobrego filmu sensacyjnego ;). Początkowo pragnąłem wykorzystać Eclipse Modeling Framework do zarządzania obiektami. Wszystko szło gładko, dopóki nie spróbowałem wygenerować kodu wolnego od zależności EMF. Koniec końców dowiedziałem się, że z EMF nie da się wygenerować zwykłych Java Beanów. Niestety, ale zarządzanie wszystkim poprzez otoczkę EMF niezbyt mi się uśmiechało. Model trzymany w pamięci nie potrzebuje wodotrysków, mogą to być zwykle POJO.
Przepisałem więc cały kod sam, na nowo. Diagram, który początkowo ilustrował całą strukturę, troszkę się zmienił, nie mniej wersję bazową załączam na obrazku.
Continue Reading »
Nov
30
2007
Filed under Agavi,DB,Inne,Java,Wiadomości,XML by Łukasz Dywicki
Dnia dzisiejszego zmobilizowałem się by nieco popracować nad modelem dla Agavi IDE. Jest to podstawa bez której ciężko budować kolejne edytory. Trzeba w końcu wiedzieć jakie akcje, widoki etc są w projekcie by sugerować użytkownikowi poprawne wartości.
Jak donosi Michał Mech na swoim blogu, konkurencja nie śpi i wszczęła prace nad integracją Eclipse i Symfony – tak też narodziło się Symfoclipse. Stąd straciłem już palmę pierwszeństwa i pozostaje mi walczyć na polu jakości i funkcjonalności. Zend również serwuje wsparcie dla Zend Framework, aczkolwiek po prezentacji miałem mieszane uczucia. Przede wszystkim lektor mówiący z paskudnym angielskim akcentem. Nie wiem, może jestem wyczulony, ale gdy słyszę te fonetyczne wygibasy to mnie to mierzi, może dla jednych to plus, ale dla mnie lepszym sprzedawcą produktu jest ktoś kto mówi o swoim projekcie chociażby z francuskim akcentem niż wynajęty lektor, który ma pomnożyć wrażenie “powagi” przedsięwzięcia. Na drugim miejscu jakość “wsparcia”, bo inaczej jak w cudzysłowach tego nie mogę określić, jest po prostu żenująca. Czy mi się wydaje czy oni każą sobie płacić za dodanie kreatora (wizzarda)? ;) Coś mi się wydaje, że załoga PHP Eclipse dobrze robi ponownie zwierając szyki!
Oczywiście przy pisaniu napotkałem problemy. Pierwszym z nich było zniknięcie klasy buildera, drugim wywalanie się db4o (dev 7.0). O ile pierwszy uraczył mnie gromadą logów o tyle drugi poza pokaźnym stosem nie dał mi nic. Typ wyjątku com.db4o.ext.ObjectNotStorableException – nazwa w miarę jasna, problem w tym, że za tym żadnego uzasadnienia, powodu dla którego wyjątek by leciał. Zero, dosłownie zero informacji.
Na forum db4o znalazłem parę postów – z nich wyciągnąłem wniosek – konieczne jest użycie taska ant, który zmodyfikuje bytecode klasy, ponieważ w przeciwnym wypadku db4o próbuje serializować obiekt, a gdy mu się nie uda rzuca w/w wyjątek.
Skrypt ant – który załatwia problem, dla potomnych (przeróbka z forum):
<project name="db4o enhance project" default="enhance" basedir=".">
<!-- inny projekt z workspace'a -->
<property name="model.classes.location" location="E:/agavi-ide/org.codehouse.model" />
<!--
położenie eclipse, db4o szpera w poszukiwaniu zależności klas, tak się składa,
że mój kod korzysta z paru rzeczy z org.eclipse.core.resources, normalnie ta
wstawka się nie pojawia
-->
<property name="eclipse.location" location="E:/eclipse-3.3/eclipse" />
<target name="pack-model">
<echo message="Tworzę archiwum z modelem" />
<jar destfile="lib/model.jar">
<fileset dir="${model.classes.location}/bin/">
<!-- włączamy wszystkie skomilowane klasy -->
<include name="**/*.class" />
</fileset>
</jar>
</target>
<!-- classpath dla projektu -->
<path id="project.classpath">
<pathelement path="${basedir}/bin" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${eclipse.location}/plugins/">
<include name="**/*.jar" />
</fileset>
</path>
<!-- odwołanie do taska z db4o-tools.jar -->
<taskdef name="db4o-enhance" classname="com.db4o.enhance.Db4oEnhancerAntTask" classpathref="project.classpath" />
<target name="enhance" depends="pack-model">
<!-- przeoranie źródeł i zależności -->
<db4o -enhance classtargetdir="${basedir}/bin" jartargetdir="${basedir}/lib">
<classpath refid="project.classpath" />
<sources dir="${basedir}/bin" /> <!-- w tym katalogu db4o zajmie się plikami .class -->
<jars dir="${basedir}/lib">
<include name="*.jar" />
<exclude name="db4o-*.jar" />
<exclude name="ant.jar" />
<exclude name="bloat-1.0.jar" />
</jars>
</db4o -enhance>
</target>
</project>
Nov
28
2007
Filed under Java,JAXB,XML by Łukasz Dywicki
Z ostatnich not zebrało mi się kilka obietnic. Jedną z nich było omówienie pluginów w wydaniu JAXB. Jako, że dzisiaj urządziłem sobie wolny dzień postanowiłem wywiązać się przynajmniej z części obowiązków z tym i z tych blogowych.
Continue Reading »
Nov
20
2007
Filed under Java,JAXB,Wiadomości by Łukasz Dywicki
W sobotę 17 listopada odbyła się WarsJava. Seria warsztatów realizowana przez Warszawski JUG, a dokładniej przez dwie osoby (kolejność losowa) Jacka Laskowskiego i Łukasza Świerczyńskiego.
Continue Reading »
Nov
15
2007
Filed under DB,Java,Wiadomości by Łukasz Dywicki
Wczoraj do mojej skrzynki trafił newsletter z db4o, w którym trafiłem na dwie informacje. Pierwsza głosi, że db4o w wersji 6.4 jest gotowe do zastosowań produkcyjnych. Druga, że dostępna jest beta wersji 7.0 z nowym mechanizmem o nazwie ‘transparent activation’. Postanowiłem zajrzeć do szczegółów, które tyczą się najnowszej wersji. Wynikiem czego jest to dosyć luźne tłumaczenie.
Continue Reading »
Nov
09
2007
Filed under Java,JAXB,PHP,XML by Łukasz Dywicki
Integracja między językami czy też platformami to kwestia poruszana nie od dzisiaj. Na poziomie platform funkcjonuje od dłuższego czasu CORBA i Web Services z trio SOAP + WSDL + XML Schema na czele. Integracja systemów napisanych w tym samym języku sprowadza się zwykle do wykorzystania serializacji, która jest najszybsza i najwygodniejsza. Gorzej jeśli idzie o połączenie dwóch języków – w moim przypadku PHP i Javy.
Zend ma swój mostek, który umożliwia na zintegrowanie Javy i PHP, jest też dodatkowe rozszerzenie do PHP, które pozwala na wykorzystanie Javy w PHP, jednakże moje oczekiwania nie był aż tak wielkie. Potrzebowałem po prostu odczytać dane specyficzne dla PHP – powiedzmy informacje o jakiejś klasie. Standardowo taka operacja wymagała stworzenia parsera, co jest zadaniem powiedzmy, nie na moje siły i umiejętności.. stąd też postanowiłem sobie nieco uprościć pracę. :)
Continue Reading »
Nov
07
2007
Filed under Agavi,Eclipse,Java,JAXB,PHP,SWT,Wiadomości,XML by Łukasz Dywicki
Czas jakiś temu udało mi się stworzyć pierwszy działający edytor w oparciu o Eclipse.
Kilka informacji co pod spodem:
- SharedHeaderFormEditor – ładny tekstowy nagłówek oraz możliwość dodawania zakładek
- FormPage i FormToolkit – użyte do stworzenia układu, który widać na załączonym obrazku
- JFace Databinding – zapewnia propagowanie zmian z formularza do obiektów
- JAXB 2 – mapowanie plików XML do odpowiednich klas
- JFace – table viewer i parę innych dodatków
Całość ogólnie jest prosta niczym konstrukcja cepa, w działaniu sprawia się dobrze. Jak tylko ogarnę kod postaram się opisać krok po kroku jak można coś podobnego stworzyć na własny użytek.
Splatch wraca do gry i będzie grać wysoko! ;-)
Oct
25
2007
Filed under Eclipse,Śmieci by Łukasz Dywicki