Your current code will need to be updated any time a new server bean type is added. This makes your code unstable or incomplete in the future. Since this is your code, and you want your code to work in the future, it is your responsibility to find the optimal API that won't require updates on your part often. The suitable code is ServerExtendedProperties, which, as you say, is not public API.  

It is then your job to request it to become API. If you do not request it as API, you will end up having to manually update the code in this PR every time serverbeanloader gets new bean types. 

You should be trying to make sure your code will work in the future, and sometimes, part of that job is requesting the proper utility or class become public API. You can not always be writing code that will be fragile or break in the future, because it increases the costs for maintenance in the future. If there is a better utility that is not public, you should be actively pushing for it to become public.