A Java implementation of BEP9 metdata exchange protocol