get any transaction in p2p manner using bitcoinj I'm pretty sure bitcoinj is capable of downloading any Bitcoin transaction from P2P nodes by broadcasting GetDataMessage because that's what it  does in the peer.downloadDependenciesInternal method. 

I'm trying to find/implement a very simple method which would download a transaction with its inputs and outputs and the block in which it's included (if any) but, because of Guava asynchronous futures, I cannot figure it out. 

Very simply, I would like to replace 3rd-party services like blockchain.info with something decentralized.
GetData can fetch only unconfirmed transactions, and that's what Peer.downloadDependenciesInternal is doing.

You might want to contact the developer of the now defunct biteasy.com block explorer, he was using (and extending on) bitcoinj.