modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java
| 22 +++++++---
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
| 11 +++--
2 files changed, 25 insertions(+), 8 deletions(-)
New commits:
commit d2330a2d819b5ad2855fe1f32dc3005ab31f8543
Author: Heiko W. Rupp <hwr(a)redhat.com>
Date: Thu Apr 25 14:52:06 2013 +0200
Discover WildFly servers as such.
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 fb328a3..9a4d5bd 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
@@ -70,6 +70,7 @@ public abstract class BaseProcessDiscovery implements
ResourceDiscoveryComponent
private static final String JBOSS_AS_PREFIX = "jboss-as-";
private static final String JBOSS_EAP_PREFIX = "jboss-eap-";
+ private static final String WILDFLY_PREFIX = "wildfly-";
private static final String HOME_DIR_SYSPROP = "jboss.home.dir";
@@ -467,14 +468,14 @@ public abstract class BaseProcessDiscovery implements
ResourceDiscoveryComponent
return detail;
}
- private String getServerAttribute(ASConnection connection, String attributeName) {
+ private <T>T getServerAttribute(ASConnection connection, String attributeName)
{
Operation op = new ReadAttribute(null, attributeName);
Result res = connection.execute(op);
if (!res.isSuccess()) {
throw new InvalidPluginConfigurationException("Could not connect to
remote server ["
+ res.getFailureDescription() + "]. Did you enable
management?");
}
- return (String) res.getResult();
+ return (T) res.getResult();
}
// never returns null
@@ -563,7 +564,9 @@ public abstract class BaseProcessDiscovery implements
ResourceDiscoveryComponent
protected String determineServerVersionFromHomeDir(File homeDir) {
String version;
String homeDirName = homeDir.getName();
- if (homeDirName.startsWith(JBOSS_AS_PREFIX)) {
+ if (homeDirName.startsWith(WILDFLY_PREFIX)) {
+ version = homeDirName.substring(WILDFLY_PREFIX.length());
+ } else if (homeDirName.startsWith(JBOSS_AS_PREFIX)) {
version = homeDirName.substring(JBOSS_AS_PREFIX.length());
} else if (homeDirName.startsWith(JBOSS_EAP_PREFIX)) {
version = homeDirName.substring(JBOSS_EAP_PREFIX.length());
@@ -606,8 +609,17 @@ public abstract class BaseProcessDiscovery implements
ResourceDiscoveryComponent
ASConnection connection = new ASConnection(hostname, port, user, pass);
try {
String productName = getServerAttribute(connection,
"product-name");
- productType = ((productName != null) && !productName.isEmpty())
?
- JBossProductType.getValueByProductName(productName) :
JBossProductType.AS;
+ if ((productName != null) && !productName.isEmpty())
+ productType = JBossProductType.getValueByProductName(productName);
+ else {
+ Integer apiVersion =
getServerAttribute(connection,"management-major-version");
+ if (apiVersion==1) {
+ productType = JBossProductType.AS;
+ } else {
+ // In the future also check for other versions of WildFly via the
release-version
+ productType = JBossProductType.WILDFLY8;
+ }
+ }
releaseVersion = getServerAttribute(connection,
"release-version");
releaseCodeName = getServerAttribute(connection,
"release-codename");
serverName = getServerAttribute(connection, "name");
diff --git
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
index eb86f0b..9edfb2f 100644
---
a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
+++
b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java
@@ -36,7 +36,8 @@ public enum JBossProductType {
EPP("EPP", "JBoss EAP 6", "JBoss Enterprise Portal Platform
6", "Portal Platform"),
JPP("JPP", "JBoss EAP 6", "JBoss Portal Platform 6",
"Portal Platform"),
// EWP("EWP", "JBoss EWP 6", "JBoss Enterprise Web Platform
6", "EWP"),
- SOA("SOA-P", "JBoss SOA-P 6", "JBoss Enterprise SOA Platform
(ESB)", "SOAP");
+ SOA("SOA-P", "JBoss SOA-P 6", "JBoss Enterprise SOA Platform
(ESB)", "SOAP"),
+ WILDFLY8("WildFly","WildFly 8" ,"WildFly Appliction Server
8" , "WildFly");
public final String SHORT_NAME;
public final String NAME;
@@ -98,7 +99,7 @@ public enum JBossProductType {
productType = JBossProductType.EAP;
} else if (slot.equals("jdg")) {
productType = JBossProductType.JDG;
- } else if (slot.equals("epp")) {//old EPP
+ } else if (slot.equals("epp")) {//old EPP
productType = JBossProductType.EPP;
} else if (slot.equals("jpp")) {//new EPP->JPP plugin
productType = JBossProductType.JPP;
@@ -108,7 +109,9 @@ public enum JBossProductType {
throw new RuntimeException("Unknown product type: " + slot);
}
} else {
- productType = JBossProductType.AS;
+ // Wildfly and The Server Formerly Known AS JBossAS share the same absence of
a slot
+ // so we need another way to distinguish them
+ productType = determineJBossProductTypeViaHomeDirName(homeDir);
}
return productType;
@@ -119,6 +122,8 @@ public enum JBossProductType {
String homeDirName = homeDir.getName();
if (homeDirName.contains("-as-")) {
productType = JBossProductType.AS;
+ } else if (homeDirName.contains("wildfly")) {
+ productType = JBossProductType.WILDFLY8;
} else if (homeDirName.contains("-eap-")) {
productType = JBossProductType.EAP;
} else if
(homeDirName.contains("-jdg-")||(homeDirName.contains("datagrid-server")))
{