Hexagonal Architecture Java Example