modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Component.java
| 26 +++
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
| 4
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java
| 14 +
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
| 23 +--
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
| 3
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java
| 4
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
| 4
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASComponent.java
| 8 -
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
| 71 ++++------
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
| 3
10 files changed, 93 insertions(+), 67 deletions(-)
New commits:
commit cb698b5d71f5fba5b329cd2d12082b7201710907
Author: Ian Springer <ian.springer(a)redhat.com>
Date: Thu Mar 29 13:37:46 2012 -0400
add a productType plugin config prop; generify some of the components; add an
AS7Component interface
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Component.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Component.java
new file mode 100644
index 0000000..0dd4acd
--- /dev/null
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AS7Component.java
@@ -0,0 +1,26 @@
+package org.rhq.modules.plugins.jbossas7;
+
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+
+/**
+ * An AS7 Resource component.
+ */
+public interface AS7Component<T extends ResourceComponent<?>> extends
ResourceComponent<T> {
+
+ /**
+ * Returns the connection that can be used to send management requests to the managed
AS& instance.
+ *
+ * @return the connection that can be used to send management requests to the managed
AS& instance
+ */
+ ASConnection getASConnection();
+
+ /**
+ * Returns a path in the form (key=value)?(,key=value)* that can be used to construct
an address to this component's
+ * underlying managed service.
+ *
+ * @return a path in the form (key=value)?(,key=value)* that can be used to construct
an address to this component's
+ * underlying managed service
+ */
+ String getPath();
+
+}
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
index c3214ed..a1993bc 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/AbstractBaseDiscovery.java
@@ -35,6 +35,8 @@ import org.apache.commons.logging.LogFactory;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.util.FileUtils;
import org.rhq.core.system.ProcessInfo;
@@ -43,7 +45,7 @@ import org.rhq.core.system.ProcessInfo;
* in the area of processes and host.xml
* @author Heiko W. Rupp
*/
-public class AbstractBaseDiscovery {
+public abstract class AbstractBaseDiscovery<T extends ResourceComponent<?>>
implements ResourceDiscoveryComponent<T> {
private static final String HOME_DIR_SYSPROP = "jboss.home.dir";
private static final String BIND_ADDRESS_MANAGEMENT_SYSPROP =
"jboss.bind.address.management";
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java
index e0f57d0..590da14 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseComponent.java
@@ -71,8 +71,9 @@ import org.rhq.modules.plugins.jbossas7.json.ReadResource;
import org.rhq.modules.plugins.jbossas7.json.Remove;
import org.rhq.modules.plugins.jbossas7.json.Result;
-public class BaseComponent<T extends ResourceComponent<?>> implements
ResourceComponent<T>, MeasurementFacet,
- ConfigurationFacet, DeleteResourceFacet, CreateChildResourceFacet, OperationFacet {
+public class BaseComponent<T extends ResourceComponent<?>> implements
AS7Component<T>, MeasurementFacet,
+ ConfigurationFacet, DeleteResourceFacet, CreateChildResourceFacet, OperationFacet {
+
private static final String INTERNAL = "_internal:";
private static final int INTERNAL_SIZE = INTERNAL.length();
private static final String LOCALHOST = "localhost";
@@ -80,7 +81,7 @@ public class BaseComponent<T extends ResourceComponent<?>>
implements ResourceCo
public static final String MANAGED_SERVER = "Managed Server";
final Log log = LogFactory.getLog(this.getClass());
- ResourceContext context;
+ ResourceContext<T> context;
Configuration pluginConfiguration;
String myServerName;
ASConnection connection;
@@ -111,7 +112,7 @@ public class BaseComponent<T extends ResourceComponent<?>>
implements ResourceCo
* Start the resource connection
* @see
org.rhq.core.pluginapi.inventory.ResourceComponent#start(org.rhq.core.pluginapi.inventory.ResourceContext)
*/
- public void start(ResourceContext context) throws
InvalidPluginConfigurationException, Exception {
+ public void start(ResourceContext<T> context) throws
InvalidPluginConfigurationException, Exception {
this.context = context;
pluginConfiguration = context.getPluginConfiguration();
@@ -254,11 +255,11 @@ public class BaseComponent<T extends
ResourceComponent<?>> implements ResourceCo
report.addData(data);
}
- protected ASConnection getASConnection() {
+ public ASConnection getASConnection() {
return connection;
}
- protected String getPath() {
+ public String getPath() {
return path;
}
@@ -656,4 +657,5 @@ public class BaseComponent<T extends ResourceComponent<?>>
implements ResourceCo
return new ComplexRequest(tokenizer.nextToken(), tokenizer.nextToken());
}
}
+
}
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
index 4b421c4..8557a5d 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
@@ -94,10 +94,6 @@ public abstract class BaseProcessDiscovery extends
AbstractBaseDiscovery
String[] commandLine = process.getCommandLine();
File homeDir = getHomeDir(process);
JBossProductType productType =
JBossProductType.determineJBossProductType(homeDir);
- String version = determineServerVersionFromHomeDir(homeDir.getPath());
- if (productType != JBossProductType.AS) {
- version = productType.SHORT_NAME + " " + version;
- }
File baseDir = getBaseDir(process, homeDir);
String configName = baseDir.getName();
String key = baseDir.getPath();
@@ -124,13 +120,20 @@ public abstract class BaseProcessDiscovery extends
AbstractBaseDiscovery
pluginConfig.put(new PropertySimple("hostname",
managementHostPort.host));
pluginConfig.put(new PropertySimple("port", managementHostPort.port));
pluginConfig.put(new PropertySimple("realm",
getManagementSecurityRealmFromHostXml()));
+ pluginConfig.put(new PropertySimple("productType",
productType.name()));
- ProductInfo productInfo = new ProductInfo(managementHostPort.host,
pluginConfig.getSimpleValue("user", null),
- pluginConfig.getSimpleValue("password", null),
managementHostPort.port);
- productInfo = productInfo.getFromRemote();
- if (productInfo.fromRemote) {
- version = productInfo.productName + " " +
productInfo.productVersion;
- name = productInfo.productName + " " + productInfo.serverName;
+ String version;
+ String versionFromHomeDir =
determineServerVersionFromHomeDir(homeDir.getPath());
+ if (productType == JBossProductType.AS) {
+ version = versionFromHomeDir;
+ } else {
+ ProductInfo productInfo = new ProductInfo(managementHostPort.host,
pluginConfig.getSimpleValue("user", null),
+ pluginConfig.getSimpleValue("password", null),
managementHostPort.port);
+ productInfo = productInfo.getFromRemote();
+ String productVersion = (productInfo.fromRemote) ? productInfo.productVersion
: versionFromHomeDir;
+ // TODO: Grab the product version from the product info properties file, so
we aren't relying on connecting
+ // to the server to obtain it.
+ version = productType.SHORT_NAME + " " + productVersion;
}
// String javaClazz = psr.getProcessInfo().getName();
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
index 68a78c0..6fbfcef 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java
@@ -38,6 +38,7 @@ import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.core.pluginapi.util.ProcessExecutionUtility;
@@ -56,7 +57,7 @@ import org.rhq.modules.plugins.jbossas7.json.Result;
*
* @author Heiko W. Rupp
*/
-public class BaseServerComponent extends BaseComponent implements MeasurementFacet {
+public class BaseServerComponent<T extends ResourceComponent<?>> extends
BaseComponent<T> implements MeasurementFacet {
private static final String SEPARATOR = "\n-----------------------\n";
final Log log = LogFactory.getLog(BaseServerComponent.class);
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java
index 25a5c9e..630556d 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/DatasourceComponent.java
@@ -39,7 +39,6 @@ public class DatasourceComponent extends BaseComponent implements
OperationFacet
if (operationName.equals("addDriver")) { // TODO decide if we need this
at all. See also the plugin-descriptor
String drivername = parameters.getSimpleValue("driver-name",
NOTSET);
-
Address theAddress = new Address(address);
theAddress.add("jdbc-driver", drivername);
@@ -47,8 +46,6 @@ public class DatasourceComponent extends BaseComponent implements
OperationFacet
op.addAdditionalProperty("driver-name",drivername);
op.addAdditionalProperty("deployment-name",parameters.getSimpleValue("deployment-name",
NOTSET));
op.addAdditionalProperty("driver-class-name",parameters.getSimpleValue("driver-class-name",
NOTSET));
-
-
}
else if (operationName.equals("addDatasource")) {
String name = parameters.getSimpleValue("name",NOTSET);
@@ -118,7 +115,6 @@ public class DatasourceComponent extends BaseComponent implements
OperationFacet
result.setErrorMessage(res.getFailureDescription());
}
-
return result;
}
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
index 85b3ece..555a017 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerComponent.java
@@ -27,6 +27,7 @@ import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.resource.CreateResourceStatus;
import org.rhq.core.pluginapi.inventory.CreateResourceReport;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
import org.rhq.core.pluginapi.operation.OperationFacet;
import org.rhq.core.pluginapi.operation.OperationResult;
import org.rhq.modules.plugins.jbossas7.json.Address;
@@ -38,7 +39,8 @@ import org.rhq.modules.plugins.jbossas7.json.Result;
* Component class for host- and domain controller
* @author Heiko W. Rupp
*/
-public class HostControllerComponent extends BaseServerComponent implements
OperationFacet {
+public class HostControllerComponent<T extends ResourceComponent<?>> extends
BaseServerComponent<T>
+ implements OperationFacet {
private final Log log = LogFactory.getLog(HostControllerComponent.class);
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASComponent.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASComponent.java
index 3f5efdb..d56f0c0 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASComponent.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASComponent.java
@@ -18,7 +18,6 @@
*/
package org.rhq.modules.plugins.jbossas7;
-
import java.util.Collections;
import java.util.Date;
import java.util.Map;
@@ -43,7 +42,7 @@ import org.rhq.modules.plugins.jbossas7.json.Result;
* @author Heiko W. Rupp
*/
@SuppressWarnings("unused")
-public class ManagedASComponent extends BaseComponent {
+public class ManagedASComponent extends
BaseComponent<HostControllerComponent<?>> {
/**
* Get the availability of the managed AS server. We can't just check if
@@ -53,13 +52,12 @@ public class ManagedASComponent extends BaseComponent {
*/
@Override
public AvailabilityType getAvailability() {
-
if (context.getResourceType().getName().equals("Managed Server")) {
Address theAddress = new Address();
- String host =
pluginConfiguration.getSimpleValue("domainHost","local");
+ String host = pluginConfiguration.getSimpleValue("domainHost",
"local");
theAddress.add("host",host);
theAddress.add("server-config", myServerName);
- Operation getStatus = new ReadAttribute(theAddress,"status");
+ Operation getStatus = new ReadAttribute(theAddress, "status");
Result result;
try {
result = connection.execute(getStatus);
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
index 9c7eb21..69bd8d4 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/ManagedASDiscovery.java
@@ -31,7 +31,6 @@ import org.rhq.core.domain.configuration.PropertyMap;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.pluginapi.event.log.LogFileEventResourceComponentHelper;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.modules.plugins.jbossas7.json.Address;
import org.rhq.modules.plugins.jbossas7.json.ComplexResult;
@@ -46,21 +45,23 @@ import org.rhq.modules.plugins.jbossas7.json.Result;
*
* @author Heiko W. Rupp
*/
-public class ManagedASDiscovery extends AbstractBaseDiscovery implements
ResourceDiscoveryComponent
-
-{
+public class ManagedASDiscovery extends
AbstractBaseDiscovery<HostControllerComponent<?>>
+ {
private HostControllerComponent parentComponent;
/**
* Run the auto-discovery
*/
- public Set<DiscoveredResourceDetails>
discoverResources(ResourceDiscoveryContext discoveryContext) throws Exception {
+ public Set<DiscoveredResourceDetails> discoverResources(
+ ResourceDiscoveryContext<HostControllerComponent<?>>
discoveryContext) throws Exception {
Set<DiscoveredResourceDetails> discoveredResources = new
HashSet<DiscoveredResourceDetails>();
- parentComponent = (HostControllerComponent)
discoveryContext.getParentResourceComponent();
+ parentComponent = discoveryContext.getParentResourceComponent();
Configuration hcConfig = parentComponent.getHCConfig();
String hostName = hcConfig.getSimpleValue("domainHost",
"master"); // TODO good default?
+ String productTypeString = hcConfig.getSimpleValue("productType",
null);
+ JBossProductType productType = JBossProductType.valueOf(productTypeString);
HostInfo hostInfo = getHostInfo(hostName);
if (hostInfo == null)
@@ -69,61 +70,52 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
implements Resourc
try {
// get the HostController, as this is an indicator for managed AS
- // Now we have the host controller, lets get the host.xml file
+ // Now we have the host controller, let's get the host.xml file
// and obtain the servers from there.
- List<ServerInfo> serverNames;
- serverNames = getManagedServers(hostName);
+ List<ServerInfo> serverNames = getManagedServers(hostName);
for (ServerInfo serverInfo : serverNames) {
-
- Configuration config = discoveryContext.getDefaultPluginConfiguration();
- config.put(new PropertySimple("domainHost", hostName));
- config.put(new PropertySimple("group", serverInfo.group));
+ Configuration pluginConfig =
discoveryContext.getDefaultPluginConfiguration();
+ pluginConfig.put(new PropertySimple("domainHost", hostName));
+ pluginConfig.put(new PropertySimple("group",
serverInfo.group));
if (serverInfo.bindingGroup != null) {
- config.put(new PropertySimple("socket-binding-group",
serverInfo.bindingGroup));
+ pluginConfig.put(new PropertySimple("socket-binding-group",
serverInfo.bindingGroup));
} else {
String group = resolveSocketBindingGroup(serverInfo.group);
- config.put(new PropertySimple("socket-binding-group",
group));
+ pluginConfig.put(new PropertySimple("socket-binding-group",
group));
}
- config.put(new PropertySimple("socket-binding-port-offset",
serverInfo.portOffset));
+ pluginConfig.put(new
PropertySimple("socket-binding-port-offset", serverInfo.portOffset));
- String path = "host=" + hostName + ",server-config="
+ serverInfo.name;
- config.put(new PropertySimple("path", path));
+ String path = "host=" + hostName +
",server-pluginConfig=" + serverInfo.name;
+ pluginConfig.put(new PropertySimple("path", path));
// get from the domain or other place as soon as the domain provides it.
//XXX hardcoded separators?
String serverLog = hcConfig.getSimpleValue("baseDir",
"/tmp") + File.separator + "domain/servers/"
+ serverInfo.name + "/log/server.log";
- initLogEventSourcesConfigProp(serverLog, config);
+ initLogEventSourcesConfigProp(serverLog, pluginConfig);
String version;
- String resourceDescription;
-
- String resourceName = serverInfo.name;
-
- if (EAP.equalsIgnoreCase(hostInfo.productName)) {
- version = EAP_PREFIX + hostInfo.productVersion;
- resourceDescription = "Managed JBoss Enterprise Application
Platform 6 server";
- resourceName = EAP_PREFIX + resourceName;
- } else if (JDG.equalsIgnoreCase(hostInfo.productName)) {
- version = JDG_PREFIX + hostInfo.productVersion;
- resourceDescription = "Managed JBoss Data Grid 6 server";
- } else {
- resourceDescription = "Managed AS7 server";
+ if (productType == JBossProductType.AS) {
version = hostInfo.releaseVersion;
+ } else {
+ version = productType.SHORT_NAME + " " +
hostInfo.productVersion;
}
+ String resourceName = productType.SHORT_NAME + " " +
serverInfo.name;
+ String resourceDescription = "Managed " + productType.FULL_NAME
+ " server";
- DiscoveredResourceDetails detail = new
DiscoveredResourceDetails(discoveryContext.getResourceType(), // ResourceType
- hostName + "/" + serverInfo.name, // key
- resourceName, // Name
- version, // TODO get from Domain as soon as it is provided
- resourceDescription, // Description
- config, null);
+ String resourceKey = hostName + "/" + serverInfo.name;
+ // TODO: Try to find the process corresponding to the managed server, so
we can include the ProcessInfo
+ // in the details.
+ DiscoveredResourceDetails detail = new
DiscoveredResourceDetails(discoveryContext.getResourceType(),
+ resourceKey, resourceName, version, resourceDescription,
pluginConfig, null);
// Add to return values
discoveredResources.add(detail);
- log.info("Discovered new ... " +
discoveryContext.getResourceType() + ", " + serverInfo);
+
+ log.info("Discovered new " +
discoveryContext.getResourceType().getName() + " Resource with key ["
+ + detail.getResourceKey() + "].");
}
} catch (Exception e) {
log.warn("Discovery for a " + discoveryContext.getResourceType() +
" failed for process " + " :"
@@ -225,4 +217,5 @@ public class ManagedASDiscovery extends AbstractBaseDiscovery
implements Resourc
String productName;
String releaseCodeName;
}
+
}
diff --git a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
index 40c49c0..47ad52d 100644
--- a/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml
@@ -82,6 +82,7 @@
the JVM that should be used to start and
shutdown the HostController instance;
defaults to the home directory of the RHQ
Agent JRE."/>
<c:simple-property name="domainHost" type="string"
readOnly="true" required="false" description="Host name within
the AS7 domain"/>
+ <c:simple-property name="productType" type="string"
readOnly="true" required="false" description="Server product type
(e.g. AS or EAP)"/>
&logSources;
</plugin-configuration>
@@ -444,6 +445,8 @@
description="The absolute path to a JRE or JDK
installation directory containing
the JVM that should be used to start and
shutdown the JBossAS instance;
defaults to the home directory of the RHQ
Agent JRE."/>
+ <c:simple-property name="productType" type="string"
readOnly="true" required="false" description="Server product type
(e.g. AS or EAP)"/>
+
&logSources;
</plugin-configuration>