Java

Mockito + PowerMock – mockowanie prywatnej metody singletonu

11

Dziś krótko. Sytuacja jest prosta, mamy do zamockowania prywatną metodę w singletonie. W uproszczeniu może wyglądać to tak:

public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() { } public static Singleton get() { return INSTANCE; } public String doPublic(String in) { return doPrivate(in); } private String doPrivate(String in) { return "fromPrivate" + in; } }

Chcemy zamockować metodę doPrivate, aby Więcej...

JPA i audyt encji z wykorzystaniem @EntityListeners

2

W ostatnim poście opisywałem jak poradzić sobie z zapisywaniem danych audytowych encji przy wykorzystaniu JPA. W komentarzu pod postem padło pytanie ze strony Piotrka:

Ciekaw jestem jednak jakiegoś sposobu w czystym JPA, który pozwoli na wydelegowanie zbierania audytowych informacji do osobnego „listenera”.

Otóż postanowiłem zgłębić temat 🙂 i faktycznie jest zgrabniejszy sposób w jaki można wykonać to zadanie. Należy wykorzystać adnotację @EntityListeners. Na początek stwórzmy klasę Więcej...

JPA i audyt encji

1

Dość częstym zadaniem jakie musimy wykonać zapisując dane naszej aplikacji jest również dołączenie informacji o tym kto i kiedy stworzył, a później aktualizował dany rekord. Zazwyczaj informacje takie trafiają do czterech kolumn: data stworzenia, data aktualizacji, użytkownik, który stworzył oraz zaktualizował rekord. Są to tzw. kolumny audytowe. W momencie, gdy wykorzystujemy do zapisu naszych danych implementację JPA, mamy sprawę bardzo ułatwioną.

Stwórzmy interfejs Auditable, który powinna Więcej...

Liquibase – zarządzanie zmianami bazy danych

3

Przeważająca większość aplikacji webowych wykorzystuje w większym lub mniejszym stopniu gdzieś „pod spodem” bazy danych. Przy rozwoju takich aplikacji, często spotykanym problemem jest zarządzanie zmianami w strukturze bazy danych (ciągle dochodzą nowe kolumny, zmieniane są typu kolumn itd.). Bardzo przydatne może okazać się wtedy narzędzie Liquibase, na które natrafiłem ostatnio przypadkiem. W bardzo prosty sposób można za jego pomocą zapanować nad wszelkimi zmianami, które zostaną dokonane po Więcej...

Confitury smak ’11

1

Przeglądając dziś blogi społeczności javowej można zauważyć wspólny mianownik. Wiele osób dzieli się wrażeniami z sobotniej konferencji Confitura (dawniej Javarsovia). I ja tam byłem i swoje trzy grosze dorzuciłem ;). Tak jak pisałem tydzień temu – wspomagałem swoją osobą organizatorów. Udało mi się być na trzech czterech prezentacjach (choć o jednej prawie już nie pamiętam i nawet nie będę wspominał, ;)). Najbardziej podobała mi się prezentacja Patrycji Wegrzynowicz: Patterns and Anti-Patterns Więcej...

Confitura’11

0

Już za tydzień Confitura 2011 (dawniej Javarsovia) czyli największa bezpłatna konferencja dla miłośników i pasjonatów języka Java i powiązanych technologii. Zgłosiłem się jako wolontariusz :), także będę starał się pomóc przy organizacji tak dużego przedsięwzięcia (zarejestrowało się chyba 900 osób). Jeśli nie zdążyłeś się zarejestrować to nie szkodzi, wejście jest darmowe, także bez przeszkód można przyjść i posłuchać (nie dostaniesz tylko kilku gadżetów od sponsorów ;)). Zapraszam i do Więcej...

Coders hate dates

0

„Coders hate dates” czyli kilka podstawowych informacji o przetwarzaniu dat w Javie oraz przechowywaniu ich w bazie Oracle. Aby przetwarzanie informacji o czasie poszło nam sprawnie i bez przykrych niespodzianek należy pamiętać o kilku sprawach:

  • java.sql.Date nie zawiera informacji o czasie (przy tworzeniu obiektu tej klasy z java.util.Date informacje o czasie są ustawiane na 00:00), tak więc aby zapisać takie informacje należy użyć java.sql.Timestamp. Aczkolwiek typ bazodanowy „DATE” zawiera Więcej...
Go to Top