2017-01-01から1年間の記事一覧

Lombok @Value with Jackson

You can use lombok @Value annotation with Jackson, since Jackson 2.7 added support for ConstructorProperties. However you need to add @AllArgsConstructor too when you use @Value with @Builder. You can also Use @JsonDeserialize but it's a l…

ThrowingProviders In google/guice

You must have annotatedWith even though the actual classes (BbcFeed.class, CnnFeed.class) are bind to different providers as follows: public static class FeedModule extends AbstractModule { protected void configure() { ThrowingProviderBind…

Is Optional be used for method arguments or fields

It doesn't seem to be recommended. Because Optional is designed for return value according to OpenJDK emails below: Shouldn't Optional be Serializable? Loose ends: Optional java.util.Optional fields

Saving a Java Object into database as JSON

There are some ways to save a object (e.g. Java object) into database. One of the ways is to serialize a object and store it into a text column. We can serialize a object by implementing serializable interface in Java. But it is difficult …

Name resolution in linux

We can resolve a hostname from IP address if we have searchlist in /etc/resolv.conf to define DNS suffix. domain example.com options timeout:1 attempts:4 nameserver xxx.yyy.zzz.aaa search example2.com example3.com By default dig don't use …

App Indexing & App Links & Universal Links

I'm confusing App Indexing & App Links & Universal Links. App Indexing enables you to show app deep links in a google search result. As long as your app has deep links (even though you use custom URL scheme), you can see deep links for the…

ZonedDateTime.toString()

ZonedDateTime.toString() occasionally does not have millisec as follows: gist.github.com ZonedDateTime.toString() uses LocalTime.toString(). And LocalTime.toString() omits trailing zeros. The output will be one of the following ISO-8601 fo…

Google/Guice does not support lifecycle

We sometimes want to do something before destroying an injected object. (such as closing DB connection). However guice does not have lifecycle support (such as @PostConstruct, @PreDestroy) intentionally. An issue for having lifecycle has b…