+1 I like the static methods for creating the builder
Also makes perfect sense to make the applicationId and masterSecret part of the sender.
PushSender client =
DefaultPushSender.withRootServerURL("http://aerogear.example.com/ag-...
.proxy("proxy", 8080)
.proxyType(Proxy.Type.HTTP)
.build();
PushSender client =
DefaultPushSender.withConfig("/path/on/classpath/push-config.json").build();
PushSender client = DefaultPushSender.withConfig(inputstream).build();