complete java port