The following is what I had to do in order to get this working.
I had to add com.sun.management to the systemProperties value for the system bundle, as I was new to OSGI this took me a while to figure out. I use the maven-pax-plugin so i needed to add the following property. The reason it didn't work by default was equinox my osgi container of choice does not include the com.sun.* packages in the system bundle by default.
This was obvious by looking at the system bundle with the bundle 0 command as bundle 0 is always the system bundle which was something new to me.
<param>--sp=com.sun.management</param>
after adding this command the system bundle includes com.sun.management and my bundle deployed with no issues.
The reason that equinox doesn't include the com.sun packages in the systemProperties by default see here. (A Java program that directly calls into sun.* packages is not guaranteed to work on all Java-compatible platforms. In fact, such a program is not guaranteed to work even in future versions on the same platform.)
So you have two options for adding com.sun to the osgi container.
Solution A': Extension Bundles
These act as fragments; they are not bundles of their own but rather are attached to a host. Extension bundles are a special kind of fragments that get attached only to the System bundle in order to deliver optional parts of the Framework. One can use this mechanism to create an empty extension that just declares the needed packages, leaving the loading to its hosting bundle (in this case the Framework). I didn't go for this route as the second option was quicker to implement.
Solution B: Boot Delegation
The option I went for in the the end was boot delegation. This allows the user to create 'implied' packages that will always be loaded by the framework parent class loader, even if the bundles do not provide the proper imports. I achieved by setting the system packages to include com.sun.management.
See the following excellent link that describes the whole issue in more detail.