[teiid-commits] teiid SVN: r2064 - in trunk/console/src/main: java/org/teiid/rhq/plugin and 2 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Apr 20 15:17:42 EDT 2010


Author: tejones
Date: 2010-04-20 15:17:40 -0400 (Tue, 20 Apr 2010)
New Revision: 2064

Modified:
   trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
   trunk/console/src/main/resources/META-INF/rhq-plugin.xml
Log:
- Added Error count metric on Summary tab
- Change Inactive/Active to Up/Down
- Modified description text from JBoss Enterprise to Teiid
- Corrected Content tab error for VDB
- Corrected data types for Model properties
 

Modified: trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/java/org/teiid/rhq/admin/DQPManagementView.java	2010-04-20 19:17:40 UTC (rev 2064)
@@ -14,11 +14,22 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedObject;
 import org.jboss.managed.api.ManagedOperation;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.managed.plugins.ManagedObjectImpl;
 import org.jboss.metatype.api.types.MetaType;
 import org.jboss.metatype.api.values.CollectionValueSupport;
+import org.jboss.metatype.api.values.EnumValueSupport;
+import org.jboss.metatype.api.values.GenericValueSupport;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.MetaValueFactory;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertyList;
+import org.rhq.core.domain.configuration.PropertyMap;
+import org.rhq.core.domain.configuration.PropertySimple;
 import org.teiid.adminapi.Request;
 import org.teiid.adminapi.Session;
 import org.teiid.rhq.comm.ExecutedResult;
@@ -27,8 +38,6 @@
 import org.teiid.rhq.plugin.util.PluginConstants.ComponentType.Platform;
 import org.teiid.rhq.plugin.util.PluginConstants.ComponentType.VDB;
 
-
-
 public class DQPManagementView implements PluginConstants {
 
 	private static ManagedComponent mc = null;
@@ -88,26 +97,25 @@
 
 		Object resultObject = new Object();
 
-		if (metric
-				.equals(PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
-			//TODO remove version parameter after AdminAPI is changed
-			resultObject = getVDBStatus((String)valueMap.get(VDB.NAME), 1);
+		if (metric.equals(PluginConstants.ComponentType.VDB.Metrics.ERROR_COUNT)) {
+			// TODO remove version parameter after AdminAPI is changed
+			resultObject = getErrorCount((String) valueMap.get(VDB.NAME));
+		} else if (metric.equals(PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
+			// TODO remove version parameter after AdminAPI is changed
+			resultObject = getVDBStatus((String) valueMap.get(VDB.NAME), 1);
 		} else if (metric
 				.equals(PluginConstants.ComponentType.VDB.Metrics.QUERY_COUNT)) {
 			resultObject = new Double(getQueryCount().doubleValue());
-		} else {
-			if (metric
-					.equals(PluginConstants.ComponentType.VDB.Metrics.SESSION_COUNT)) {
-				resultObject = new Double(getSessionCount().doubleValue());
-			} else {
-				if (metric
-						.equals(PluginConstants.ComponentType.VDB.Metrics.LONG_RUNNING_QUERIES)) {
-					Integer longRunningQueryLimit = (Integer) valueMap
-							.get(PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT);
-					Collection<Request> longRunningQueries = getLongRunningQueries(longRunningQueryLimit);
-					resultObject = new Double(longRunningQueries.size());
-				}
-			}
+		} else if (metric
+				.equals(PluginConstants.ComponentType.VDB.Metrics.SESSION_COUNT)) {
+			resultObject = new Double(getSessionCount().doubleValue());
+		} else if (metric
+				.equals(PluginConstants.ComponentType.VDB.Metrics.LONG_RUNNING_QUERIES)) {
+			Integer longRunningQueryLimit = (Integer) valueMap
+					.get(PluginConstants.Operation.Value.LONG_RUNNING_QUERY_LIMIT);
+			Collection<Request> longRunningQueries = getLongRunningQueries(longRunningQueryLimit);
+			resultObject = new Double(longRunningQueries.size());
+
 		}
 
 		return resultObject;
@@ -159,9 +167,11 @@
 					resultObject.iterator()));
 		} else if (operationName.equals(Platform.Operations.KILL_SESSION)) {
 			Long sessionID = (Long) valueMap.get(Operation.Value.SESSION_ID);
-			MetaValue[] args = new MetaValue[] {metaValueFactory.create(sessionID) };
+			MetaValue[] args = new MetaValue[] { metaValueFactory
+					.create(sessionID) };
 			try {
-				executeManagedOperation(mc, Platform.Operations.KILL_SESSION, args);
+				executeManagedOperation(mc, Platform.Operations.KILL_SESSION,
+						args);
 			} catch (Exception e) {
 				final String msg = "Exception executing operation: " + Platform.Operations.KILL_SESSION; //$NON-NLS-1$
 				LOG.error(msg, e);
@@ -173,7 +183,8 @@
 					metaValueFactory.create(requestID),
 					metaValueFactory.create(sessionID) };
 			try {
-				executeManagedOperation(mc, Platform.Operations.KILL_REQUEST, args);
+				executeManagedOperation(mc, Platform.Operations.KILL_REQUEST,
+						args);
 			} catch (Exception e) {
 				final String msg = "Exception executing operation: " + Platform.Operations.KILL_REQUEST; //$NON-NLS-1$
 				LOG.error(msg, e);
@@ -190,8 +201,8 @@
 			List<String> fieldNameList = operationResult.getFieldNameList();
 			getProperties(PluginConstants.ComponentType.VDB.NAME);
 			operationResult.setContent(createReportResultList(fieldNameList,
-			resultObject.iterator()));
-		}else if (operationName.equals(VDB.Operations.GET_SESSIONS)) {
+					resultObject.iterator()));
+		} else if (operationName.equals(VDB.Operations.GET_SESSIONS)) {
 			List<String> fieldNameList = operationResult.getFieldNameList();
 			MetaValue sessionMetaValue = getSessions();
 			getSessionCollectionValue(sessionMetaValue,
@@ -229,7 +240,7 @@
 
 	}
 
-	protected MetaValue getRequests()  {
+	protected MetaValue getRequests() {
 
 		MetaValue requestsCollection = null;
 		MetaValue args = null;
@@ -261,15 +272,17 @@
 		return sessionCollection;
 
 	}
-	
+
 	public static String getVDBStatus(String vdbName, int version) {
-		
+
 		ManagedComponent mcVdb = null;
 		try {
 			mcVdb = ProfileServiceUtil
-			.getManagedComponent(new org.jboss.managed.api.ComponentType(
-					PluginConstants.ComponentType.VDB.TYPE,
-					PluginConstants.ComponentType.VDB.SUBTYPE), vdbName);
+					.getManagedComponent(
+							new org.jboss.managed.api.ComponentType(
+									PluginConstants.ComponentType.VDB.TYPE,
+									PluginConstants.ComponentType.VDB.SUBTYPE),
+							vdbName);
 		} catch (NamingException e) {
 			final String msg = "NamingException in getVDBStatus(): " + e.getExplanation(); //$NON-NLS-1$
 			LOG.error(msg, e);
@@ -278,8 +291,7 @@
 			LOG.error(msg, e);
 		}
 
-		return ProfileServiceUtil.getSimpleValue(mcVdb,
-				"status", String.class);
+		return ProfileServiceUtil.getSimpleValue(mcVdb, "status", String.class);
 	}
 
 	public static MetaValue executeManagedOperation(ManagedComponent mc,
@@ -302,8 +314,7 @@
 				}
 			}
 		}
