Archiwum kategorii 'technika' Category

07
sty

półtechnicznie

w poznaniu otworzyło się centrum wsparcia ;) będzie bez nazwisk ;). IBM Eclipse Support Center to wspólna inicjatywa Politechniki Poznańskiej oraz ww. IBM. zapowiada się ciekawie, mam nadzieję, że zaniedługo obydwie strony porozumienia stwierdzą, iż było warto zainwestować czas, chęci i pieniądze. odbyła się też uroczysta otwierająca kolacja ;) smacznie było.

dodatkowo padła idea rozpowszechnienia Eclipse w polskich środowiskach akademickich i nie tylko. pomysły są teraz potrzeba czasu i podatnego gruntu :)

03
paź

XStream

Zacznijmy od rzeczy prostych, żeby nie mówić trywialnych XStream . Biblioteka pozwala nam na wygodną serializację obiektów do postaci XML. Żeby się nie chwalić po puściźnie tego rozwiązania zerknijmy na prosty przykład:

Mamy beana

public class Book {
private String title;
private String author;
private String description;
public Book(String title, String description) {
this.description = description;
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getAuthor() {
return author;
}
public String getTitle() {
return title;
}
}

A oto sposób jak go serializować:


public class Serializer {
/**
* @param args
*/
  public static void main(String[] args) {
    Book book = new Book(”Rok 1984″, “George Orwell”);
    XStream xStream = new XStream();
    System.out.println(xStream.toXML(book));
  }
}

Co z tego otrzymamy ?


<org.nugae.model.Book>
  <title>Rok 1984</title>
  <author>George Orwell</author>
</org.nugae.model.Book>

Okazuje się, że możemy usunąć wszystkie gettery i nadal będzie działało. XStream korzysta z mechanizmu konwerterów. Mechanizm jest rozszerzalny i w następnym odcinku ;) zrobimy sobie własne ;). Biblioteka dostarcza konwertery do większości kolekcji, typów prostych etc. (możecie sobie sprawdzić w dokumentacji. Zawiera również ten, który zadziałał w naszym przypadku, który oparty jest o mechanizm refleksji a nazywa się ReflectionConverter.

Polecam napisanie swojego przykładu, w którym dokonacie serializacji kolekcji książek.

Na koniec dość przydatny wodotrysk. Jak już pewnie zauważyliście nazwą węzła, w którym wylądowały dane jest pełną nazwą pakietową klasy Book. Ma to zarówno uzasadneinie estetyczne jak i użytecznościowe.

Zmiana nazwy węzła jest dokonywana w klasie XStream:

xStream.alias("book", Book.class);

jak widać wystarczy dodać alias do odpowiedniej klasy.
Zostały jeszcze dwa ważne aspekty do omówienia. Pierwszy dotyczy materializacji powiązań pomiędzy serializowanymi obiektami. Druga sprawa to zrozumienie sposobu działania konwerterów.

02
paź

Starting up

Zacznijmy od tego, że głownie interesuję się obecnie tematami około języka Java. Pole do popisu jest spore nawet jeżeli poruszamy się w okolicach tylko jednego J2*E. Chciałbym się podzielić kilkoma kwestiami związanymi z J2EE chociaż puryści pewnie stwierdzą, że związek ten jest mizerny. Chodzi mianowicie o koncepcję lekkich rozwiązań, z którymi miałem styczność podczas pisania pracy magisterskiej. WebWork stanowił szkielet mojego rozwiązania.

W kontekscie ogólnych rozważań na temat tego frameworka nie będzie pewnie nic ponad to co można znaleźć na stornach projektu. Jednak może komuś się informacja przekazana w naszym rodzimym przyda.

Chętnie podzieliłbym się również informacjami na temat programowania pluginów do Eclipse. Ale tych opracowań jest tyle, że nie wiem czy jest sens wtykać swój średniodoświadczony nos.

Zresztą w okolicach webworkowych jest spore pole do popisu:
springowy kontener w konwencji IOC, warstwa prezentacji oparata o cokolwiek (w moim przypadku o Freemarkera, serializacja do xml’a z wykorzystaniem najprostrzego z możliwych rozwiązań czyli XStream’a. do tego jeszcze rozważania na temat wsparcia dla Hibernate i okolic bazodanowych. do tego można całość ubrać w spólny garniturek Sitemesh. to jest przepis na swojego weba. niestety nie jest on ani przesadnie prosty, ani tani. ja bazuje na domowych rozwiązaniach partyzanckich czyli serwerek obciąża prywatnego procka. hosting krajowy rozwiązań opartych o Javę jest w najlepszym przypadku 10x (!sic) droższy od PHP więc do moich zabaw musi wystarczyć lokalny Tomcat.

WebWork sam w sobie nie jest jakiś wybujały. Ale jeżeli chemy naszą aplikację obłożyć dodatkową funkcjonalnością powstaje spore wiaderko wiedzy do przerobienia.

Tylko czy inwestycja się opłaci? Myślę, że nawet dla osób, które są średniozainteresowane zgłębianiem technologii webowych, poznanie WebWorka będzie spojrzeniem na praktyczne wykorzystanie wzorców projektowych etc. więc się przyda. Z drugiej strony WebWork to nie Spring, który zdobywa rzesze oddanych wyznawców.