Example #1
0
  private static void populateManagedPropertyFromProperty(
      Property property,
      PropertyDefinition propertyDefinition,
      @NotNull ManagedProperty managedProperty,
      @Nullable PropertySimple customProperty) {
    // See if there is a custom adapter defined for this property.
    PropertyAdapter propertyAdapter =
        PropertyAdapterFactory.getCustomPropertyAdapter(customProperty);

    MetaValue metaValue = managedProperty.getValue();
    if (metaValue != null) {
      LOG.trace(
          "Populating existing MetaValue of type "
              + metaValue.getMetaType()
              + " from RHQ property "
              + property
              + " with definition "
              + propertyDefinition
              + "...");
      if (propertyAdapter == null) {
        propertyAdapter = PropertyAdapterFactory.getPropertyAdapter(metaValue);
      }
      propertyAdapter.populateMetaValueFromProperty(property, metaValue, propertyDefinition);
    } else {
      MetaType metaType = managedProperty.getMetaType();
      if (propertyAdapter == null) {
        propertyAdapter = PropertyAdapterFactory.getPropertyAdapter(metaType);
      }
      LOG.trace(
          "Converting property "
              + property
              + " with definition "
              + propertyDefinition
              + " to MetaValue of type "
              + metaType
              + "...");
      metaValue = propertyAdapter.convertToMetaValue(property, propertyDefinition, metaType);
      managedProperty.setValue(metaValue);
    }
  }
Example #2
0
 public static Configuration convertManagedObjectToConfiguration(
     Map<String, ManagedProperty> managedProperties,
     Map<String, PropertySimple> customProps,
     ResourceType resourceType) {
   Configuration config = new Configuration();
   ConfigurationDefinition configDef = resourceType.getResourceConfigurationDefinition();
   Map<String, PropertyDefinition> propDefs = configDef.getPropertyDefinitions();
   Set<String> propNames = managedProperties.keySet();
   for (String propName : propNames) {
     PropertyDefinition propertyDefinition = propDefs.get(propName);
     ManagedProperty managedProperty = managedProperties.get(propName);
     if (propertyDefinition == null) {
       if (!managedProperty.hasViewUse(ViewUse.STATISTIC))
         LOG.debug(
             resourceType
                 + " does not define a property corresponding to ManagedProperty '"
                 + propName
                 + "'.");
       continue;
     }
     if (managedProperty == null) {
       // This should never happen, but don't let it blow us up.
       LOG.error(
           "ManagedProperty '" + propName + "' has a null value in the ManagedProperties Map.");
       continue;
     }
     MetaValue metaValue = managedProperty.getValue();
     if (managedProperty.isRemoved() || metaValue == null) {
       // Don't even add a Property to the Configuration if the ManagedProperty is flagged as
       // removed or has a
       // null value.
       continue;
     }
     PropertySimple customProp = customProps.get(propName);
     PropertyAdapter propertyAdapter = PropertyAdapterFactory.getCustomPropertyAdapter(customProp);
     if (propertyAdapter == null) {
       propertyAdapter = PropertyAdapterFactory.getPropertyAdapter(metaValue);
     }
     if (propertyAdapter == null) {
       LOG.error(
           "Unable to find a PropertyAdapter for ManagedProperty '"
               + propName
               + "' with MetaType ["
               + metaValue.getMetaType()
               + "] for ResourceType '"
               + resourceType.getName()
               + "'.");
       continue;
     }
     Property property;
     try {
       property = propertyAdapter.convertToProperty(metaValue, propertyDefinition);
     } catch (RuntimeException e) {
       throw new RuntimeException(
           "Failed to convert managed property "
               + managedProperty
               + " to RHQ property of type "
               + propertyDefinition
               + ".",
           e);
     }
     config.put(property);
   }
   return config;
 }