-		throw new Exception(
-				"No operation found with given name =" + operation);
+		throw new Exception("No operation found with given name =" + operation);
 
 	}
 
@@ -328,7 +339,7 @@
 			String property, MetaValue... args) throws Exception {
 
 		mc = getDQPManagementView(mc);
-		
+
 		try {
 			mc.getProperty(property);
 		} catch (Exception e) {
@@ -336,8 +347,7 @@
 			LOG.error(msg, e);
 		}
 
-		throw new Exception(
-				"No property found with given name =" + property);
+		throw new Exception("No property found with given name =" + property);
 	}
 
 	private Integer getQueryCount() {
@@ -366,9 +376,56 @@
 		return activeSessionsCollection.size();
 	}
 
-	protected Collection<Request> getLongRunningQueries(
-			int longRunningValue) {
+	/**
+	 * @param mcVdb
+	 * @return count
+	 * @throws Exception
+	 */
+	private int getErrorCount(String vdbName) {
+		
+		ManagedComponent mcVdb = null;
+		try {
+			mcVdb = ProfileServiceUtil
+					.getManagedComponent(
+							new org.jboss.managed.api.ComponentType(
+									PluginConstants.ComponentType.VDB.TYPE,
+									PluginConstants.ComponentType.VDB.SUBTYPE),
+							vdbName);
+		} catch (NamingException e) {
+			final String msg = "NamingException in getVDBStatus(): " + e.getExplanation(); //$NON-NLS-1$
+			LOG.error(msg, e);
+		} catch (Exception e) {
+			final String msg = "Exception in getVDBStatus(): " + e.getMessage(); //$NON-NLS-1$
+			LOG.error(msg, e);
+		}
+		
+		// Get models from VDB
+		int count = 0;
+		ManagedProperty property = mcVdb.getProperty("models");
+		CollectionValueSupport valueSupport = (CollectionValueSupport) property
+				.getValue();
+		MetaValue[] metaValues = valueSupport.getElements();
 
+		for (MetaValue value : metaValues) {
+			GenericValueSupport genValueSupport = (GenericValueSupport) value;
+			ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
+					.getValue();
+
+			String modelName = managedObject.getName();
+
+			// Get any model errors/warnings
+			MetaValue errors = managedObject.getProperty("errors").getValue();
+			if (errors != null) {
+				CollectionValueSupport errorValueSupport = (CollectionValueSupport) errors;
+				MetaValue[] errorArray = errorValueSupport.getElements();
+				count += errorArray.length;
+			}
+		}
+		return count;
+	}
+
+	protected Collection<Request> getLongRunningQueries(int longRunningValue) {
+
 		MetaValue requestsCollection = null;
 		Collection<Request> list = new ArrayList<Request>();
 
@@ -401,7 +458,8 @@
 			for (MetaValue value : ((CollectionValueSupport) pValue)
 					.getElements()) {
 				if (value.getMetaType().isComposite()) {
-					Request Request = (Request)MetaValueFactory.getInstance().unwrap(value);
+					Request Request = (Request) MetaValueFactory.getInstance()
+							.unwrap(value);
 					list.add(Request);
 				} else {
 					throw new IllegalStateException(pValue
@@ -418,7 +476,8 @@
 			for (MetaValue value : ((CollectionValueSupport) pValue)
 					.getElements()) {
 				if (value.getMetaType().isComposite()) {
-					Session Session = (Session)MetaValueFactory.getInstance().unwrap(value);
+					Session Session = (Session) MetaValueFactory.getInstance()
+							.unwrap(value);
 					list.add(Session);
 				} else {
 					throw new IllegalStateException(pValue

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java	2010-04-20 19:17:40 UTC (rev 2064)
@@ -64,59 +64,32 @@
 			throws InvalidPluginConfigurationException, Exception {
 		Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
 
-		PropertyList list = discoveryContext.getParentResourceContext().getPluginConfiguration().getList("models");
+		for (int i = 0; i < 3; i++) {
+			String modelName = "myModel" + i;
 
-		Iterator<Property> listIter = list.getList().iterator();
-		
-		while(listIter.hasNext()){
-			PropertyMap propertyMap = (PropertyMap)listIter.next();
-			
-			String modelName = ((PropertySimple)propertyMap.getMap().get("name")).getStringValue();
-		
-			ManagedComponent model = ProfileServiceUtil
-			.getManagedComponent(new ComponentType(
-					PluginConstants.ComponentType.Model.TYPE,
-					PluginConstants.ComponentType.Model.SUBTYPE),
-					modelName);
-	
-			/**
-			 * 
-			 * A discovered resource must have a unique key, that must stay the same
-			 * when the resource is discovered the next time
-			 */
 			DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
 					discoveryContext.getResourceType(), // ResourceType
 					modelName, // Resource Key
 					modelName, // Resource Name
 					null, // Version TODO can we get that from discovery ?
 					PluginConstants.ComponentType.Model.DESCRIPTION, // Description
-					discoveryContext.getDefaultPluginConfiguration(), // Plugin Config
+					discoveryContext.getDefaultPluginConfiguration(), // Plugin
+					// Config
 					null // Process info from a process scan
 			);
-					
-			// modelURI, connectorBindingNames, source, visible, modelType, visibility, supportsMultiSourceBindings, 
-			// name, path, uuid, properties
-			String name = ((SimpleValueSupport)model.getProperty("name").getValue()).getValue().toString();
-			String path = ((SimpleValueSupport)model.getProperty("path").getValue()).getValue().toString();
-			String modelURI = ((SimpleValueSupport)model.getProperty("modelURI").getValue()).getValue().toString();
-			String source = ((SimpleValueSupport)model.getProperty("source").getValue()).getValue().toString();
-			String visible = ((SimpleValueSupport)model.getProperty("visible").getValue()).getValue().toString();
-			String modelType = ((SimpleValueSupport)model.getProperty("modelType").getValue()).getValue().toString();
-			String supportsMultiSourceBindings = ((SimpleValueSupport)model.getProperty("supportsMultiSourceBindings").getValue()).getValue().toString();
+
+			Configuration c = detail.getPluginConfiguration();
+			c.put(new PropertySimple(modelName, "name"));
+
+			PropertyList list = new PropertyList("multisourceModels");
+			PropertyMap map = new PropertyMap("model",
+					new PropertySimple("oraclesource", "sourceName"),
+					new PropertySimple("JNDINameOracle", "jndiName"),
+					new PropertySimple("MySQLsource", "sourceName"),
+					new PropertySimple("JNDINameMySQL", "jndiName"));
+			list.add(map);
 			
-			Configuration c = detail.getPluginConfiguration(); 
-			
-			getConnectors(model, c);
-			
-			c.put(new PropertySimple("name", name));
-			c.put(new PropertySimple("path", path));
-			c.put(new PropertySimple("modelURI", modelURI));
-			c.put(new PropertySimple("source", source));
-			c.put(new PropertySimple("visible", visible));
-			c.put(new PropertySimple("modelType", modelType));
-			c.put(new PropertySimple("supportsMultiSourceBindings", supportsMultiSourceBindings));	
-			
-			
+			detail.setPluginConfiguration(c);
 			// Add to return values
 			discoveredResources.add(detail);
 			log.info("Discovered Teiid Model: " + modelName);
@@ -124,27 +97,30 @@
 
 		return discoveredResources;
 	}
-	
+
 	/**
 	 * @param mcVdb
 	 * @param configuration
 	 */
-	private void getConnectors(ManagedComponent model, Configuration configuration) {
-		//Get Connector(s) from Model
+	private void getConnectors(ManagedComponent model,
+			Configuration configuration) {
+		// Get Connector(s) from Model
 		ManagedProperty property = model.getProperty("connectorBindingNames");
-		CollectionValueSupport valueSupport = (CollectionValueSupport) property.getValue();
+		CollectionValueSupport valueSupport = (CollectionValueSupport) property
+				.getValue();
 		MetaValue[] metaValues = valueSupport.getElements();
- 
+
 		PropertyList connectorsList = new PropertyList("connectors");
 		configuration.put(connectorsList);
-				
+
 		for (MetaValue value : metaValues) {
 			SimpleValueSupport simpleValueSupport = (SimpleValueSupport) value;
-			String connectorName = (String)simpleValueSupport.getValue();
-			
-			PropertyMap connector = new PropertyMap("connector", new PropertySimple("name", connectorName));
+			String connectorName = (String) simpleValueSupport.getValue();
+
+			PropertyMap connector = new PropertyMap("connector",
+					new PropertySimple("name", connectorName));
 			connectorsList.add(connector);
 		}
-	}	
-	
+	}
+
 }
\ No newline at end of file

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java	2010-04-20 19:17:40 UTC (rev 2064)
@@ -21,13 +21,31 @@
  */
 package org.teiid.rhq.plugin;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import javax.naming.NamingException;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedObject;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.managed.plugins.ManagedObjectImpl;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.values.CollectionValueSupport;
+import org.jboss.metatype.api.values.EnumValueSupport;
+import org.jboss.metatype.api.values.GenericValueSupport;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertyList;
+import org.rhq.core.domain.configuration.PropertyMap;
+import org.rhq.core.domain.configuration.PropertySimple;
 import org.rhq.core.domain.measurement.AvailabilityType;
 import org.rhq.core.domain.measurement.MeasurementDataNumeric;
 import org.rhq.core.domain.measurement.MeasurementDataTrait;
@@ -42,7 +60,6 @@
 import org.teiid.rhq.plugin.util.PluginConstants.ComponentType.Platform;
 import org.teiid.rhq.plugin.util.PluginConstants.ComponentType.VDB;
 
-
 /**
  * Component class for a Teiid VDB
  * 
@@ -50,14 +67,16 @@
 public class VDBComponent extends Facet {
 	private final Log LOG = LogFactory.getLog(VDBComponent.class);
 
-	
-	
-	/* (non-Javadoc)
-	 * @see org.teiid.rhq.plugin.Facet#start(org.rhq.core.pluginapi.inventory.ResourceContext)
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.teiid.rhq.plugin.Facet#start(org.rhq.core.pluginapi.inventory.
+	 * ResourceContext)
 	 */
 	@Override
 	public void start(ResourceContext context) {
-		this.setComponentName(context.getPluginConfiguration().getSimpleValue("name", null));
+		this.setComponentName(context.getPluginConfiguration().getSimpleValue(
+				"name", null));
 		super.start(context);
 	}
 
@@ -70,7 +89,7 @@
 	public String getComponentName() {
 		return this.name;
 	}
-	
+
 	@Override
 	protected void setOperationArguments(String name,
 			Configuration configuration, Map<String, Object> valueMap) {
@@ -92,27 +111,31 @@
 		}
 
 	}
-	
-	/* (non-Javadoc)
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.teiid.rhq.plugin.Facet#getAvailability()
 	 */
 	@Override
 	public AvailabilityType getAvailability() {
-		//TODO Remove vdb version after no longer viable in Teiid
-		String status = DQPManagementView.getVDBStatus(this.getComponentName(), 1);
-		if (status.equals("ACTIVE")){
+		// TODO Remove vdb version after no longer viable in Teiid
+		String status = DQPManagementView.getVDBStatus(this.getComponentName(),
+				1);
+		if (status.equals("ACTIVE")) {
 			return AvailabilityType.UP;
 		}
-		
-		return AvailabilityType.DOWN;		
+
+		return AvailabilityType.DOWN;
 	}
 
 	@Override
-	protected void setMetricArguments(String name,
-			Configuration configuration, Map<String, Object> valueMap) {
+	protected void setMetricArguments(String name, Configuration configuration,
+			Map<String, Object> valueMap) {
 		// Parameter logic for VDB Metrics
 		String key = VDB.NAME;
-		valueMap.put(key, this.resourceConfiguration.getSimpleValue("name", null));
+		valueMap.put(key, this.resourceConfiguration.getSimpleValue("name",
+				null));
 	}
 
 	@Override
@@ -132,35 +155,51 @@
 					.getComponentIdentifier(), name, valueMap);
 
 			try {
-				if (request
-						.getName()
-						.equals(
-								PluginConstants.ComponentType.VDB.Metrics.QUERY_COUNT)) {
-					report.addData(new MeasurementDataTrait(request, (String)metricReturnObject));
+				if (request.getName().equals(
+						PluginConstants.ComponentType.VDB.Metrics.ERROR_COUNT)) {
+					String message = "";
+					if (((Integer) metricReturnObject) > 0) {
+						message = "** There are "
+								+ ((Integer) metricReturnObject)
+								+ " errors reported for this VDB. See the Configuration tab for details. **";
+					} else {
+						message = "** There are no errors reported for this VDB. **";
+					}
+
+					report.addData(new MeasurementDataTrait(request, message));
 				} else {
 					if (request
 							.getName()
 							.equals(
-									PluginConstants.ComponentType.VDB.Metrics.SESSION_COUNT)) {
-						report.addData(new MeasurementDataNumeric(request,
-								(Double) metricReturnObject));
+									PluginConstants.ComponentType.VDB.Metrics.QUERY_COUNT)) {
+						report.addData(new MeasurementDataTrait(request,
+								(String) metricReturnObject));
 					} else {
 						if (request
 								.getName()
 								.equals(
-										PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
-							report.addData(new MeasurementDataTrait(request,
-									 (String) metricReturnObject));
+										PluginConstants.ComponentType.VDB.Metrics.SESSION_COUNT)) {
+							report.addData(new MeasurementDataNumeric(request,
+									(Double) metricReturnObject));
 						} else {
 							if (request
 									.getName()
 									.equals(
-											PluginConstants.ComponentType.VDB.Metrics.LONG_RUNNING_QUERIES)) {
-								report.addData(new MeasurementDataNumeric(
-										request, (Double) metricReturnObject));
+											PluginConstants.ComponentType.VDB.Metrics.STATUS)) {
+								report.addData(new MeasurementDataTrait(
+										request, (String) metricReturnObject));
+							} else {
+								if (request
+										.getName()
+										.equals(
+												PluginConstants.ComponentType.VDB.Metrics.LONG_RUNNING_QUERIES)) {
+									report.addData(new MeasurementDataNumeric(
+											request,
+											(Double) metricReturnObject));
+								}
 							}
+
 						}
-
 					}
 				}
 
@@ -176,7 +215,196 @@
 	@Override
 	String getComponentType() {
 		return PluginConstants.ComponentType.VDB.NAME;
-	}	
-	
+	}
+
+	@Override
+	public Configuration loadResourceConfiguration() {
+
+		ManagedComponent mcVdb = null;
+		try {
+			mcVdb = ProfileServiceUtil.getManagedComponent(
+					new org.jboss.managed.api.ComponentType(
+							PluginConstants.ComponentType.VDB.TYPE,
+							PluginConstants.ComponentType.VDB.SUBTYPE), this
+							.getComponentName());
+		} catch (NamingException e) {
+			final String msg = "NamingException in getVDBStatus(): " + e.getExplanation(); //$NON-NLS-1$
+			LOG.error(msg, e);
+		} catch (Exception e) {
+			final String msg = "Exception in getVDBStatus(): " + e.getMessage(); //$NON-NLS-1$
+			LOG.error(msg, e);
+		}
+
+		// Get plugin config map for models
+		Configuration configuration = resourceContext.getPluginConfiguration();
+
+		// configuration.put(new PropertySimple("name", vdbName));
+		// configuration.put(new PropertySimple("version", vdbVersion));
+		// configuration
+		// .put(new PropertySimple("description", vdbDescription));
+		// configuration.put(new PropertySimple("status", vdbStatus));
+		// configuration.put(new PropertySimple("url", vdbURL));
+
+		getModels(mcVdb, configuration);
+
+		return configuration;
+
+	}
+
+	/**
+	 * @param mcVdb
+	 * @param configuration
+	 * @throws Exception
+	 */
+	private void getModels(ManagedComponent mcVdb, Configuration configuration)
+			 {
+		// Get models from VDB
+		ManagedProperty property = mcVdb.getProperty("models");
+		CollectionValueSupport valueSupport = (CollectionValueSupport) property
+				.getValue();
+		MetaValue[] metaValues = valueSupport.getElements();
+
+		PropertyList sourceModelsList = new PropertyList("sourceModels");
+		configuration.put(sourceModelsList);
+		
+		PropertyList multiSourceModelsList = new PropertyList("multisourceModels");
+		configuration.put(multiSourceModelsList);
+
+		PropertyList logicalModelsList = new PropertyList("logicalModels");
+		configuration.put(logicalModelsList);
+
+		PropertyList errorList = new PropertyList("errorList");
+		configuration.put(errorList);
+
+		for (MetaValue value : metaValues) {
+			GenericValueSupport genValueSupport = (GenericValueSupport) value;
+			ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
+					.getValue();
+
+			Boolean isSource = Boolean.TRUE;
+			try {
+				isSource = ProfileServiceUtil.booleanValue(managedObject
+						.getProperty("source").getValue());
+			} catch (Exception e) {
+				LOG.error(e.getMessage());
+			}
+
+			Boolean supportMultiSource = Boolean.TRUE;
+			try {
+				supportMultiSource = ProfileServiceUtil
+						.booleanValue(managedObject.getProperty(
+								"supportsMultiSourceBindings").getValue());
+			} catch (Exception e) {
+				LOG.error(e.getMessage());
+			}
+
+			String modelName = managedObject.getName();
+			ManagedProperty connectorBinding = managedObject
+					.getProperty("sourceMappings");
+			Collection<Map<String, String>> sourceList = new ArrayList<Map<String, String>>();
+			getSourceMappingValue(connectorBinding.getValue(), sourceList);
+			String visibility = ((SimpleValueSupport) managedObject
+					.getProperty("visible").getValue()).getValue().toString();
+			String type = ((EnumValueSupport) managedObject.getProperty(
+					"modelType").getValue()).getValue().toString();
+
+			// Get any model errors/warnings
+			MetaValue errors = managedObject.getProperty("errors").getValue();
+			if (errors != null) {
+				CollectionValueSupport errorValueSupport = (CollectionValueSupport) errors;
+				MetaValue[] errorArray = errorValueSupport.getElements();
+				for (MetaValue error : errorArray) {
+					GenericValueSupport errorGenValueSupport = (GenericValueSupport) error;
+					ManagedObject errorMo = (ManagedObject) errorGenValueSupport
+							.getValue();
+					String severity = ((SimpleValue) errorMo.getProperty(
+							"severity").getValue()).getValue().toString();
+					String message = ((SimpleValue) errorMo
+							.getProperty("value").getValue()).getValue()
+							.toString();
+					PropertyMap errorMap = new PropertyMap("errorMap",
+							new PropertySimple("severity", severity),
+							new PropertySimple("message", message));
+					errorList.add(errorMap);
+				}
+			}
+
+			for (Map<String, String> sourceMap : sourceList) {
+
+				if (isSource) {
+					String sourceName = (String) sourceMap.get("name");
+					String jndiName = (String) sourceMap.get("jndiName");
+					PropertyMap multiSourceModel = null;
+					PropertyMap multiSourceModel2 = null;
+
+				PropertyMap model = null;
+				if (supportMultiSource){
+					//TODO need to loop through multisource models
+						multiSourceModel = new PropertyMap("model",
+									new PropertySimple("name", modelName),
+									new PropertySimple("sourceName", sourceName),
+									new PropertySimple("jndiName", jndiName));
+						multiSourceModelsList.add(multiSourceModel);
+					 model = new PropertyMap("model",
+							new PropertySimple("name", modelName),
+							new PropertySimple("sourceName", "See below"),
+							new PropertySimple("jndiName", "See below"),
+							new PropertySimple("visibility", visibility),
+							new PropertySimple("supportsMultiSource",
+									true));
+					 	sourceModelsList.add(model);
+					 	multiSourceModel = new PropertyMap("model",
+								new PropertySimple("name", modelName),
+								new PropertySimple("sourceName", sourceName),
+								new PropertySimple("jndiName", jndiName));
+					multiSourceModelsList.add(multiSourceModel);
+					}else{
+						 model = new PropertyMap("model",
+								new PropertySimple("name", modelName),
+								new PropertySimple("sourceName", sourceName),
+								new PropertySimple("jndiName", jndiName),
+								new PropertySimple("visibility", visibility),
+								new PropertySimple("supportsMultiSource",
+										supportMultiSource));
+						 sourceModelsList.add(model);
+					}
+				} else {
+					PropertyMap model = new PropertyMap("model",
+							new PropertySimple("name", modelName),
+							new PropertySimple("type", type),
+							new PropertySimple("visibility", visibility));
+
+					logicalModelsList.add(model);
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param <T>
+	 * @param pValue
+	 * @param list
+	 */
+	public static <T> void getSourceMappingValue(MetaValue pValue,
+			Collection<Map<String, String>> list) {
+		Map<String, String> map = new HashMap<String, String>();
+		list.add(map);
+		MetaType metaType = pValue.getMetaType();
+		if (metaType.isCollection()) {
+			for (MetaValue value : ((CollectionValueSupport) pValue)
+					.getElements()) {
+				GenericValueSupport genValue = ((GenericValueSupport) value);
+				ManagedObject mo = (ManagedObject) genValue.getValue();
+				String sourceName = mo.getName();
+				String jndi = ((SimpleValue) mo.getProperty("jndiName")
+						.getValue()).getValue().toString();
+				map.put("name", sourceName);
+				map.put("jndiName", jndi);
+			}
+		} else {
+			throw new IllegalStateException(pValue
+					+ " is not a Collection type");
+		}
+	}
+
 }
-

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBDiscoveryComponent.java	2010-04-20 19:17:40 UTC (rev 2064)
@@ -23,11 +23,14 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import javax.naming.NamingException;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.jboss.managed.api.ComponentType;
@@ -40,6 +43,7 @@
 import org.jboss.metatype.api.values.EnumValueSupport;
 import org.jboss.metatype.api.values.GenericValueSupport;
 import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.MetaValueFactory;
 import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.rhq.core.domain.configuration.Configuration;
@@ -50,6 +54,7 @@
 import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
 import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
 import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.teiid.adminapi.Request;
 import org.teiid.rhq.plugin.util.PluginConstants;
 import org.teiid.rhq.plugin.util.ProfileServiceUtil;
 
@@ -97,7 +102,7 @@
 					vdbVersion.toString(), // Version
 					PluginConstants.ComponentType.VDB.DESCRIPTION, // Description
 					discoveryContext.getDefaultPluginConfiguration(), // Plugin
-																		// Config
+					// Config
 					null // Process info from a process scan
 			);
 
@@ -113,8 +118,7 @@
 
 			getModels(mcVdb, configuration);
 
-			// Get VDB errors/warnings
-			// getErrors(mcVdb, configuration);
+		//	getProperties(mcVdb, configuration);
 
 			detail.setPluginConfiguration(configuration);
 
@@ -141,13 +145,16 @@
 
 		PropertyList sourceModelsList = new PropertyList("sourceModels");
 		configuration.put(sourceModelsList);
+		
+		PropertyList multiSourceModelsList = new PropertyList("multisourceModels");
+		configuration.put(multiSourceModelsList);
 
 		PropertyList logicalModelsList = new PropertyList("logicalModels");
 		configuration.put(logicalModelsList);
 
 		PropertyList errorList = new PropertyList("errorList");
 		configuration.put(errorList);
-	
+
 		for (MetaValue value : metaValues) {
 			GenericValueSupport genValueSupport = (GenericValueSupport) value;
 			ManagedObjectImpl managedObject = (ManagedObjectImpl) genValueSupport
@@ -177,10 +184,9 @@
 			getSourceMappingValue(connectorBinding.getValue(), sourceList);
 			String visibility = ((SimpleValueSupport) managedObject
 					.getProperty("visible").getValue()).getValue().toString();
-			String type = ((EnumValueSupport) managedObject
-					.getProperty("modelType").getValue()).getValue().toString();
+			String type = ((EnumValueSupport) managedObject.getProperty(
+					"modelType").getValue()).getValue().toString();
 
-			
 			// Get any model errors/warnings
 			MetaValue errors = managedObject.getProperty("errors").getValue();
 			if (errors != null) {
@@ -195,7 +201,9 @@
 					String message = ((SimpleValue) errorMo
 							.getProperty("value").getValue()).getValue()
 							.toString();
-					PropertyMap errorMap = new PropertyMap("errorMap", new PropertySimple("severity", severity), new PropertySimple("message", message));
+					PropertyMap errorMap = new PropertyMap("errorMap",
+							new PropertySimple("severity", severity),
+							new PropertySimple("message", message));
 					errorList.add(errorMap);
 				}
 			}
@@ -205,7 +213,7 @@
 				if (isSource) {
 					String sourceName = (String) sourceMap.get("name");
 					String jndiName = (String) sourceMap.get("jndiName");
-
+					
 					PropertyMap model = new PropertyMap("model",
 							new PropertySimple("name", modelName),
 							new PropertySimple("sourceName", sourceName),
@@ -255,4 +263,44 @@
 		}
 	}
 
+	/**
+	 * @param mc
+	 * @param configuration
+	 * @throws Exception
+	 */
+	private void getProperties(ManagedComponent mcVdb,
+			Configuration configuration) {
+
+		ManagedProperty mp = mcVdb.getProperty("JAXBProperties");
+		Collection<Object> list = new ArrayList<Object>();
+		getRequestCollectionValue(mp.getValue(), list);
+		PropertyMap vdbPropertyMap = new PropertyMap("vdbProperties");
+		configuration.put(vdbPropertyMap);
+		setProperties(mp, vdbPropertyMap);
+
+	}
+
+	/**
+	 * @param mcMap
+	 * @param propertyMap
+	 */
+	private void setProperties(ManagedProperty mProp, PropertyMap propertyMap) {
+		//String value = ProfileServiceUtil.stringValue(mProp.getValue());
+		PropertySimple prop = new PropertySimple(mProp.getName(), "test");
+		propertyMap.put(prop);
+
+	}
+	
+	public static <T> void getRequestCollectionValue(MetaValue pValue,
+			Collection<Object> list) {
+		MetaType metaType = pValue.getMetaType();
+		if (metaType.isCollection()) {
+			for (MetaValue value : ((CollectionValueSupport) pValue)
+					.getElements()) {
+				SimpleValueSupport property = (SimpleValueSupport)value;
+					list.add(property);
+			}
+		}
+	}
+
 }
\ No newline at end of file

Modified: trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java	2010-04-20 19:17:40 UTC (rev 2064)
@@ -111,6 +111,7 @@
 
 				public final static String STATUS = "status"; //$NON-NLS-1$ 
 				public final static String QUERY_COUNT = "queryCount"; //$NON-NLS-1$            
+				public final static String ERROR_COUNT = "errorCount"; //$NON-NLS-1$
 				public final static String SESSION_COUNT = "sessionCount"; //$NON-NLS-1$
 				public final static String LONG_RUNNING_QUERIES = "longRunningQueries"; //$NON-NLS-1$     
 

Modified: trunk/console/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-04-20 19:13:08 UTC (rev 2063)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-04-20 19:17:40 UTC (rev 2064)
@@ -4,9 +4,8 @@
 		* JBoss, Home of Professional Open Source. * See the COPYRIGHT.txt
 		file distributed with this work for information * regarding copyright
 		ownership. Some portions may be licensed * to Red Hat, Inc. under one
-		or more contributor license agreements. * * This library is free
-		software; you can redistribute it and/or * modify it under the terms
-		of the GNU Lesser General Public * License as published by the Free
+		or more contributor license agreements. * * This library is free of
+		the GNU Lesser General Public * License as published by the Free
 		Software Foundation; either * version 2.1 of the License, or (at your
 		option) any later version. * * This library is distributed in the hope
 		that it will be useful, * but WITHOUT ANY WARRANTY; without even the
@@ -17,232 +16,7 @@
 		Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
 		02110-1301 USA. */
 	-->
-
-<!DOCTYPE plugin [
-<!ENTITY datasourceAndConnectionFactoryAdvancedResourceConfigProps '
-    <c:simple-property name="allocation-retry" type="integer" required="false"
-                       defaultValue="0">
-        <c:description>
-            The number of times that allocating a connection should be tried before throwing an exception. The default
-            is 0.
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="allocation-retry-wait-millis" type="long" required="false"  units="milliseconds"
-                       defaultValue="5000">
-        <c:description>
-            The time in milliseconds to wait between retrying to allocate a connection. The default is 5000 (5 seconds).
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="background-validation" type="boolean" required="false" defaultValue="false">
-        <c:description>
-            Specify if connections should be validated on a background thread versus being validated
-            prior to use. Background validation is meant to reduce the overall load on the RDBMS system when validating
-            a connection. The default is No.
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="background-validation-millis" type="long" required="false" units="milliseconds"
-                       defaultValue="0">
-        <c:description>
-            The interval, in milliseconds, at which the ConnectionValidator will run.  Set to 0 to disable background
-            validation. The default is 0.
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="blocking-timeout-millis" displayName="Blocking Timeout in Milliseconds"
-                       units="milliseconds" defaultValue="30000"
-                       type="integer" required="false">
-        <c:description>
-            Indicates the maximum time in milliseconds to block while waiting for a connection before throwing
-            an exception. Note that this blocks only while waiting for a permit for a connection, and will never
-            throw an exception if creating a new connection takes an inordinately long time. The default is 30000
-            (30 seconds).
-        </c:description>
-        <c:constraint>
-            <c:integer-constraint minimum="0"/>
-        </c:constraint>
-    </c:simple-property>
-
-    <c:simple-property name="idle-timeout-minutes" type="integer" activationPolicy="immediate"
-                       displayName="Idle Timeout" units="minutes" required="false" defaultValue="30">
-        <c:description>
-            The maximum time, in minutes, a connection may be idle before being closed. The default is 30.
-        </c:description>
-        <c:constraint>
-            <c:integer-constraint minimum="0"/>
-        </c:constraint>
-    </c:simple-property>
-
-    <c:simple-property name="isSameRM-override-value" type="boolean" required="false">
-        <c:description>
-            If set, unconditionally sets the boolean return value of javax.transaction.xa.XAResource.isSameRM(XAResource).
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="jmx-invoker-name" required="false">
-        <c:description>
-            The ObjectName of the JMX Invoker MBean associated with this datasource.
-        </c:description>
-    </c:simple-property>
-
-    <c:map-property name="metadata" required="false" description="Metadata properties.">
-        <c:simple-property required="false" name="typeMapping">
-            <c:description>
-                The name of the corresponding type-mapping in conf/standardjbosscmp-jdbc.xml.
-            </c:description>
-            <c:property-options>
-                <c:option name="Cloudscape" value="Cloudscape"/>
-                <c:option name="DB2" value="DB2"/>
-                <c:option name="DB2/400" value="DB2/400"/>
-                <c:option name="Derby" value="Derby"/>
-                <c:option name="Firebird" value="Firebird"/>
-                <c:option name="FirstSQL/J" value="FirstSQL/J"/>
-                <c:option name="Hypersonic SQL" value="Hypersonic SQL"/>
-                <c:option name="InformixDB" value="InformixDB"/>
-                <c:option name="Ingres" value="Ingres"/>
-                <c:option name="InterBase" value="InterBase"/>
-                <c:option name="MaxDB" value="MaxDB"/>
-                <c:option name="McKoi" value="McKoi"/>
-                <c:option name="Mimer SQL" value="Mimer SQL"/>
-                <c:option name="MS SQLSERVER" value="MS SQLSERVER"/>
-                <c:option name="MS SQLSERVER2000" value="MS SQLSERVER2000"/>
-                <c:option name="Oracle7" value="Oracle7"/>
-                <c:option name="Oracle8" value="Oracle8"/>
-                <c:option name="Oracle9i" value="Oracle9i"/>
-                <c:option name="PointBase" value="PointBase"/>
-                <c:option name="PostgreSQL" value="PostgreSQL"/>
-                <c:option name="PostgreSQL 7.2" value="PostgreSQL 7.2"/>
-                <c:option name="PostgreSQL 8.0" value="PostgreSQL 8.0"/>
-                <c:option name="SapDB" value="SapDB"/>
-                <c:option name="SOLID" value="SOLID"/>
-                <c:option name="Sybase" value="Sybase"/>
-            </c:property-options>
-        </c:simple-property>
-    </c:map-property>
-
-    <c:simple-property name="no-tx-separate-pools" type="boolean"
-                       displayName="No Tx Separate Pools" required="false">
-        <c:description>Whether or not to use separate pools. The default is Yes.</c:description>
-        <c:property-options>
-            <c:option name="True" value="true"/>
-            <c:option name="False" value="false"/>
-        </c:property-options>
-    </c:simple-property>
-
-    <c:simple-property name="prefill" type="boolean" required="false">
-        <c:description>
-            Whether to attempt to prefill the connection pool to the minimum number of connections. NOTE: Only
-            supporting pools (OnePool) support this feature. A warning can be found in the logs if the pool does not
-            support this. The default is No.
-        </c:description>
-    </c:simple-property>
-
-    <c:map-property name="security-domain" displayName="Security Settings" required="false">
-        <c:description>
-            Security settings for connections in the pool.
-        </c:description>
-
-        <c:simple-property name="securityDeploymentType" type="string"
-                           required="false" defaultValue="NONE">
-            <c:description>
-                Indicates whether Subject (from security domain), application-supplied parameters
-                (such as from getConnection(user, pw)), both Subject and app-supplied parameters,
-                or neither Subject nor app-supplied parameters are used to distinguish connections
-                in the pool. The default is "NONE".
-            </c:description>
-            <c:property-options>
-                <c:option name="None" value="NONE"/>
-                <c:option name="Application" value="APPLICATION"/>
-                <c:option name="Domain" value="DOMAIN"/>
-                <c:option name="Domain and Application" value="DOMAIN_AND_APPLICATION"/>
-            </c:property-options>
-        </c:simple-property>
-
-        <c:simple-property name="domain" type="string"
-                           required="false">
-            <c:description>
-                The name of the JAAS security manager that will handle authentication (only required if security
-                deployment type is DOMAIN or DOMAIN_AND_APPLICATION). This name correlates to the JAAS login-config.xml
-                descriptor application-policy/name attribute.
-            </c:description>
-        </c:simple-property>
-    </c:map-property>
-
-    <c:simple-property name="statistics-formatter" required="false">
-        <c:description>
-             The fully qualified class name of the class to use for formatting managed connection pool statistics for
-             this datasource. The class must implement the org.jboss.resource.statistic.formatter.StatisticsFormatter.
-             interface. The default is "org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter".
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="type-mapping" displayName="Type Mapping" required="false">
-        <c:description>
-            The name of the corresponding type-mapping in conf/standardjbosscmp-jdbc.xml.
-        </c:description>
-        <c:property-options>
-            <c:option name="Cloudscape" value="Cloudscape"/>
-            <c:option name="DB2" value="DB2"/>
-            <c:option name="DB2/400" value="DB2/400"/>
-            <c:option name="Derby" value="Derby"/>
-            <c:option name="Firebird" value="Firebird"/>
-            <c:option name="FirstSQL/J" value="FirstSQL/J"/>
-            <c:option name="Hypersonic SQL" value="Hypersonic SQL"/>
-            <c:option name="InformixDB" value="InformixDB"/>
-            <c:option name="Ingres" value="Ingres"/>
-            <c:option name="InterBase" value="InterBase"/>
-            <c:option name="MaxDB" value="MaxDB"/>
-            <c:option name="McKoi" value="McKoi"/>
-            <c:option name="Mimer SQL" value="Mimer SQL"/>
-            <c:option name="MS SQLSERVER" value="MS SQLSERVER"/>
-            <c:option name="MS SQLSERVER2000" value="MS SQLSERVER2000"/>
-            <c:option name="Oracle7" value="Oracle7"/>
-            <c:option name="Oracle8" value="Oracle8"/>
-            <c:option name="Oracle9i" value="Oracle9i"/>
-            <c:option name="PointBase" value="PointBase"/>
-            <c:option name="PostgreSQL" value="PostgreSQL"/>
-            <c:option name="PostgreSQL 7.2" value="PostgreSQL 7.2"/>
-            <c:option name="PostgreSQL 8.0" value="PostgreSQL 8.0"/>            
-            <c:option name="SapDB" value="SapDB"/>
-            <c:option name="SOLID" value="SOLID"/>
-            <c:option name="Sybase" value="Sybase"/>
-        </c:property-options>
-    </c:simple-property>
-
-    <c:simple-property name="use-java-context"
-                       displayName="Use Java Context"
-                       type="boolean" defaultValue="true"
-                       required="false">
-        <c:description>
-            Indicates whether the JNDI name should be bound under the "java" context,
-            which causes the DataSource to only be accessible from within the JBossAS VM.
-            The default is Yes.
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="use-strict-min" type="boolean" required="false">
-        <c:description>
-             Whether idle connections below the min-pool-size should be closed. The default is No.
-        </c:description>
-    </c:simple-property>
-
-    <c:simple-property name="validate-on-match" type="boolean" required="false" defaultValue="true">
-        <c:description>
-            The validate-on-match element indicates whether or not connection level validation should be done when a
-            connection factory attempts to match a managed connection for a given set. This is typically exclusive to
-            the use of background validation. The default is Yes.
-        </c:description>
-    </c:simple-property>
-'>
-
-]>
-
-<!--############################################# END OF XML ENTITIES ###############################################-->
-
-
-
+	
 <plugin name="TeiidPlugin" displayName="Teiid Plugin" package="org.teiid.rhq.plugin"
 	version="2.0.0" description="Supports management and monitoring of JBoss Teiid"
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:xmlns:rhq-plugin"
@@ -251,9 +25,9 @@
 	<depends plugin="JMX" />
 	<depends plugin="JBossAS5" useClasses="true" />
 
-	<server name="Data Services" description="JBoss Enterprise Data Services"
+	<server name="Data Services" description="Teiid Data Services"
 		class="PlatformComponent" discovery="PlatformDiscoveryComponent"
-		singleton="true" >
+		singleton="true">
 
 		<runs-inside>
 			<parent-resource-type name="JBossAS Server"
@@ -412,8 +186,9 @@
 						description="State of this Teiid instance" required="false"
 						readOnly="true" />
 					<c:simple-property name="resultSetCacheMaxEntries"
-						displayName="Result Set Cache Max Entries" description="The maximum number of result set cache entries. 0 indicates no limit. (default 1024)"
-						required="false" readOnly="true" />						
+						displayName="Result Set Cache Max Entries"
+						description="The maximum number of result set cache entries. 0 indicates no limit. (default 1024)"
+						required="false" readOnly="true" />
 					<c:simple-property name="maxRowsFetchSize"
 						displayName="Max Rows Fetch Size"
 						description="The maximum number of result set cache entries. 0 indicates no limit. (default 1024)"
@@ -433,7 +208,7 @@
 						description="Process pool maximum thread count. (default 16) Increase this value if your load includes a large number of XQueries or if the system's available processors is larger than 8"
 						required="false" readOnly="true" />
 					<c:simple-property name="timeSliceInMilli"
-						displayName="Time Slice In Milli"
+						displayName="Time Slice In Milliseconds"
 						description="Query processor time slice, in milliseconds. (default 2000)"
 						required="false" readOnly="true" />
 					<c:simple-property name="processDebugAllowed"
@@ -450,22 +225,23 @@
 					<c:simple-property name="resultSetCacheEnabled"
 						displayName="Result Set Cache Enabled"
 						description="Denotes whether or not result set caching is enabled. (default true)"
-						required="false" readOnly="true" type="boolean"/>
+						required="false" readOnly="true" type="boolean" />
 					<c:simple-property name="codeTablesMaxRowsPerTable"
-						displayName="Code Tables Max Rows PerTable"
+						displayName="Code Tables Max Rows Per Table"
 						description="Maximum number of records in all lookup tables (default 200000)"
 						required="false" readOnly="true" />
 					<c:simple-property name="activeSessionsCount"
 						displayName="Active Session Count" description="Count of active sessions"
 						required="false" readOnly="true" />
 				</c:map-property>
-				<c:map-property name="bufferServiceProperties" displayName="Buffer Service Properties"
-					description="Properties for use by the Buffer Service">
+				<c:map-property name="bufferServiceProperties"
+					displayName="Buffer Service Properties" description="Properties for use by the Buffer Service">
 					<c:simple-property name="state" displayName="State"
 						description="State of this bean instance" required="false"
 						readOnly="true" />
 					<c:simple-property name="processorBatchSize"
-						displayName="Processor Batch Size" description="The max row count of a batch sent internally within the query processor. Should be &lt;= the connectorBatchSize. (default 256)"
+						displayName="Processor Batch Size"
+						description="The max row count of a batch sent internally within the query processor. Should be &lt;= the connectorBatchSize. (default 256)"
 						required="false" readOnly="true" />
 					<c:simple-property name="connectorBatchSize"
 						displayName="Connector Batch Size"
@@ -483,28 +259,24 @@
 						description="The number of batch columns to allow in memory (default 16384).  This value should be set lower or higher depending on the available memory to Teiid in the VM.  16384 is considered a good default for a dedicated 32-bit VM running Teiid with a 1 gig heap."
 						required="false" readOnly="true" />
 				</c:map-property>
-				<c:map-property name="authorizationServiceProperties" displayName="Authorization Service Properties"
-					description="Properties for use by the Authorization Service">
+				<c:map-property name="authorizationServiceProperties"
+					displayName="Authorization Service Properties" description="Properties for use by the Authorization Service">
 					<c:simple-property name="state" displayName="State"
 						description="State of this bean instance" required="false"
 						readOnly="true" />
 				</c:map-property>
-				<c:map-property name="jdbcSocketConfigurationProperties" displayName="Jdbc Socket Configuration Properties"
-					description="Properties for use by the Jdbc Socket Configuration">
+				<c:map-property name="jdbcSocketConfigurationProperties"
+					displayName="Jdbc Socket Configuration Properties" description="Properties for use by the Jdbc Socket Configuration">
 					<c:simple-property name="state" displayName="State"
 						description="State of this bean instance" required="false"
 						readOnly="true" />
-					<c:simple-property name="portNumber"
-						displayName="Port Number" description="Port Number"
-						required="false" readOnly="true" />
-					<c:simple-property name="enabled" 
-						displayName=" SSL Enabled"
-						description="SSL enabled"
-						required="false" readOnly="true" type="boolean" default="true" />
-					<c:simple-property name="hostName"
-						displayName="Host Name"
-						description="Host Name"
-						required="false" readOnly="true" />
+					<c:simple-property name="portNumber" displayName="Port Number"
+						description="Port Number" required="false" readOnly="true" />
+					<c:simple-property name="enabled" displayName=" SSL Enabled"
+						description="SSL enabled" required="false" readOnly="true" type="boolean"
+						default="true" />
+					<c:simple-property name="hostName" displayName="Host Name"
+						description="Host Name" required="false" readOnly="true" />
 					<c:simple-property name="maxSocketThreads"
 						displayName="Max Socket Threads" description="Max NIO threads"
 						required="false" readOnly="true" />
@@ -515,15 +287,16 @@
 					<c:simple-property name="outputBufferSize"
 						displayName="Output Buffer Size"
 						description="SO_SNDBUF size, 0 indicates that system default should be used (default 0)"
-						required="false" readOnly="true" />	
+						required="false" readOnly="true" />
 				</c:map-property>
-				<c:map-property name="sessionServiceProperties" displayName="Session Service Properties"
-					description="Properties for use by the Session Service">
+				<c:map-property name="sessionServiceProperties"
+					displayName="Session Service Properties" description="Properties for use by the Session Service">
 					<c:simple-property name="state" displayName="State"
 						description="State of this bean instance" required="false"
 						readOnly="true" />
 					<c:simple-property name="sessionExpirationTimeLimit"
-						displayName="Session Expiration Time Limit" description="Max allowed time before the session is terminated by the system, 0 indicates unlimited (default 0)"
+						displayName="Session Expiration Time Limit"
+						description="Max allowed time before the session is terminated by the system, 0 indicates unlimited (default 0)"
 						required="false" readOnly="true" />
 					<c:simple-property name="sessionMaxLimit"
 						displayName="Session Max Limit"
@@ -533,10 +306,9 @@
 			</c:group>
 		</resource-configuration>
 
-		<service name="Virtual Database (VDB)s"
-			description="JBoss Enterprise Data Services Virtual Databases" class="VDBComponent"
-			discovery="VDBDiscoveryComponent" createDeletePolicy="both"
-			creationDataType="content">
+		<service name="Virtual Database (VDB)s" description="Teiid Data Services Virtual Databases"
+			class="VDBComponent" discovery="VDBDiscoveryComponent"
+			createDeletePolicy="both" creationDataType="content">
 
 			<operation name="getSessions" displayName="View VDB Sessions"
 				description="Get current sessions currently connected to this VDB">
@@ -606,11 +378,11 @@
 			<metric displayName="Status" defaultOn="true" dataType="trait"
 				displayType="summary" category="availability" property="status"
 				description="The status of this VDB" />
-				
-			<metric displayName="Error" defaultOn="true" dataType="trait"
-				displayType="summary" category="availability" property="errormessages"
-				description="The status of this VDB" />	
 
+			<metric displayName="Errors" defaultOn="true" dataType="trait"
+				displayType="summary" category="availability" property="errorCount"
+				description="Whether or not errors exist for this VDB" />
+
 			<content name="vdb" displayName="VDB Archive" category="deployable"
 				isCreationType="true">
 			</content>
@@ -628,15 +400,15 @@
 						description="The Virtual Database Status" required="false"
 						summary="true">
 						<c:property-options>
-							<c:option value="ACTIVE" name="ACTIVE" />
-							<c:option value="INACTIVE" name="INACTIVE" default="true" />
+							<c:option value="ACTIVE" name="UP" />
+							<c:option value="INACTIVE" name="DOWN" default="true" />
 						</c:property-options>
 					</c:simple-property>
 					<c:simple-property name="url" type="string"
 						description="The Virtual Database URL" required="false" />
 				</c:group>
 				<c:group name="Models" displayName="Models" hiddenByDefault="false">
-					<c:list-property name="sourceModels" readOnly="true" 
+					<c:list-property name="sourceModels" readOnly="true"
 						description="The source models for this VDB">
 						<c:map-property name="model">
 							<c:simple-property name="name" displayName="Name"
@@ -648,13 +420,13 @@
 								displayName="Connector Binding JNDI Name" description="JNDI name for this connector binding"
 								required="false" />
 							<c:simple-property name="visibility"
-								displayName="Visible" description="Visibility of the model" 
-								required="true">
+								displayName="Visible" description="Visibility of the model"
+								required="true" type="boolean">
 							</c:simple-property>
 							<c:simple-property name="supportsMultiSource"
 								displayName="Supports Multi-source?"
 								description="Determines if this model supports multi-source bindings"
-								required="true" default="true" />
+								required="true" default="true" type="boolean" />
 						</c:map-property>
 					</c:list-property>
 					<c:list-property name="logicalModels" readOnly="true"
@@ -683,6 +455,7 @@
 				</c:group>
 			</resource-configuration>
 
+
 		</service>
 
 	</server>



More information about the teiid-commits mailing list