Nawigacja w Vaadin z użyciem Guice

I kolejny temat około pracowy mi wyszedł. Zaczęło się od tweeta: Assisted injection providera w providera tworzenego z factory za pomocą Assisted injection #java kurwa! #guice kurwa! #spring ssie — Bartek Kuczynski (@koziolek) February 7, 2015 I generalnie tu pojawił się pomysł na wpis. Problem Chcemy by nasze View w Vaadin mogły być tworzone w […]

Guice, Vaadin 7 i Shiro – ale to już było

Trochę retrospektywny wpis, bo o podobnym miksie wspominałem już kiedyś. Wtedy chodziło jednak o Vaadin 6. Późnej popełniłem wpis o integracji Vaadin 7 i Guice. Dziś uzupełnię go o krótkie know-how w temacie integracji z Shiro. Naprawdę krótkie, bo bazując na poprzednich wpisach na pewno dasz sobie radę z takimi banałami tworzenie konfiguracji mavena czy […]

Vaadin 7 i Guice 3.0, czyli o prostocie rzeczy niemożliwych

Wprowadzenie Vaadin 7 oznaczało całkowicie nową filozofię tworzenia aplikacji. Wiele elementów frameworku napisano od nowa. Tym samym na drzewo wysłano cały know-how dotyczący integracji pomiędzy Vaadin i innymi frameworkami. Głównym problemem stało się to jak obecnie wygląda zarządzanie główną klasą aplikacji. We wcześniejszych wersjach pod spodem po prostu tworzono nowy obiekt przez refleksję w serwlecie, […]

Active Record z Google Guice i JPA cześć III

Wczoraj pracując nad kodem stwierdziłem, że należy przeprowadzić drobną refaktoryzację. W jej wyniku powstała klasa JPAToolkit, która zajmuje się komunikacją z bazą danych. Dzięki temu wyeliminowałem zależność od EntityManager w klasach encji. W kolejnych krokach zapewne uogólnię i tą zależność do interfejsu i tym samym nie będzie istotne czy implementacja opera się o JPA czy […]

Active Record z Google Guice i JPA cześć II

W pierwszej części pokazałem jak powinna wyglądać standardowa encja oraz konfiguracja modułu. W tej części będzie trochę teorii co powinna dostarczać klasa SelfManagedEntity. Active Record Wzorzec projektowy Active Record ma swoje korzenie w kartotekowych bazach danych. Dokładnie w ich implementacjach z lat 70tych kiedy ktoś wymyślił, że pracując na rekordzie warto mieć metody typu save, […]

Active Record z Google Guice i JPA cześć I

Ostatnie kilka wpisów było poświęcone zabawie z Guice, Assisted Injection i JPA. Nie może to się skończyć inaczej niż jakimś widowiskowym podsumowaniem 😉 Na początek Elementów API Guice nie można teoretycznie wstrzykiwać… nie dotyczy to injectora. Warto o tym pamiętać. Tak samo jak o tym, że injector najlepiej wstrzykiwać jako pole statyczne. Wymagania co do […]

Samozarządzające się encje – persist vs. merge

Chcąc zaimplementować prostą wersję wzorca ActiveRecord należy uzbroić się w cierpliwość. Szczególnie jeżeli chce się to zrobić z wykorzystaniem JSR-330 i Guice. Jednym z problemów przed jakimi staje osoba tworząca takie rozwiązanie jest decyzja czy encje powinny być zarządzane bardziej przez Guice czy bardziej przez JPA. Kluczowym elementem, który trzeba zrozumieć by dokonać wyboru jest […]

Assisted Injection po bożemu

Tak jak obiecałem tym razem zajmiemy się mechanizmem Assisted Injection w wersji „po bożemu”. Motywacja Czasami stajemy przed konieczności wyboru metody tworzenia obiektów pomiędzy w pełni automatycznym procesem kontrolowanym przez mechanizm kontenera wstrzykiwania zależności (DI), a ręcznym tworzeniem obiektów. W tym drugim przypadku jeżeli korzystamy z mechanizmu DI istnieje niezerowa szansa na to, że kontener […]

Assisted Injection bez Assisted

W Guice jest sobie taki mechanizm co nazywa się Assisted Injection. Generalnie jest on czymś pośrednim pomiędzy zwykłym wstrzykiwaniem zależności dokonywanym przez injector, a ręcznym ustawianiem pól za pomocą providera. Mechanizm jest całkiem fajny, ale postanowiłem wykonać podobną pracę bez jego użycia. Pytanie dlaczego? Mechanizm skrywający pod maską tej biblioteki (AI jest rozszerzeniem dla Guice) […]

Wstrzykiwanie pól statycznych w Guice

Czasami życie płata nam figla i należy jakoś obsłużyć sytuację, w której dana klasa ma pole statyczne wymagające wstrzyknięcia. Oczywiście takie sytuacje mają miejsce zazwyczaj wtedy gdy trafiamy na jakiś kod zastany, w którym jest burdel i chcemy w miarę niskim pozbyć się operatora new. Okazuje się, że obsłużenie takiej sytuacji w Guice jest dziecinnie […]