private SwitchYardComponentExtensionManager() {
   _extensionsByCategory =
       new HashMap<
           ISwitchYardComponentExtension.Category, Collection<ISwitchYardComponentExtension>>();
   for (Category category : Category.values()) {
     _extensionsByCategory.put(category, new ArrayList<ISwitchYardComponentExtension>());
   }
   IExtensionPoint extensionPoint =
       Platform.getExtensionRegistry()
           .getExtensionPoint(Activator.PLUGIN_ID, "switchYardComponent"); // $NON-NLS-1$
   for (IExtension extension : extensionPoint.getExtensions()) {
     for (IConfigurationElement element : extension.getConfigurationElements()) {
       processComponent(element);
     }
   }
 }
 private Category parseCategory(IConfigurationElement element) {
   String categoryString = element.getAttribute("category"); // $NON-NLS-1$
   if (categoryString == null || categoryString.length() == 0) {
     return Category.UNKNOWN;
   }
   try {
     return Category.valueOf(categoryString.toUpperCase());
   } catch (Exception e) {
     Activator.getDefault()
         .getLog()
         .log(
             new Status(
                 Status.ERROR,
                 Activator.PLUGIN_ID,
                 Messages.SwitchYardComponentExtensionManager_InvalidCategoryStatus
                     + element.getContributor().getName()
                     + ", id="
                     + element.getAttribute("id"))); // $NON-NLS-1$ //$NON-NLS-2$
   }
   return Category.UNKNOWN;
 }