Just a small hint, just in case...
When using custom metadata in your media item, you might want to translate this to the default WM metadata.
Forinstance, you define some editor input field, and want to store its value (also) as term.
Wherever you create this functionality, eventually the onSubmit method in your mediaitem controller class will be called.
in this method (by default) the BeanUtils.copyProperties method will be called, or you decided to use your own copy properties method.
Please note that at this point, the default WM metadata is filled.
So any changes to the metadata you made before this method is called, will be gone.
Changes to the default WM metadata can therefore only be made AFTER the BeanUtils.copyProperties method is executes (but still within the controller's onSubmit.