wtorek, 2 grudnia 2014

fluentbuilder generator 1.1.0 released

W końcu znalazłem czas (czytaj zwolnienie lekarskie) i mogę dopiąć tematy, które już dawno powinny być zrobione. Tym samym wypuszczam wersję 1.1.0 swojego mini softu do generowania fluent builderów, przydatnych do pisania testów w javie.

Można zadać pytanie, po co komu kolejny open source, robiący to samo co już wcześniej zostało rozwiązane - ano nie do końca. Podsumujmy alternatywy, które możemy znaleźć w internecie:

  1. fluent-builders-generator-eclipse-plugin
  2. Builder Generator
  3. pojobuilder
  4. Lombok
  5. fluent-interface-proxy
  6. fluentbuilder (Blue Carat fork)

poniedziałek, 18 sierpnia 2014

Skrypt do ustawiania wersji pom.xml w Groovy

Może komuś się przyda prosty skrypcior do ustawiania wersji w pom.xml w Groovy, który bardzo łatwo można podpiąć pod cokolwiek z naszego CDI, np. aliasy git'a, jenkins, itp.

czwartek, 7 sierpnia 2014

Redirect after post w Spring MVC.

W czasach aplikacji webowych, których front end bazuje głównie na JavaScriptcie mogę zostać wyśmiany za ten post, bo komu jeszcze potrzeba ta smutna wiedza, jak wyświetlić formularz z błędami zgodnie z zasadą redirect after post...

Niemniej, w niektórych przypadkach, już samo przejście na Spring MVC jest sporym skokiem technologicznym. Na początku wrażenia są super. Kontrolery są przyjemnie adnotowane. Ciekawy koncept rozszerzania listy parametrów przekazywanych do metod kontrolera, czyni ten framework praktycznie nieskończenie rozszerzalny. Swoją drogą bardzo interesująca implementacja zasady Open-Closed. Po ostygnięciu pierwszych emocji przychodzi refleksja, że właściwie oprócz podniesienia, o kolejny poziom, abstrakcji nad request i response, z pudełka SpringMVC, dostajemy niewiele więcej. Być może jest to rozsądne, żeby dać podstawowe klocki i niech się ludzie bawią. Być może wstyd, żeby dawać cokolwiek co np. jawnie sugerowałoby użycie sesji, która przecież jest teraz taka passe.

środa, 2 lipca 2014

Git - historia ze zmiana nazwy pliku.

Ot ciekawostka. Mamy sobie klasę Test:
package test;

public class Test {
 public static int i = 1;

}

Zmieniamy jej nazwę na TestA. W historii widzimy elegancki rename

piątek, 16 maja 2014

Spring MVC i komunikaty walidacji JSR-303

Człowiek potrzebował zrobić trywialną rzecz, komunikaty o błędach walidacji JSR 303 trzymać w tym samym MessageSource, co inne propertiesy aplikacji, oraz korzystać ze springowego DefaultMessageCodesResolver. A skończyło się jak zwykle na deep-debugging...

Może od razu przykład. Dla klasy:
public class Dorosly {
 @Range(min = 18, max = 100)
 private Integer wiek;
}
Definicja komunikatu może wyglądać tak:
org.hibernate.validator.constraints.Range.message = pole musi byc z przedzialu {min} - {max}

wtorek, 28 stycznia 2014

Git - zarządzanie aliasami

Poznając Gita prędzej, czy później zaczynamy tworzyć własne aliasy. Z racji tego, że Git jest rozproszonym systemem kontroli wersji, to każdy może mieć lokalnie dowolny zestaw aliasów. W momencie kiedy spójność aliasów zaczyna mieć krytyczne znaczenie dla procesu continuous delivery w danej firmie, pojawia się problem jak tymi aliasami zarządzać, tak aby „zmusić” programistów do używania tych najbardziej aktualnych. Jednak zanim o tym, to może przykład jakiś aliasów, które muszą być takie same u każdego z programistów.
Używając Gita, bardzo często korzystamy (a jeśli nie, to nie wykorzystujemy w pełni jego potencjału) z modelu branchowania podobnego do tego. W modelu tym zależy nam, żeby jakoś wyróżnić gałęzie releasowe od rozwojowych. Ustalamy, że gałąź releasowa jest odbijana zawsze od mastera i jej nazwa ma następujący format: