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

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu May 13 14:31:51 EDT 2010


Author: tejones
Date: 2010-05-13 14:31:49 -0400 (Thu, 13 May 2010)
New Revision: 2125

Added:
   trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java
Removed:
   trunk/console/src/main/java/org/teiid/rhq/plugin/ModelComponent.java
   trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java
Modified:
   trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.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 Translator discovery and configuration

Deleted: trunk/console/src/main/java/org/teiid/rhq/plugin/ModelComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/ModelComponent.java	2010-05-13 16:19:04 UTC (rev 2124)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/ModelComponent.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -1,101 +0,0 @@
-/*
- * 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 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 implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-package org.teiid.rhq.plugin;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.PropertySimple;
-import org.rhq.core.domain.measurement.MeasurementDataNumeric;
-import org.rhq.core.domain.measurement.MeasurementReport;
-import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
-import org.rhq.core.pluginapi.configuration.ConfigurationFacet;
-import org.rhq.core.pluginapi.measurement.MeasurementFacet;
-import org.teiid.rhq.comm.ConnectionConstants;
-
-
-/**
- * Component class for the MetaMatrix Host Controller process.
- * 
- */
-public class ModelComponent extends Facet {
-	private final Log LOG = LogFactory
-			.getLog(ModelComponent.class);
-
-
-	/** 
-     * @see org.teiid.rhq.plugin.Facet#getComponentType()
-     * @since 1.0
-     */
-    @Override
-    String getComponentType() {
-        return ConnectionConstants.ComponentType.Resource.Model.TYPE;
-    }
-    
-    /**
-	 * The plugin container will call this method when your resource component
-	 * has been scheduled to collect some measurements now. It is within this
-	 * method that you actually talk to the managed resource and collect the
-	 * measurement data that is has emitted.
-	 * 
-	 * @see MeasurementFacet#getValues(MeasurementReport, Set)
-	 */
-	public void getValues(MeasurementReport report,
-			Set<MeasurementScheduleRequest> requests) {
-		for (MeasurementScheduleRequest request : requests) {
-			String name = request.getName();
-
-			// TODO: based on the request information, you must collect the
-			// requested measurement(s)
-			// you can use the name of the measurement to determine what you
-			// actually need to collect
-			try {
-				Number value = new Integer(1); // dummy measurement value -
-												// this should come from the
-												// managed resource
-				report.addData(new MeasurementDataNumeric(request, value
-						.doubleValue()));
-			} catch (Exception e) {
-				LOG.error("Failed to obtain measurement [" + name //$NON-NLS-1$
-						+ "]. Cause: " + e); //$NON-NLS-1$
-			}
-		}
-
-		return;
-	}
-	
-	protected void setOperationArguments(String name, Configuration configuration,
-			Map argumentMap) {
-
-		if (name.equals(ConnectionConstants.ComponentType.Operation.GET_PROPERTIES)){
-			String key = ConnectionConstants.IDENTIFIER;
-			argumentMap.put(key, getComponentIdentifier());
-		}
- 		
-	} 
-	
-}
\ No newline at end of file

Deleted: trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java	2010-05-13 16:19:04 UTC (rev 2124)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -1,126 +0,0 @@
-/*
- * 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 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 implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- * 
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- */
-package org.teiid.rhq.plugin;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.jboss.managed.api.ComponentType;
-import org.jboss.managed.api.ManagedComponent;
-import org.jboss.managed.api.ManagedProperty;
-import org.jboss.managed.plugins.ManagedObjectImpl;
-import org.jboss.metatype.api.values.CollectionValueSupport;
-import org.jboss.metatype.api.values.GenericValueSupport;
-import org.jboss.metatype.api.values.MetaValue;
-import org.jboss.metatype.api.values.SimpleValueSupport;
-import org.rhq.core.domain.configuration.Configuration;
-import org.rhq.core.domain.configuration.Property;
-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.pluginapi.inventory.DiscoveredResourceDetails;
-import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
-import org.rhq.core.pluginapi.inventory.ResourceComponent;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
-import org.teiid.rhq.plugin.util.PluginConstants;
-import org.teiid.rhq.plugin.util.ProfileServiceUtil;
-
-/**
- * Discovery component for the MetaMatrix Host controller process
- * 
- */
-public class ModelDiscoveryComponent implements ResourceDiscoveryComponent {
-
-	private final Log log = LogFactory.getLog(this.getClass());
-
-	public Set<DiscoveredResourceDetails> discoverResources(
-			ResourceDiscoveryContext discoveryContext)
-			throws InvalidPluginConfigurationException, Exception {
-		Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
-
-		for (int i = 0; i < 3; i++) {
-			String modelName = "myModel" + i;
-
-			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
-					null // Process info from a process scan
-			);
-
-			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);
-			
-			detail.setPluginConfiguration(c);
-			// Add to return values
-			discoveredResources.add(detail);
-			log.info("Discovered Teiid Model: " + modelName);
-		}
-
-		return discoveredResources;
-	}
-
-	/**
-	 * @param mcVdb
-	 * @param configuration
-	 */
-	private void getConnectors(ManagedComponent model,
-			Configuration configuration) {
-		// Get Connector(s) from Model
-		ManagedProperty property = model.getProperty("connectorBindingNames");
-		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));
-			connectorsList.add(connector);
-		}
-	}
-
-}
\ No newline at end of file

Copied: trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java (from rev 2015, trunk/console/src/main/java/org/teiid/rhq/plugin/ModelComponent.java)
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java	                        (rev 0)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorComponent.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -0,0 +1,101 @@
+/*
+ * 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 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 implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.rhq.plugin;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.measurement.MeasurementDataNumeric;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.configuration.ConfigurationFacet;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.teiid.rhq.comm.ConnectionConstants;
+
+
+/**
+ * Component class for the MetaMatrix Host Controller process.
+ * 
+ */
+public class TranslatorComponent extends Facet {
+	private final Log LOG = LogFactory
+			.getLog(TranslatorComponent.class);
+
+
+	/** 
+     * @see org.teiid.rhq.plugin.Facet#getComponentType()
+     * @since 1.0
+     */
+    @Override
+    String getComponentType() {
+        return ConnectionConstants.ComponentType.Resource.Model.TYPE;
+    }
+    
+    /**
+	 * The plugin container will call this method when your resource component
+	 * has been scheduled to collect some measurements now. It is within this
+	 * method that you actually talk to the managed resource and collect the
+	 * measurement data that is has emitted.
+	 * 
+	 * @see MeasurementFacet#getValues(MeasurementReport, Set)
+	 */
+	public void getValues(MeasurementReport report,
+			Set<MeasurementScheduleRequest> requests) {
+		for (MeasurementScheduleRequest request : requests) {
+			String name = request.getName();
+
+			// TODO: based on the request information, you must collect the
+			// requested measurement(s)
+			// you can use the name of the measurement to determine what you
+			// actually need to collect
+			try {
+				Number value = new Integer(1); // dummy measurement value -
+												// this should come from the
+												// managed resource
+				report.addData(new MeasurementDataNumeric(request, value
+						.doubleValue()));
+			} catch (Exception e) {
+				LOG.error("Failed to obtain measurement [" + name //$NON-NLS-1$
+						+ "]. Cause: " + e); //$NON-NLS-1$
+			}
+		}
+
+		return;
+	}
+	
+	protected void setOperationArguments(String name, Configuration configuration,
+			Map argumentMap) {
+
+		if (name.equals(ConnectionConstants.ComponentType.Operation.GET_PROPERTIES)){
+			String key = ConnectionConstants.IDENTIFIER;
+			argumentMap.put(key, getComponentIdentifier());
+		}
+ 		
+	} 
+	
+}
\ No newline at end of file

Copied: trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java (from rev 2064, trunk/console/src/main/java/org/teiid/rhq/plugin/ModelDiscoveryComponent.java)
===================================================================
--- trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java	                        (rev 0)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/TranslatorDiscoveryComponent.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -0,0 +1,147 @@
+/*
+ * 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 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 implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package org.teiid.rhq.plugin;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.values.CollectionValueSupport;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.MetaValueFactory;
+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.pluginapi.inventory.DiscoveredResourceDetails;
+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.impl.PropertyMetadata;
+import org.teiid.rhq.plugin.util.PluginConstants;
+import org.teiid.rhq.plugin.util.ProfileServiceUtil;
+
+/**
+ * Discovery component for Teiid Translator instances
+ * 
+ */
+public class TranslatorDiscoveryComponent implements ResourceDiscoveryComponent {
+
+	private final Log log = LogFactory.getLog(this.getClass());
+
+	public Set<DiscoveredResourceDetails> discoverResources(
+			ResourceDiscoveryContext discoveryContext)
+			throws InvalidPluginConfigurationException, Exception {
+		Set<DiscoveredResourceDetails> discoveredResources = new HashSet<DiscoveredResourceDetails>();
+
+		Set<ManagedComponent> translators = ProfileServiceUtil
+				.getManagedComponents(new ComponentType(
+						PluginConstants.ComponentType.Translator.TYPE,
+						PluginConstants.ComponentType.Translator.SUBTYPE));
+
+		for (ManagedComponent translator : translators) {
+
+			Map<String, ManagedProperty> managedPropertyMap = translator
+					.getProperties();
+			String translatorKey = translator.getName();
+			String translatorName = ProfileServiceUtil.getSimpleValue(
+					translator, "name", String.class);
+			/**
+			 * 
+			 * 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
+					translatorKey, // Resource Key
+					translatorName, // Resource Name
+					null, // Version
+					PluginConstants.ComponentType.Translator.DESCRIPTION, // Description
+					discoveryContext.getDefaultPluginConfiguration(), // Plugin
+					// Config
+					null // Process info from a process scan
+			);
+
+			Configuration c = detail.getPluginConfiguration();
+			PropertyList list = new PropertyList("translatorList");
+			PropertyMap propMap = null;
+			c.put(list);
+
+			for (ManagedProperty prop : managedPropertyMap.values()) {
+				propMap = new PropertyMap("translatorMap");
+				String name = prop.getName();
+				if (name.equals("translator-property")) {
+					getTranslatorValues(prop.getValue(), propMap, list);
+				} else {
+					propMap.put(new PropertySimple("name", name));
+					propMap.put(new PropertySimple("value", ProfileServiceUtil
+							.stringValue(prop.getValue())));
+					propMap.put(new PropertySimple("description", prop
+							.getDescription()));
+					list.add(propMap);
+				}
+			}
+
+			detail.setPluginConfiguration(c);
+			// Add to return values
+			discoveredResources.add(detail);
+			log.info("Discovered Teiid Translator: " + translatorName);
+		}
+
+		return discoveredResources;
+	}
+
+	public static <T> void getTranslatorValues(MetaValue pValue,
+			PropertyMap map, PropertyList list) {
+		MetaType metaType = pValue.getMetaType();
+		PropertyMetadata unwrappedvalue = null;
+		if (metaType.isCollection()) {
+			for (MetaValue value : ((CollectionValueSupport) pValue)
+					.getElements()) {
+				if (value.getMetaType().isComposite()) {
+					map = new PropertyMap("translatorMap");
+					unwrappedvalue = (PropertyMetadata) MetaValueFactory
+							.getInstance().unwrap(value);
+					map
+							.put(new PropertySimple("name", unwrappedvalue
+									.getName()));
+					map.put(new PropertySimple("value", unwrappedvalue
+							.getValue()));
+					map
+							.put(new PropertySimple("description",
+									"Custom property"));
+					list.add(map);
+				} else {
+					throw new IllegalStateException(pValue
+							+ " is not a Composite type");
+				}
+			}
+		}
+	}
+
+}
\ 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-05-13 16:19:04 UTC (rev 2124)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/VDBComponent.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -331,7 +331,6 @@
 					String jndiName = (String) sourceMap.get("jndiName");
 					String translatorName = (String) sourceMap.get("translatorName");
 					PropertyMap multiSourceModel = null;
-					PropertyMap multiSourceModel2 = null;
 
 				PropertyMap model = null;
 				if (supportMultiSource){
@@ -352,13 +351,7 @@
 							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),
-								new PropertySimple("translatorName", translatorName));
-					multiSourceModelsList.add(multiSourceModel);
+					 	sourceModelsList.add(model);					 	
 					}else{
 						 model = new PropertyMap("model",
 								new PropertySimple("name", modelName),

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-05-13 16:19:04 UTC (rev 2124)
+++ trunk/console/src/main/java/org/teiid/rhq/plugin/util/PluginConstants.java	2010-05-13 18:31:49 UTC (rev 2125)
@@ -121,6 +121,22 @@
 
 		}
 
+		public interface Translator {
+
+			public final static String TYPE = "teiid"; //$NON-NLS-1$
+			public final static String SUBTYPE = "translator"; //$NON-NLS-1$
+			public final static String NAME = "Translator"; //$NON-NLS-1$
+			public final static String DESCRIPTION = "Teiid Translator"; //$NON-NLS-1$
+
+			public static interface Operations {
+
+			}
+			
+			public static interface Metrics {
+
+			}
+
+		}
 		public interface Model {
 
 			public final static String TYPE = "teiid"; //$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-05-13 16:19:04 UTC (rev 2124)
+++ trunk/console/src/main/resources/META-INF/rhq-plugin.xml	2010-05-13 18:31:49 UTC (rev 2125)
@@ -16,7 +16,758 @@
 		Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
 		02110-1301 USA. */
 	-->
+	
+	<!DOCTYPE plugin [
 
+<!ENTITY managedObjectMetrics '
+    <metric property="runState" displayType="summary"
+            defaultOn="true" defaultInterval="30000" dataType="trait" category="performance"/>
+'>
+
+<!ENTITY translatorConfiguration '
+	<resource-configuration>
+    <c:list-property name="translatorList" description="Properties for this translator"
+						readOnly="true">
+						<c:map-property name="translatorMap">
+							<c:simple-property name="name" displayName="Name"
+								description="Name of this property" readOnly="true" />
+							<c:simple-property name="value" displayName="Value"
+								description="Value of this property" readOnly="true" />
+							<c:simple-property name="description" displayName="Description"
+								description="Description of this property" readOnly="true" />
+						</c:map-property>
+	</c:list-property>
+	</resource-configuration>
+    
+    
+'>			
+			
+
+<!ENTITY datasourceAndConnectionFactoryOperations '
+    <operation name="flush" displayName="Flush"
+               description="Flush the connections in the pool"/>
+
+    <operation name="listFormattedSubPoolStatistics" displayName="List Formatted Sub Pool Statistics"
+               description="Obtain a formatted sub pool statistics report">
+        <parameters>
+            <c:simple-property required="false" name="formatClassName"
+                               defaultValue="org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter">
+                <c:description>
+                    The fully qualified name of the Java class to use to format the the sub pool statistics. The default
+                    is "org.jboss.resource.statistic.pool.JBossDefaultSubPoolStatisticFormatter".
+                </c:description>
+            </c:simple-property>                                                              
+        </parameters>
+        <results>
+            <c:simple-property name="result" type="longString">
+                <c:description>
+                    A formatted sub pool statistics report.
+                </c:description>
+            </c:simple-property>
+        </results>
+    </operation>
+
+    <operation name="listStatistics" displayName="List Statistics" description="Obtain a statistics report">
+        <results>
+            <c:map-property name="result"/>
+        </results>
+    </operation>
+'>
+
+<!-- TODO: Use one shared XML entity for datasource and connection factory metrics. -->
+<!ENTITY datasourceMetrics '
+    <!-- Traits -->
+    <metric property="poolJndiName" displayType="summary" displayName="Pool JNDI Name"
+            defaultOn="true" defaultInterval="60000" dataType="trait" category="performance"
+            description="the JNDI name of the connection pool for this datasource"/>
+
+    <!-- Numerics -->
+    <metric property="availableConnectionCount" measurementType="dynamic" displayType="summary"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the maximum number of connections that are available"/>
+
+    <metric property="connectionCount" measurementType="dynamic" displayType="summary"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the number of connections that are currently in the pool"/>
+
+    <metric property="connectionCreatedCount" measurementType="dynamic" displayType="detail"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the number of connections that have been created since the datasource was last started"/>
+
+    <metric property="connectionDestroyedCount" measurementType="dynamic" displayType="detail"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the number of connections that have been destroyed since the datasource was last started"/>
+
+    <metric property="inUseConnectionCount" measurementType="dynamic" displayType="detail"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the number of connections that are currently in use"/>
+
+    <metric property="local-transaction" displayType="summary"
+            defaultOn="true" defaultInterval="60000" dataType="trait" category="performance"/>
+
+    <metric property="maxConnectionsInUseCount" measurementType="dynamic" displayType="detail"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"
+            description="the most connections that have been simultaneously in use since this datasource was started"/>
+
+    <metric property="maxSize" measurementType="dynamic" displayType="detail" displayName="Max Size"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+    <metric property="minSize" measurementType="dynamic" displayType="detail" displayName="Min Size"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+'>
+
+<!-- NOTE: For Datasource ManagedProperty annotations, see:
+     https://anonsvn.jboss.org/repos/jbossas/trunk/connector/src/main/org/jboss/resource/metadata/mcf/DataSourceDeploymentMetaData.java
+     Descriptions of datasource config props can also be culled from the following locations:
+     https://anonsvn.jboss.org/repos/jbossas/trunk/connector/src/resources/dtd/jboss-ds_5_0.dtd
+     http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Administration_And_Configuration_Guide/5/html/Configuring_JDBC_DataSources.html
+     http://www.jboss.org/community/wiki/ConfigDataSources
+     http://www.jboss.org/community/wiki/ConfigJCACommon
+  -->
+
+<!ENTITY datasourceAndConnectionFactoryConnectionResourceConfigProps '
+    <c:simple-property name="min-pool-size"
+                       displayName="Minimum Pool Size"
+                       type="integer"
+                       required="false"
+                       defaultValue="0">
+        <c:description>
+            The minimum number of connections the pool should hold. The default is 0.
+        </c:description>
+        <c:constraint>
+            <c:integer-constraint minimum="0"/>
+        </c:constraint>
+    </c:simple-property>
+
+    <c:simple-property name="max-pool-size"
+                       displayName="Maximum Pool Size"
+                       type="integer"
+                       required="false"
+                       defaultValue="10">
+        <c:description>
+            The maximum number of connections the pool should hold. The default is 10.
+        </c:description>
+        <c:constraint>
+            <c:integer-constraint minimum="0"/>
+        </c:constraint>
+    </c:simple-property>
+'>
+
+<!ENTITY datasourceConnectionResourceConfigProps '
+    <c:simple-property name="jndi-name"
+                       displayName="JNDI Name"
+                       description="The global JNDI Name under which to bind the datasource"
+                       type="string"/>
+
+    <c:simple-property name="user-name"
+                       displayName="Username"
+                       description="The default username when creating a new connection."
+                       type="string"
+                       activationPolicy="immediate"
+                       required="false"/>
+
+    <c:simple-property name="password"
+                       displayName="Password"
+                       description="The default password when creating a new connection."
+                       type="password"
+                       activationPolicy="immediate"
+                       required="false"/>
+'>
+
+<!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>
+'>
+
+<!ENTITY datasourceAdvancedResourceConfigProps '
+    <c:simple-property name="check-valid-connection-sql" type="longString"
+                       displayName="Check Valid Connection SQL" required="false">
+        <c:description>The SQL statement to use to check the validity of a pool connection.</c:description>
+    </c:simple-property>
+
+    <c:simple-property required="false" name="connection-definition">
+        <c:description>
+            The connection definition inside the RAR deployment uniquely identified by the connection factory interface,
+            e.g. "javax.sql.DataSource".
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="exception-sorter-class-name" type="string" activationPolicy="immediate"
+                       displayName="Exception Sorter Class Name" required="false">
+        <c:description>
+            The fully qualified name of a Java class to use to check if an exception should be broadcast.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="new-connection-sql" type="longString" activationPolicy="immediate"
+                       displayName="New Connection SQL" required="false">
+        <c:description>
+            An SQL statement to execute whenever a new connection is added to the pool; this can be used to set the
+            connection schema, etc.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="prepared-statement-cache-size" type="integer"
+                       displayName="Prepared Statement Cache Size" required="false" defaultValue="0">
+        <c:description>
+            The number of prepared statements per connection to be kept open and reused in subsequent requests. They are
+            stored in an LRU cache. Set to 0 to disable the cache. The default is 0.
+        </c:description>
+        <c:constraint>
+            <c:integer-constraint minimum="0"/>
+        </c:constraint>
+    </c:simple-property>
+
+    <c:simple-property name="query-timeout"
+                       displayName="Query Timeout"
+                       type="integer"
+                       units="seconds"
+                       required="false">
+        <c:description>
+            Any configured query timeout in seconds. A value of 0 means no timeout. The default is 0.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="rar-name" required="false">
+        <c:description>
+             The RAR deployment to associate with the connection manager MBean. e.g. jms-ra.rar or
+             myapplication.ear#my.rar for nested rars.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="set-tx-query-timeout"
+                       displayName="Set Tx Query Timeout"
+                       type="boolean"
+                       required="false"
+                       defaultValue="false">
+        <c:description>
+            Whether to set the query timeout based on the time remaining until transaction timeout;
+            any configured query timeout will be used if there is no transaction. The default is No.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="share-prepared-statements" displayName="Share Prepared Statements"
+                       type="boolean"
+                       required="false" defaultValue="false">
+        <c:description>
+            Should prepared statements be shared? The default is No.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="stale-connection-checker-class-name"
+                       displayName="Stale Connection Checker Class Name"
+                       type="string"
+                       required="false">
+        <c:description>
+            Fully qualified name of the Java class used to check if a connection has become stale.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="track-statements" type="string"
+                       displayName="Track Statements" required="false">
+        <c:description>
+            Whether to check for unclosed Statements and ResultSets when connections are returned to the pool. The
+            default is "yes-no-warnings".
+        </c:description>
+        <c:property-options>
+            <c:option name="No" value="no"/>
+            <c:option name="Yes" value="yes"/>
+            <c:option name="Yes, but no warnings" value="yes-no-warnings" default="true"/>
+        </c:property-options>
+    </c:simple-property>
+
+    <c:simple-property name="transaction-isolation" required="false"
+                       description="The Transaction Isolation level. The default setting is to use whichever isolation level is provided by default by the database.">
+        <c:property-options>
+            <c:option value="TRANSACTION_READ_UNCOMMITTED" name="Read Uncommitted"/>
+            <c:option value="TRANSACTION_READ_COMMITTED" default="true" name="Read Committed"/>
+            <c:option value="TRANSACTION_REPEATABLE_READ" name="Repeatable Read"/>
+            <c:option value="TRANSACTION_SERIALIZABLE" name="Serializable"/>
+            <c:option value="TRANSACTION_NONE" name="None"/>
+        </c:property-options>
+    </c:simple-property>
+
+    <c:simple-property name="url-delimiter" required="false">
+        <c:description>
+             Specifies the delimiter for URLs in connection-url for HA datasources.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="url-selector-strategy-class-name" required="false">
+        <c:description>
+             The fully qualified class name of a class that implements the
+             org.jboss.resource.adapter.jdbc.URLSelectorStrategy interface.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="use-try-lock" type="long" required="false" defaultValue="0">
+        <c:description>
+            Any configured timeout, in milliseconds, for internal locks on the resource adapter objects. A value of 0
+            means no timeout. The default is 0.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property name="valid-connection-checker-class-name" type="string"
+                       displayName="Valid Connection Checker Class Name" required="false">
+        <c:description>
+            Fully qualified name of the Java class used to validate if a connection is valid.
+        </c:description>
+    </c:simple-property>
+'>
+
+<!ENTITY nonXaDatasourceConnectionResourceConfigProps '
+    <c:simple-property name="driver-class"
+                       displayName="JDBC Driver Class"
+                       description="The fully qualified name of the JDBC driver class."
+                       type="string"
+                       activationPolicy="immediate"/>
+
+    <c:simple-property name="connection-url"
+                       displayName="Connection URL"
+                       description="The JDBC driver URL string."
+                       type="string"
+                       activationPolicy="immediate"/>
+
+    <c:map-property name="connection-properties" required="false"
+                    description="Arbitrary connection properties that should be passed to the java.sql.Driver.connect(url, props) method."/>
+'>
+
+<!ENTITY nonXaDatasourceOracleTemplateProps '
+    <c:simple-property name="driver-class" default="oracle.jdbc.driver.OracleDriver"/>
+    <c:simple-property name="connection-url" default="jdbc:oracle:oci:@youroracle-tns-name"/>
+    <c:simple-property name="exception-sorter-class-name"
+                       default="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"/>
+    <c:simple-property name="check-valid-connection-sql" default="SELECT * FROM DUAL"/>
+    <c:simple-property name="type-mapping" default="oracle.jdbc.driver.OracleDriver"/>
+    <c:simple-property name="use-try-lock" default="60000"/>
+    <c:map-property name="metadata">
+        <c:simple-property name="typeMapping" default="Oracle9i"/>
+    </c:map-property>
+    <c:simple-property name="type-mapping" default="Oracle9i"/>
+'>
+
+<!--
+   See:
+       https://anonsvn.jboss.org/repos/jbossas/trunk/connector/src/main/org/jboss/resource/metadata/mcf/ManagedConnectionFactoryDeploymentMetaData.java
+       http://www.jboss.org/community/wiki/ConfigJCACommon
+ -->
+
+<!ENTITY connectionFactoryConnectionResourceConfigProps '
+    <c:simple-property required="true" name="jndi-name" displayName="JNDI Name"
+                       description="The global JNDI name to bind the connection factory under."/>
+
+    <c:simple-property required="true" name="rar-name" displayName="RAR Name">
+        <c:description>
+            The name of the RAR file that contains the definition for the resource we want to provide. For nested RAR
+            files, the name would look like myapplication.ear#my.rar.
+        </c:description>
+    </c:simple-property>
+
+    <c:simple-property required="true" name="connection-definition">
+        <c:description>
+            The connection factory interface class. It should match the connectionfactory-interface in the ra.xml file.
+        </c:description>
+    </c:simple-property>
+
+'>
+
+
+<!ENTITY connectionFactoryAdvancedResourceConfigProps '
+    <c:list-property required="false" name="config-property">
+        <c:description>
+            Properties to supply to the ManagedConnectionFactory (MCF) MBean service configuration.
+        </c:description>
+        <c:map-property name="config-property">
+            <c:simple-property name="name" description="The name of the configuration property." />
+            <c:simple-property name="type" description="The type of the configuration property.">
+                <c:property-options>
+                    <c:option value="java.lang.String" default="true"/>
+                    <c:option value="java.lang.Boolean"/>
+                    <c:option value="java.lang.Integer"/>
+                    <c:option value="java.lang.Double"/>
+                    <c:option value="java.lang.Byte"/>
+                    <c:option value="java.lang.Short"/>
+                    <c:option value="java.lang.Long"/>
+                    <c:option value="java.lang.Float"/>
+                    <c:option value="java.lang.Character"/> 
+                </c:property-options>
+            </c:simple-property>
+            <c:simple-property name="value" required="false" description="The value of the configuration property." />
+        </c:map-property>
+    </c:list-property>
+'>
+
+<!ENTITY connectionFactoryMetrics '
+    <!-- Traits -->
+    <metric property="poolJndiName" displayType="summary" displayName="Pool JNDI Name" defaultOn="true"
+            defaultInterval="600000" dataType="trait" category="performance"/>
+
+    <!-- Numerics -->
+    <metric property="availableConnectionCount" measurementType="dynamic" displayType="summary"
+            displayName="Available Connection Count" description="Number of available connections."
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+    <metric property="connectionCount" measurementType="dynamic" displayType="summary"
+            displayName="Connection Count" defaultOn="true" defaultInterval="60000" dataType="measurement"
+            category="performance"/>
+
+    <metric property="connectionCreatedCount" measurementType="dynamic" displayType="detail"
+            displayName="Connection Created Count" defaultOn="true" defaultInterval="60000"
+            dataType="measurement" category="performance"/>
+
+    <metric property="connectionDestroyedCount" measurementType="dynamic" displayType="detail"
+            displayName="Connection Destroyed Count" defaultOn="true" defaultInterval="60000"
+            dataType="measurement" category="performance"/>
+
+    <metric property="inUseConnectionCount" measurementType="dynamic" displayType="detail"
+            displayName="In Use Connection Count" description="Mumber of connections currently in use."
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+    <metric property="maxConnectionsInUseCount" measurementType="dynamic" displayType="detail"
+            displayName="Max Connections In Use Count" description="Maximum number of maximum connections that have been in use."
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+    <metric property="maxSize" measurementType="dynamic" displayType="detail" displayName="Max Size"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+
+    <metric property="minSize" measurementType="dynamic" displayType="detail" displayName="Min Size"
+            defaultOn="true" defaultInterval="60000" dataType="measurement" category="performance"/>
+'>
+
+<!-- These are the operations that both Topics and Queues have. -->
+<!ENTITY destinationOperations '
+    <operation name="removeAllMessages" displayName="Remove All Messages" description="Remove all messages from the destination."/>
+
+    <operation name="start" displayName="Start" description="Start the destination."/>
+
+    <operation name="stop" displayName="Stop" description="Stop the destination."/>
+'>
+
+<!ENTITY deploymentResourceConfigProps '
+    <c:simple-property type="boolean" required="false" name="blackList"/>
+    <c:simple-property type="boolean" required="false" name="cache"/>
+    <c:simple-property required="false" name="domain"/>
+    <c:simple-property required="false" name="excluded"/>
+    <c:simple-property required="false" name="excludedExport"/>
+    <c:simple-property required="false" name="exportAll">
+        <c:property-options>
+            <c:option name="all" value="ALL"/>
+            <c:option name="non-empty" value="NON_EMPTY"/>
+        </c:property-options>
+    </c:simple-property>
+    <c:simple-property type="boolean" required="false" name="importAll"/>
+    <c:simple-property required="false" name="included"/>
+    <c:simple-property required="false" name="name"/>
+    <c:simple-property required="false" name="parentDomain"/>
+    <c:simple-property type="boolean" required="false" name="parentFirst"/>
+    <c:simple-property required="false" name="version"/>
+'>
+
+<!--<c:simple-property name="deployDirectory" type="string" required="true" default="deploy"
+                              description="Path of the directory where the EAR should be deployed (e.g. "deploy" or "farm") - relative to the AS configuration set directory (e.g. /opt/jboss-5.1.0.CR1/server/default)."/>-->
+           
+<!ENTITY deploymentContentConfigProps '
+    <configuration>
+        <c:group name="deployment" displayName="Deployment Options">
+           <c:simple-property name="deployExploded" type="boolean" required="true" default="false"
+                              description="Should the archive be deployed in exploded form (i.e. as a directory)"/>
+        </c:group>
+    </configuration>
+'>
+
+<!ENTITY webApplicationMetrics '
+    <metric property="contextRoot"
+            dataType="trait" displayType="summary"
+            description="this context root of this WAR - used as a unique path prefix for URLs corresponding to this WAR"/>
+
+    <metric property="virtualHosts"
+            dataType="trait" displayType="summary"
+            description="the virtual hosts to which this WAR is deployed"/>
+'>
+
+<!ENTITY webApplicationContextMetrics '
+    <metric property="virtualHost"
+            dataType="trait" displayType="summary"
+            description="the virtual host with which this context is associated"/>
+
+    <!--
+    <metric property="responseTime"
+            dataType="calltime" defaultOn="false" units="milliseconds" destinationType="URL"
+            description="the minimum, maximum, and average response times for requests serviced by this webapp"/>
+    -->
+
+    <metric property="activeSessions"
+           displayName="Currently Active Sessions"
+           units="none" description="the number of sessions that are currently active for this WAR" />
+
+    <metric property="maxActive" displayName="Maximum Active Sessions"
+           units="none" description="the maximum number of sessions that have been active for this WAR" />
+
+    <metric property="sessionCounter" displayName="Created Sessions"
+           units="none" description="the number of sessions created for this WAR"
+           measurementType="trendsup" />
+
+    <metric property="expiredSessions" displayName="Expired Sessions"
+           units="none" description="the number of expired sessions for this WAR"
+           measurementType="trendsup" />
+
+    <metric property="rejectedSessions" displayName="Rejected Sessions"
+           units="none" description="the number of sessions rejected for this WAR"
+           measurementType="trendsup" />
+
+    <metric property="sessionAverageAliveTime" displayName="Average Session Alive Time"
+           units="seconds" description="the average alive time of sessions for this WAR" />
+
+    <metric property="sessionMaxAliveTime" displayName="Max Session Alive Time"
+           units="seconds" description="the maximum alive time of sessions for this WAR" />
+
+    <metric property="Servlet.minimumResponseTime" displayName="Minimum Response Time"
+            units="milliseconds"
+            description="the minimum response time for requests serviced by this WAR"/>
+
+    <metric property="Servlet.averageResponseTime" displayName="Average Response Time"
+            units="milliseconds"
+            description="the average response time for requests serviced by this WAR"/>
+
+    <metric property="Servlet.maximumResponseTime" displayName="Maximum Response Time"
+            units="milliseconds"
+            description="the maximum response time for requests serviced by this WAR"/>
+
+    <metric property="Servlet.totalResponseTime" displayName="Total Response Time"
+        units="milliseconds" measurementType="trendsup"
+        description="the total response time for requests serviced by this WAR"/>
+
+    <metric property="Servlet.requestCount" displayName="Number of Requests Serviced"
+           units="none" description="the number of requests serviced by this WAR"
+           measurementType="trendsup" displayType="summary"/>
+
+    <metric property="Servlet.errorCount" displayName="Number of Error Responses"
+           units="none" description="the number of error responses sent by this WAR"
+           measurementType="trendsup" displayType="summary"/>
+'>
+
+]>
+
+	<!--
+		############################################# 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"
@@ -449,12 +1200,11 @@
 							<c:simple-property name="sourceName"
 								displayName="Source Name" description="Source name for this model"
 								required="false" readOnly="true" />
-                            <c:simple-property name="translatorName"
-                                displayName="Translator Name" description="Name of the translator"
-                                required="true" />                                
-							<c:simple-property name="jndiName"
-								displayName="Connection JNDI Name" description="JNDI name for this connection"
-								required="false" />
+							<c:simple-property name="translatorName"
+								displayName="Translator Name" description="Name of the translator"
+								required="true" />
+							<c:simple-property name="jndiName" displayName="Connection JNDI Name"
+								description="JNDI name for this connection" required="false" />
 							<c:simple-property name="visibility"
 								displayName="Visible" description="Visibility of the model"
 								required="true" type="boolean">
@@ -465,6 +1215,20 @@
 								required="true" default="true" type="boolean" />
 						</c:map-property>
 					</c:list-property>
+
+					<c:list-property name="multisourceModels"
+						description="The multi-source model sources for this VDB">
+						<c:map-property name="model">
+							<c:simple-property name="name" displayName="Name"
+								description="Name of the model" required="true" />
+							<c:simple-property name="sourceName"
+								displayName="Source Name" description="Source name for this model" />
+							<c:simple-property name="jndiName"
+								displayName="Connector Binding JNDI Name" description="JNDI name for this connector binding"
+								required="false" />
+						</c:map-property>
+					</c:list-property>
+
 					<c:list-property name="logicalModels" readOnly="true"
 						description="The logical models for this VDB">
 						<c:map-property name="model">
@@ -491,7 +1255,13 @@
 				</c:group>
 			</resource-configuration>
 
+		</service>
 
+		<service name="Translators" description="Teiid Translators"
+			class="TranslatorComponent" discovery="TranslatorDiscoveryComponent">
+
+			&translatorConfiguration;
+
 		</service>
 
 	</server>



More information about the teiid-commits mailing list