[rhq] Branch 'release/jon3.2.x' - modules/enterprise
by mazz
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
New commits:
commit e13d0a888b55a53a707cb1ec137bf9dc4b173bee
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 25 16:43:34 2013 -0400
cherry picked this over but it appears the log variable name case was changed in master but not in 3.2 branch
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 475f84c..b4a6801 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -166,13 +166,13 @@ public class AgentManagerBean implements AgentManagerLocal {
// so let's start the sender automatically for the caller so it doesn't need to remember to do it
client.startSending();
} else {
- if (LOG.isDebugEnabled()) {
- LOG.debug("There is no agent client for agent: " + agent);
+ if (log.isDebugEnabled()) {
+ log.debug("There is no agent client for agent: " + agent);
}
}
} catch (Throwable t) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Could not get agent client for agent: " + agent, t);
+ if (log.isDebugEnabled()) {
+ log.debug("Could not get agent client for agent: " + agent, t);
}
}
10 years, 6 months
[rhq] Branch 'release/jon3.2.x' - modules/enterprise
by mazz
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java | 16 +++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 38 ++++++----
2 files changed, 36 insertions(+), 18 deletions(-)
New commits:
commit 2af8a30457557a8f3e99ff954c0d2611ba71e994
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 25 16:04:34 2013 -0400
BZ 1023332 - cherry picked from 1b7f2f3
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index a9788b1..475f84c 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -161,11 +161,19 @@ public class AgentManagerBean implements AgentManagerLocal {
ServerCommunicationsServiceMBean bootstrap = ServerCommunicationsServiceUtil.getService();
client = bootstrap.getKnownAgentClient(agent);
- // We assume the caller is asking for a client so it can send the agent messages,
- // so let's start the sender automatically for the caller so it doesn't need to remember to do it
- client.startSending();
+ if (client != null) {
+ // We assume the caller is asking for a client so it can send the agent messages,
+ // so let's start the sender automatically for the caller so it doesn't need to remember to do it
+ client.startSending();
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("There is no agent client for agent: " + agent);
+ }
+ }
} catch (Throwable t) {
- log.debug("Could not get agent client for " + agent);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Could not get agent client for agent: " + agent, t);
+ }
}
return client;
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index 09b6271..2f75d6e 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -421,24 +421,34 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
for (Resource platform : platforms) {
AgentClient agentClient = agentManager.getAgentClient(platform.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class, platform.getId());
- agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent for platform [" + platform.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class, platform.getId());
+ agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with agent for platform [" + platform.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for platform [" + platform.getName()
+ + "]; will expect agent to do it later");
}
}
for (Resource server : servers) {
// Only update servers if they haven't already been updated at the platform level
if (!platforms.contains(server.getParentResource())) {
AgentClient agentClient = agentManager.getAgentClient(server.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class, server.getId());
- agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent for server [" + server.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class, server.getId());
+ agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with agent for server [" + server.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for server [" + server.getName()
+ + "]; will expect agent to do it later");
}
}
}
@@ -703,10 +713,10 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
// If provided, assume the new plugin config should replace the old plugin config in its entirety.
- // Use a deep copy without ids as the updgardeRequest config may contain entity config props.
+ // Use a deep copy without ids as the updgardeRequest config may contain entity config props.
// Note: we explicitly do not call configurationManager.updatePluginConfiguration() because the
// agent is already updated to the new configuration. Instead we call the dedicated local method
- // supporting this use case.
+ // supporting this use case.
Configuration pluginConfig = upgradeRequest.getNewPluginConfiguration();
if (null != pluginConfig) {
pluginConfig = pluginConfig.deepCopy(false);
10 years, 6 months
[rhq] modules/enterprise
by mazz
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java | 14 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 38 ++++++----
2 files changed, 34 insertions(+), 18 deletions(-)
New commits:
commit 1b7f2f374291fd0c9a7346339ade032428376868
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 25 16:00:30 2013 -0400
BZ 1023332 be tolerant when the agent client cannot be started
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 8313ca2..1c23836 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -166,12 +166,18 @@ public class AgentManagerBean implements AgentManagerLocal {
ServerCommunicationsServiceMBean bootstrap = ServerCommunicationsServiceUtil.getService();
client = bootstrap.getKnownAgentClient(agent);
- // We assume the caller is asking for a client so it can send the agent messages,
- // so let's start the sender automatically for the caller so it doesn't need to remember to do it
- client.startSending();
+ if (client != null) {
+ // We assume the caller is asking for a client so it can send the agent messages,
+ // so let's start the sender automatically for the caller so it doesn't need to remember to do it
+ client.startSending();
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("There is no agent client for agent: " + agent);
+ }
+ }
} catch (Throwable t) {
if (LOG.isDebugEnabled()) {
- LOG.debug("Could not get agent client for " + agent, t);
+ LOG.debug("Could not get agent client for agent: " + agent, t);
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index ef33810..d7e57bd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -427,24 +427,34 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
for (Resource platform : platforms) {
AgentClient agentClient = agentManager.getAgentClient(platform.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class, platform.getId());
- agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent for platform [" + platform.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class, platform.getId());
+ agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with agent for platform [" + platform.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for platform [" + platform.getName()
+ + "]; will expect agent to do it later");
}
}
for (Resource server : servers) {
// Only update servers if they haven't already been updated at the platform level
if (!platforms.contains(server.getParentResource())) {
AgentClient agentClient = agentManager.getAgentClient(server.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class, server.getId());
- agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent for server [" + server.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class, server.getId());
+ agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with agent for server [" + server.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for server [" + server.getName()
+ + "]; will expect agent to do it later");
}
}
}
@@ -709,10 +719,10 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
}
// If provided, assume the new plugin config should replace the old plugin config in its entirety.
- // Use a deep copy without ids as the updgardeRequest config may contain entity config props.
+ // Use a deep copy without ids as the updgardeRequest config may contain entity config props.
// Note: we explicitly do not call configurationManager.updatePluginConfiguration() because the
// agent is already updated to the new configuration. Instead we call the dedicated local method
- // supporting this use case.
+ // supporting this use case.
Configuration pluginConfig = upgradeRequest.getNewPluginConfiguration();
if (null != pluginConfig) {
pluginConfig = pluginConfig.deepCopy(false);
10 years, 6 months
[rhq] Branch 'release/jon3.2.x' - code-coverage/pom.xml modules/cli-tests modules/common modules/core modules/enterprise modules/helpers modules/integration-tests modules/plugins modules/pom.xml modules/test-utils pom.xml
by Simeon Pinder
code-coverage/pom.xml | 2 +-
modules/cli-tests/pom.xml | 2 +-
modules/common/ant-bundle/pom.xml | 2 +-
modules/common/cassandra-auth/pom.xml | 2 +-
modules/common/cassandra-ccm/cassandra-ccm-arquillian/pom.xml | 2 +-
modules/common/cassandra-ccm/cassandra-ccm-core/pom.xml | 2 +-
modules/common/cassandra-ccm/cassandra-ccm-maven-plugin/pom.xml | 2 +-
modules/common/cassandra-ccm/cassandra-ccm-testng/pom.xml | 2 +-
modules/common/cassandra-ccm/pom.xml | 2 +-
modules/common/cassandra-installer/pom.xml | 2 +-
modules/common/cassandra-schema/pom.xml | 2 +-
modules/common/cassandra-util/pom.xml | 2 +-
modules/common/drift/pom.xml | 2 +-
modules/common/filetemplate-bundle/pom.xml | 2 +-
modules/common/jboss-as-dmr-client/pom.xml | 2 +-
modules/common/jboss-as/pom.xml | 2 +-
modules/common/pom.xml | 2 +-
modules/core/arquillian-integration/archive/pom.xml | 2 +-
modules/core/arquillian-integration/container/pom.xml | 2 +-
modules/core/arquillian-integration/pom.xml | 2 +-
modules/core/arquillian-integration/suite-extension/pom.xml | 2 +-
modules/core/arquillian-integration/test-agent-plugin/pom.xml | 2 +-
modules/core/client-api/pom.xml | 2 +-
modules/core/comm-api/pom.xml | 2 +-
modules/core/dbutils/pom.xml | 2 +-
modules/core/domain/pom.xml | 2 +-
modules/core/gui/pom.xml | 2 +-
modules/core/native-system/pom.xml | 2 +-
modules/core/plugin-api/pom.xml | 2 +-
modules/core/plugin-container-itest/pom.xml | 2 +-
modules/core/plugin-container/pom.xml | 2 +-
modules/core/plugin-test-api/pom.xml | 2 +-
modules/core/plugin-test-util/pom.xml | 2 +-
modules/core/plugin-validator/pom.xml | 2 +-
modules/core/plugindoc/pom.xml | 2 +-
modules/core/pom.xml | 2 +-
modules/core/util/pom.xml | 2 +-
modules/enterprise/agent/pom.xml | 2 +-
modules/enterprise/agentupdate/pom.xml | 2 +-
modules/enterprise/binding/pom.xml | 4 ++--
modules/enterprise/comm/pom.xml | 2 +-
modules/enterprise/gui/agentupdate-war/pom.xml | 2 +-
modules/enterprise/gui/content_http-war/pom.xml | 2 +-
modules/enterprise/gui/coregui/pom.xml | 2 +-
modules/enterprise/gui/downloads-war/pom.xml | 2 +-
modules/enterprise/gui/pom.xml | 2 +-
modules/enterprise/gui/portal-war/pom.xml | 2 +-
modules/enterprise/gui/remote-client-war/pom.xml | 2 +-
modules/enterprise/gui/remoting-war/pom.xml | 2 +-
modules/enterprise/gui/rest-examples-war/pom.xml | 2 +-
modules/enterprise/gui/rest-war/pom.xml | 2 +-
modules/enterprise/pom.xml | 2 +-
modules/enterprise/remoting/cli/pom.xml | 2 +-
modules/enterprise/remoting/client-api/pom.xml | 2 +-
modules/enterprise/remoting/client-deps/pom.xml | 2 +-
modules/enterprise/remoting/pom.xml | 2 +-
modules/enterprise/scripting/api/pom.xml | 4 ++--
modules/enterprise/scripting/javascript/pom.xml | 4 ++--
modules/enterprise/scripting/pom.xml | 4 ++--
modules/enterprise/scripting/python/pom.xml | 4 ++--
modules/enterprise/server/appserver/pom.xml | 2 +-
modules/enterprise/server/client-api/pom.xml | 4 ++--
modules/enterprise/server/data-migration/pom.xml | 2 +-
modules/enterprise/server/ear/pom.xml | 2 +-
modules/enterprise/server/installer/pom.xml | 2 +-
modules/enterprise/server/itests-2/pom.xml | 2 +-
modules/enterprise/server/jar/pom.xml | 2 +-
modules/enterprise/server/plugins/alert-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-email/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-irc/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-log4j/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-microblog/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-mobicents/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-operations/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-roles/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-snmp/pom.xml | 4 ++--
modules/enterprise/server/plugins/alert-subject/pom.xml | 4 ++--
modules/enterprise/server/plugins/alertdef-rhq/pom.xml | 2 +-
modules/enterprise/server/plugins/ant-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/cobbler/pom.xml | 4 ++--
modules/enterprise/server/plugins/disk/pom.xml | 2 +-
modules/enterprise/server/plugins/drift-rhq/pom.xml | 2 +-
modules/enterprise/server/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/enterprise/server/plugins/jboss-software/pom.xml | 2 +-
modules/enterprise/server/plugins/packagetype-cli/pom.xml | 4 ++--
modules/enterprise/server/plugins/pom.xml | 2 +-
modules/enterprise/server/plugins/url/pom.xml | 2 +-
modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml | 2 +-
modules/enterprise/server/plugins/yum/pom.xml | 2 +-
modules/enterprise/server/pom.xml | 2 +-
modules/enterprise/server/safe-invoker/pom.xml | 2 +-
modules/enterprise/server/server-control/pom.xml | 2 +-
modules/enterprise/server/server-metrics/pom.xml | 2 +-
modules/enterprise/server/startup-subsystem/pom.xml | 2 +-
modules/enterprise/server/xml-schemas/pom.xml | 2 +-
modules/helpers/bundleGen/pom.xml | 4 ++--
modules/helpers/jeeGen/pom.xml | 2 +-
modules/helpers/metrics-simulator/pom.xml | 2 +-
modules/helpers/perftest-support/pom.xml | 4 ++--
modules/helpers/pom.xml | 2 +-
modules/helpers/rest-docs-generator/pom.xml | 2 +-
modules/helpers/rtfilter-subsystem/pom.xml | 2 +-
modules/helpers/rtfilter/pom.xml | 2 +-
modules/integration-tests/apache-plugin-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/jndi-access-test/pom.xml | 2 +-
modules/integration-tests/jndi-access/pom.xml | 2 +-
modules/integration-tests/jndi-access/remote-server/pom.xml | 2 +-
modules/integration-tests/pom.xml | 2 +-
modules/integration-tests/rest-api/pom.xml | 2 +-
modules/plugins/aliases/pom.xml | 2 +-
modules/plugins/ant-bundle/pom.xml | 2 +-
modules/plugins/apache/pom.xml | 2 +-
modules/plugins/augeas/pom.xml | 2 +-
modules/plugins/byteman/pom.xml | 2 +-
modules/plugins/cassandra/pom.xml | 2 +-
modules/plugins/cobbler/pom.xml | 2 +-
modules/plugins/cron/pom.xml | 2 +-
modules/plugins/database/pom.xml | 2 +-
modules/plugins/filetemplate-bundle/pom.xml | 2 +-
modules/plugins/grub/pom.xml | 2 +-
modules/plugins/hadoop/pom.xml | 2 +-
modules/plugins/hibernate/pom.xml | 2 +-
modules/plugins/hosts/pom.xml | 2 +-
modules/plugins/hudson/pom.xml | 4 ++--
modules/plugins/iis/pom.xml | 2 +-
modules/plugins/irc/pom.xml | 2 +-
modules/plugins/jboss-as-5/pom.xml | 2 +-
modules/plugins/jboss-as-7/pom.xml | 2 +-
modules/plugins/jboss-as/pom.xml | 2 +-
modules/plugins/jboss-cache-v3/pom.xml | 2 +-
modules/plugins/jboss-cache/pom.xml | 2 +-
modules/plugins/jmx/pom.xml | 2 +-
modules/plugins/kickstart/pom.xml | 2 +-
modules/plugins/mod-cluster/pom.xml | 2 +-
modules/plugins/mysql/pom.xml | 2 +-
modules/plugins/netservices/pom.xml | 2 +-
modules/plugins/noop/pom.xml | 2 +-
modules/plugins/oracle/pom.xml | 2 +-
modules/plugins/pattern-generator/pom.xml | 2 +-
modules/plugins/perftest/pom.xml | 2 +-
modules/plugins/platform/pom.xml | 2 +-
modules/plugins/pom.xml | 2 +-
modules/plugins/postfix/pom.xml | 2 +-
modules/plugins/postgres/pom.xml | 2 +-
modules/plugins/rhq-agent/pom.xml | 2 +-
modules/plugins/rhq-server/pom.xml | 2 +-
modules/plugins/rhq-storage/pom.xml | 2 +-
modules/plugins/samba/pom.xml | 2 +-
modules/plugins/script/pom.xml | 2 +-
modules/plugins/script2/pom.xml | 2 +-
modules/plugins/snmptrapd/pom.xml | 2 +-
modules/plugins/sonarqube/pom.xml | 2 +-
modules/plugins/sshd/pom.xml | 2 +-
modules/plugins/sudoers/pom.xml | 2 +-
modules/plugins/tomcat/pom.xml | 2 +-
modules/plugins/twitter/pom.xml | 2 +-
modules/plugins/validate-all-plugins/pom.xml | 2 +-
modules/plugins/virt/pom.xml | 2 +-
modules/pom.xml | 2 +-
modules/test-utils/pom.xml | 2 +-
pom.xml | 2 +-
161 files changed, 182 insertions(+), 182 deletions(-)
New commits:
commit 72d3e6e65e5695eedbfe9d26ad98de39d970236e
Author: Simeon Pinder <spinder(a)redhat.com>
Date: Fri Oct 25 14:51:55 2013 -0400
Moving pom versions to generic JON 3.2.x snapshot version.
diff --git a/code-coverage/pom.xml b/code-coverage/pom.xml
index 15ac9c4..0b56a58 100644
--- a/code-coverage/pom.xml
+++ b/code-coverage/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-code-coverage</artifactId>
diff --git a/modules/cli-tests/pom.xml b/modules/cli-tests/pom.xml
index a49a48e..c23191a 100644
--- a/modules/cli-tests/pom.xml
+++ b/modules/cli-tests/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/common/ant-bundle/pom.xml b/modules/common/ant-bundle/pom.xml
index b8159dd..30669db 100644
--- a/modules/common/ant-bundle/pom.xml
+++ b/modules/common/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/common/cassandra-auth/pom.xml b/modules/common/cassandra-auth/pom.xml
index 1641c0f..fd483c0 100644
--- a/modules/common/cassandra-auth/pom.xml
+++ b/modules/common/cassandra-auth/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-auth</artifactId>
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-arquillian/pom.xml b/modules/common/cassandra-ccm/cassandra-ccm-arquillian/pom.xml
index 05a88c3..40bd409 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-arquillian/pom.xml
+++ b/modules/common/cassandra-ccm/cassandra-ccm-arquillian/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-cassandra-ccm</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-ccm-arquillian</artifactId>
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-core/pom.xml b/modules/common/cassandra-ccm/cassandra-ccm-core/pom.xml
index ccd6458..506928f 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-core/pom.xml
+++ b/modules/common/cassandra-ccm/cassandra-ccm-core/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-cassandra-ccm</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-ccm-core</artifactId>
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-maven-plugin/pom.xml b/modules/common/cassandra-ccm/cassandra-ccm-maven-plugin/pom.xml
index d0ed982..c5a9e45 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-maven-plugin/pom.xml
+++ b/modules/common/cassandra-ccm/cassandra-ccm-maven-plugin/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-cassandra-ccm</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-ccm-maven-plugin</artifactId>
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-testng/pom.xml b/modules/common/cassandra-ccm/cassandra-ccm-testng/pom.xml
index 052b374..10d5941 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-testng/pom.xml
+++ b/modules/common/cassandra-ccm/cassandra-ccm-testng/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-cassandra-ccm</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-ccm-testng</artifactId>
diff --git a/modules/common/cassandra-ccm/pom.xml b/modules/common/cassandra-ccm/pom.xml
index 6a9572f..22b041b 100644
--- a/modules/common/cassandra-ccm/pom.xml
+++ b/modules/common/cassandra-ccm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-common-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/common/cassandra-installer/pom.xml b/modules/common/cassandra-installer/pom.xml
index fa818ca..18ffdea 100644
--- a/modules/common/cassandra-installer/pom.xml
+++ b/modules/common/cassandra-installer/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-installer</artifactId>
diff --git a/modules/common/cassandra-schema/pom.xml b/modules/common/cassandra-schema/pom.xml
index 7bfb004..f3f52ee 100644
--- a/modules/common/cassandra-schema/pom.xml
+++ b/modules/common/cassandra-schema/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-schema</artifactId>
diff --git a/modules/common/cassandra-util/pom.xml b/modules/common/cassandra-util/pom.xml
index 25ca5e0..7b3a14e 100644
--- a/modules/common/cassandra-util/pom.xml
+++ b/modules/common/cassandra-util/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-cassandra-util</artifactId>
diff --git a/modules/common/drift/pom.xml b/modules/common/drift/pom.xml
index bb82384..749f1fc 100644
--- a/modules/common/drift/pom.xml
+++ b/modules/common/drift/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-common-drift</artifactId>
diff --git a/modules/common/filetemplate-bundle/pom.xml b/modules/common/filetemplate-bundle/pom.xml
index 115ef8b..f670395 100644
--- a/modules/common/filetemplate-bundle/pom.xml
+++ b/modules/common/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-filetemplate-bundle-common</artifactId>
diff --git a/modules/common/jboss-as-dmr-client/pom.xml b/modules/common/jboss-as-dmr-client/pom.xml
index 61f2830..50c42b3 100644
--- a/modules/common/jboss-as-dmr-client/pom.xml
+++ b/modules/common/jboss-as-dmr-client/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-jboss-as-dmr-client</artifactId>
diff --git a/modules/common/jboss-as/pom.xml b/modules/common/jboss-as/pom.xml
index 192beb2..195acd0 100644
--- a/modules/common/jboss-as/pom.xml
+++ b/modules/common/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-common-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-jboss-as-common</artifactId>
diff --git a/modules/common/pom.xml b/modules/common/pom.xml
index ed3334c..1ac7f6a 100644
--- a/modules/common/pom.xml
+++ b/modules/common/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/arquillian-integration/archive/pom.xml b/modules/core/arquillian-integration/archive/pom.xml
index 6dc3717..c323633 100644
--- a/modules/core/arquillian-integration/archive/pom.xml
+++ b/modules/core/arquillian-integration/archive/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-arquillian-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<!-- Model Version -->
diff --git a/modules/core/arquillian-integration/container/pom.xml b/modules/core/arquillian-integration/container/pom.xml
index 30a81aa..71837d6 100644
--- a/modules/core/arquillian-integration/container/pom.xml
+++ b/modules/core/arquillian-integration/container/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-arquillian-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<!-- Model Version -->
diff --git a/modules/core/arquillian-integration/pom.xml b/modules/core/arquillian-integration/pom.xml
index 92fec48..81220b6 100644
--- a/modules/core/arquillian-integration/pom.xml
+++ b/modules/core/arquillian-integration/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/arquillian-integration/suite-extension/pom.xml b/modules/core/arquillian-integration/suite-extension/pom.xml
index c422c7f..0c64dd6 100644
--- a/modules/core/arquillian-integration/suite-extension/pom.xml
+++ b/modules/core/arquillian-integration/suite-extension/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-arquillian-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<!-- Model Version -->
diff --git a/modules/core/arquillian-integration/test-agent-plugin/pom.xml b/modules/core/arquillian-integration/test-agent-plugin/pom.xml
index 2918af2..90826fd 100644
--- a/modules/core/arquillian-integration/test-agent-plugin/pom.xml
+++ b/modules/core/arquillian-integration/test-agent-plugin/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-arquillian-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/client-api/pom.xml b/modules/core/client-api/pom.xml
index d0a6f08..6cbd8ac 100644
--- a/modules/core/client-api/pom.xml
+++ b/modules/core/client-api/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/comm-api/pom.xml b/modules/core/comm-api/pom.xml
index ac3416e..b932a58 100644
--- a/modules/core/comm-api/pom.xml
+++ b/modules/core/comm-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/dbutils/pom.xml b/modules/core/dbutils/pom.xml
index 4148785..7b60cde 100644
--- a/modules/core/dbutils/pom.xml
+++ b/modules/core/dbutils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/domain/pom.xml b/modules/core/domain/pom.xml
index e3e1eb1..db7c534 100644
--- a/modules/core/domain/pom.xml
+++ b/modules/core/domain/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-domain</artifactId>
diff --git a/modules/core/gui/pom.xml b/modules/core/gui/pom.xml
index c3f3b97..98ff540 100644
--- a/modules/core/gui/pom.xml
+++ b/modules/core/gui/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/native-system/pom.xml b/modules/core/native-system/pom.xml
index 9a5c49d..7cd9682 100644
--- a/modules/core/native-system/pom.xml
+++ b/modules/core/native-system/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/plugin-api/pom.xml b/modules/core/plugin-api/pom.xml
index 9f8cb29..2057571 100644
--- a/modules/core/plugin-api/pom.xml
+++ b/modules/core/plugin-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-container-itest/pom.xml b/modules/core/plugin-container-itest/pom.xml
index 4090121..1b7b1f4 100644
--- a/modules/core/plugin-container-itest/pom.xml
+++ b/modules/core/plugin-container-itest/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-plugin-container-itest</artifactId>
diff --git a/modules/core/plugin-container/pom.xml b/modules/core/plugin-container/pom.xml
index 3c7ae29..d0a5fd7 100644
--- a/modules/core/plugin-container/pom.xml
+++ b/modules/core/plugin-container/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-plugin-container</artifactId>
diff --git a/modules/core/plugin-test-api/pom.xml b/modules/core/plugin-test-api/pom.xml
index 32f9675..1297a21 100644
--- a/modules/core/plugin-test-api/pom.xml
+++ b/modules/core/plugin-test-api/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-plugin-test-api</artifactId>
diff --git a/modules/core/plugin-test-util/pom.xml b/modules/core/plugin-test-util/pom.xml
index be4d1e6..483e76c 100644
--- a/modules/core/plugin-test-util/pom.xml
+++ b/modules/core/plugin-test-util/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugin-validator/pom.xml b/modules/core/plugin-validator/pom.xml
index dbe7a5e..5514593 100644
--- a/modules/core/plugin-validator/pom.xml
+++ b/modules/core/plugin-validator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/plugindoc/pom.xml b/modules/core/plugindoc/pom.xml
index 06f4307..b05df0e 100644
--- a/modules/core/plugindoc/pom.xml
+++ b/modules/core/plugindoc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 66730c1..60ab57b 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/core/util/pom.xml b/modules/core/util/pom.xml
index ccb40c6..2fc0f40 100644
--- a/modules/core/util/pom.xml
+++ b/modules/core/util/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-core-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-core-util</artifactId>
diff --git a/modules/enterprise/agent/pom.xml b/modules/enterprise/agent/pom.xml
index efffeca..691b3ab 100644
--- a/modules/enterprise/agent/pom.xml
+++ b/modules/enterprise/agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/agentupdate/pom.xml b/modules/enterprise/agentupdate/pom.xml
index ba65561..7799764 100644
--- a/modules/enterprise/agentupdate/pom.xml
+++ b/modules/enterprise/agentupdate/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/binding/pom.xml b/modules/enterprise/binding/pom.xml
index 9e94766..ee8c271 100644
--- a/modules/enterprise/binding/pom.xml
+++ b/modules/enterprise/binding/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-script-bindings</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Script Bindings</name>
<description>Abstraction of different facilities and default configurations for script bindings</description>
diff --git a/modules/enterprise/comm/pom.xml b/modules/enterprise/comm/pom.xml
index c0ba581..17029c9 100644
--- a/modules/enterprise/comm/pom.xml
+++ b/modules/enterprise/comm/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/agentupdate-war/pom.xml b/modules/enterprise/gui/agentupdate-war/pom.xml
index de527ae..a651542 100644
--- a/modules/enterprise/gui/agentupdate-war/pom.xml
+++ b/modules/enterprise/gui/agentupdate-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/content_http-war/pom.xml b/modules/enterprise/gui/content_http-war/pom.xml
index 7b2d5b4..d8d0f62 100644
--- a/modules/enterprise/gui/content_http-war/pom.xml
+++ b/modules/enterprise/gui/content_http-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-gui-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/gui/coregui/pom.xml b/modules/enterprise/gui/coregui/pom.xml
index 50d027a..6c9c577 100644
--- a/modules/enterprise/gui/coregui/pom.xml
+++ b/modules/enterprise/gui/coregui/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/downloads-war/pom.xml b/modules/enterprise/gui/downloads-war/pom.xml
index e5f7ca7..e60e8fd 100644
--- a/modules/enterprise/gui/downloads-war/pom.xml
+++ b/modules/enterprise/gui/downloads-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/pom.xml b/modules/enterprise/gui/pom.xml
index 09b7799..ae04352 100644
--- a/modules/enterprise/gui/pom.xml
+++ b/modules/enterprise/gui/pom.xml
@@ -8,7 +8,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/portal-war/pom.xml b/modules/enterprise/gui/portal-war/pom.xml
index f959ea4..f08ed99 100644
--- a/modules/enterprise/gui/portal-war/pom.xml
+++ b/modules/enterprise/gui/portal-war/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/remote-client-war/pom.xml b/modules/enterprise/gui/remote-client-war/pom.xml
index 92a363f..4297757 100644
--- a/modules/enterprise/gui/remote-client-war/pom.xml
+++ b/modules/enterprise/gui/remote-client-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/remoting-war/pom.xml b/modules/enterprise/gui/remoting-war/pom.xml
index 731d7b3..04b5685 100644
--- a/modules/enterprise/gui/remoting-war/pom.xml
+++ b/modules/enterprise/gui/remoting-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-examples-war/pom.xml b/modules/enterprise/gui/rest-examples-war/pom.xml
index f159630..90fc9c8 100644
--- a/modules/enterprise/gui/rest-examples-war/pom.xml
+++ b/modules/enterprise/gui/rest-examples-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/gui/rest-war/pom.xml b/modules/enterprise/gui/rest-war/pom.xml
index c5437b3..44b8d2b 100644
--- a/modules/enterprise/gui/rest-war/pom.xml
+++ b/modules/enterprise/gui/rest-war/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/pom.xml b/modules/enterprise/pom.xml
index 2a189e8..6e34c3d 100644
--- a/modules/enterprise/pom.xml
+++ b/modules/enterprise/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/cli/pom.xml b/modules/enterprise/remoting/cli/pom.xml
index a18759f..09f85c3 100644
--- a/modules/enterprise/remoting/cli/pom.xml
+++ b/modules/enterprise/remoting/cli/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-api/pom.xml b/modules/enterprise/remoting/client-api/pom.xml
index 53c3933..e717176 100644
--- a/modules/enterprise/remoting/client-api/pom.xml
+++ b/modules/enterprise/remoting/client-api/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/client-deps/pom.xml b/modules/enterprise/remoting/client-deps/pom.xml
index fad38b5..9f3225e 100644
--- a/modules/enterprise/remoting/client-deps/pom.xml
+++ b/modules/enterprise/remoting/client-deps/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/remoting/pom.xml b/modules/enterprise/remoting/pom.xml
index 4fcc5b1..a28434f 100644
--- a/modules/enterprise/remoting/pom.xml
+++ b/modules/enterprise/remoting/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/scripting/api/pom.xml b/modules/enterprise/scripting/api/pom.xml
index 930bf54..4d48c61 100644
--- a/modules/enterprise/scripting/api/pom.xml
+++ b/modules/enterprise/scripting/api/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-scripting-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-scripting-api</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Scripting API</name>
<description>Provides API for adding scripting support to RHQ using different javax.scripting - based interpreters</description>
diff --git a/modules/enterprise/scripting/javascript/pom.xml b/modules/enterprise/scripting/javascript/pom.xml
index 90555f4..f4491a6 100644
--- a/modules/enterprise/scripting/javascript/pom.xml
+++ b/modules/enterprise/scripting/javascript/pom.xml
@@ -4,10 +4,10 @@
<parent>
<artifactId>rhq-scripting-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-scripting-javascript</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Javascript support</name>
<description>Provides RHQ scripting in Javascript using Rhino</description>
diff --git a/modules/enterprise/scripting/pom.xml b/modules/enterprise/scripting/pom.xml
index baddc3d..b1d2647 100644
--- a/modules/enterprise/scripting/pom.xml
+++ b/modules/enterprise/scripting/pom.xml
@@ -3,12 +3,12 @@
<parent>
<artifactId>rhq-enterprise-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-scripting-parent</artifactId>
<packaging>pom</packaging>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Scripting Parent Module</name>
<modules>
diff --git a/modules/enterprise/scripting/python/pom.xml b/modules/enterprise/scripting/python/pom.xml
index 6cf84b1..538d398 100644
--- a/modules/enterprise/scripting/python/pom.xml
+++ b/modules/enterprise/scripting/python/pom.xml
@@ -3,10 +3,10 @@
<parent>
<artifactId>rhq-scripting-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-scripting-python</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Python support</name>
<description>Provides RHQ scripting in Python using Jython</description>
diff --git a/modules/enterprise/server/appserver/pom.xml b/modules/enterprise/server/appserver/pom.xml
index eb21b40..08af857 100644
--- a/modules/enterprise/server/appserver/pom.xml
+++ b/modules/enterprise/server/appserver/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/client-api/pom.xml b/modules/enterprise/server/client-api/pom.xml
index 6aca32f..d71d04d 100644
--- a/modules/enterprise/server/client-api/pom.xml
+++ b/modules/enterprise/server/client-api/pom.xml
@@ -5,13 +5,13 @@
<parent>
<artifactId>rhq-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-server-client-api</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Client API</name>
<description>The implementation of the client API when accessing the server locally</description>
diff --git a/modules/enterprise/server/data-migration/pom.xml b/modules/enterprise/server/data-migration/pom.xml
index 54083fb..a3719bc 100644
--- a/modules/enterprise/server/data-migration/pom.xml
+++ b/modules/enterprise/server/data-migration/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/ear/pom.xml b/modules/enterprise/server/ear/pom.xml
index 46c7074..e9228db 100644
--- a/modules/enterprise/server/ear/pom.xml
+++ b/modules/enterprise/server/ear/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/installer/pom.xml b/modules/enterprise/server/installer/pom.xml
index 0e497e0..8f15680 100644
--- a/modules/enterprise/server/installer/pom.xml
+++ b/modules/enterprise/server/installer/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/itests-2/pom.xml b/modules/enterprise/server/itests-2/pom.xml
index aecde5a..86a0b80 100644
--- a/modules/enterprise/server/itests-2/pom.xml
+++ b/modules/enterprise/server/itests-2/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/jar/pom.xml b/modules/enterprise/server/jar/pom.xml
index 0343a70..b6b5d71 100644
--- a/modules/enterprise/server/jar/pom.xml
+++ b/modules/enterprise/server/jar/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/alert-cli/pom.xml b/modules/enterprise/server/plugins/alert-cli/pom.xml
index f8763ca..d456a23 100644
--- a/modules/enterprise/server/plugins/alert-cli/pom.xml
+++ b/modules/enterprise/server/plugins/alert-cli/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>alert-cli</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Script Alert Plugin</name>
<description>An alert sender able to execute an arbitrary CLI script as a response to an alert</description>
diff --git a/modules/enterprise/server/plugins/alert-email/pom.xml b/modules/enterprise/server/plugins/alert-email/pom.xml
index 6933cd0..f0d9695 100644
--- a/modules/enterprise/server/plugins/alert-email/pom.xml
+++ b/modules/enterprise/server/plugins/alert-email/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.server</groupId>
<artifactId>alert-email</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Email Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-irc/pom.xml b/modules/enterprise/server/plugins/alert-irc/pom.xml
index ee508ab..7e9ee3e 100644
--- a/modules/enterprise/server/plugins/alert-irc/pom.xml
+++ b/modules/enterprise/server/plugins/alert-irc/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-irc</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server IRC Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-log4j/pom.xml b/modules/enterprise/server/plugins/alert-log4j/pom.xml
index 0d63856..280c40b 100644
--- a/modules/enterprise/server/plugins/alert-log4j/pom.xml
+++ b/modules/enterprise/server/plugins/alert-log4j/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-log4j</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Log4J Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-microblog/pom.xml b/modules/enterprise/server/plugins/alert-microblog/pom.xml
index d89c48f..74f51f7 100644
--- a/modules/enterprise/server/plugins/alert-microblog/pom.xml
+++ b/modules/enterprise/server/plugins/alert-microblog/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-microblog</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Microblog Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-mobicents/pom.xml b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
index 16d05f9..6d3886d 100644
--- a/modules/enterprise/server/plugins/alert-mobicents/pom.xml
+++ b/modules/enterprise/server/plugins/alert-mobicents/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-mobicents</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Mobicents Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-operations/pom.xml b/modules/enterprise/server/plugins/alert-operations/pom.xml
index 32b6e20..2b98f6e 100644
--- a/modules/enterprise/server/plugins/alert-operations/pom.xml
+++ b/modules/enterprise/server/plugins/alert-operations/pom.xml
@@ -2,14 +2,14 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-operations</artifactId>
<packaging>jar</packaging>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Opertions Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-roles/pom.xml b/modules/enterprise/server/plugins/alert-roles/pom.xml
index 64061e5..5323ce3 100644
--- a/modules/enterprise/server/plugins/alert-roles/pom.xml
+++ b/modules/enterprise/server/plugins/alert-roles/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-roles</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Roles Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-snmp/pom.xml b/modules/enterprise/server/plugins/alert-snmp/pom.xml
index 080bc50..3250eec 100644
--- a/modules/enterprise/server/plugins/alert-snmp/pom.xml
+++ b/modules/enterprise/server/plugins/alert-snmp/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-snmp</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server SNMP Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alert-subject/pom.xml b/modules/enterprise/server/plugins/alert-subject/pom.xml
index a656065..e2f9bcc 100644
--- a/modules/enterprise/server/plugins/alert-subject/pom.xml
+++ b/modules/enterprise/server/plugins/alert-subject/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>alert-subject</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Subject Alert Plugin</name>
diff --git a/modules/enterprise/server/plugins/alertdef-rhq/pom.xml b/modules/enterprise/server/plugins/alertdef-rhq/pom.xml
index a9e0b74..156960b 100644
--- a/modules/enterprise/server/plugins/alertdef-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/alertdef-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/ant-bundle/pom.xml b/modules/enterprise/server/plugins/ant-bundle/pom.xml
index 8d24e9a..b572ec1 100644
--- a/modules/enterprise/server/plugins/ant-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/cobbler/pom.xml b/modules/enterprise/server/plugins/cobbler/pom.xml
index 2c8ebe4..89ec1d6 100644
--- a/modules/enterprise/server/plugins/cobbler/pom.xml
+++ b/modules/enterprise/server/plugins/cobbler/pom.xml
@@ -4,14 +4,14 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>rhq-serverplugin-cobbler</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server Cobbler Plugin</name>
diff --git a/modules/enterprise/server/plugins/disk/pom.xml b/modules/enterprise/server/plugins/disk/pom.xml
index cc91769..e671c45 100644
--- a/modules/enterprise/server/plugins/disk/pom.xml
+++ b/modules/enterprise/server/plugins/disk/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/drift-rhq/pom.xml b/modules/enterprise/server/plugins/drift-rhq/pom.xml
index 813638e..d6eaa0e 100644
--- a/modules/enterprise/server/plugins/drift-rhq/pom.xml
+++ b/modules/enterprise/server/plugins/drift-rhq/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
index 2aabcf9..02000a6 100644
--- a/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
+++ b/modules/enterprise/server/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/jboss-software/pom.xml b/modules/enterprise/server/plugins/jboss-software/pom.xml
index 2c87421..81da215 100644
--- a/modules/enterprise/server/plugins/jboss-software/pom.xml
+++ b/modules/enterprise/server/plugins/jboss-software/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/packagetype-cli/pom.xml b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
index 7eecd9d..2d1cba7 100644
--- a/modules/enterprise/server/plugins/packagetype-cli/pom.xml
+++ b/modules/enterprise/server/plugins/packagetype-cli/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq</groupId>
<artifactId>packagetype-cli</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>RHQ Enterprise Server CLI Package Type Plugin</name>
diff --git a/modules/enterprise/server/plugins/pom.xml b/modules/enterprise/server/plugins/pom.xml
index 72ed1f9..5d4f25a 100644
--- a/modules/enterprise/server/plugins/pom.xml
+++ b/modules/enterprise/server/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/plugins/url/pom.xml b/modules/enterprise/server/plugins/url/pom.xml
index 5032ea9..660abf7 100644
--- a/modules/enterprise/server/plugins/url/pom.xml
+++ b/modules/enterprise/server/plugins/url/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
index 1fb65c1..0ccb6b2 100644
--- a/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
+++ b/modules/enterprise/server/plugins/validate-all-serverplugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/plugins/yum/pom.xml b/modules/enterprise/server/plugins/yum/pom.xml
index 39009fe..2e8f122 100644
--- a/modules/enterprise/server/plugins/yum/pom.xml
+++ b/modules/enterprise/server/plugins/yum/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-enterprise-server-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/enterprise/server/pom.xml b/modules/enterprise/server/pom.xml
index a33c642..5107d7e 100644
--- a/modules/enterprise/server/pom.xml
+++ b/modules/enterprise/server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/safe-invoker/pom.xml b/modules/enterprise/server/safe-invoker/pom.xml
index fca77dd..cfeeaa6 100644
--- a/modules/enterprise/server/safe-invoker/pom.xml
+++ b/modules/enterprise/server/safe-invoker/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/server-control/pom.xml b/modules/enterprise/server/server-control/pom.xml
index 3c3da13..6bc4162 100644
--- a/modules/enterprise/server/server-control/pom.xml
+++ b/modules/enterprise/server/server-control/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/server-metrics/pom.xml b/modules/enterprise/server/server-metrics/pom.xml
index 5828d9d..da9be26 100644
--- a/modules/enterprise/server/server-metrics/pom.xml
+++ b/modules/enterprise/server/server-metrics/pom.xml
@@ -31,7 +31,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/startup-subsystem/pom.xml b/modules/enterprise/server/startup-subsystem/pom.xml
index fb7c1af..3521d83 100644
--- a/modules/enterprise/server/startup-subsystem/pom.xml
+++ b/modules/enterprise/server/startup-subsystem/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/enterprise/server/xml-schemas/pom.xml b/modules/enterprise/server/xml-schemas/pom.xml
index c9c3508..ad2e66e 100644
--- a/modules/enterprise/server/xml-schemas/pom.xml
+++ b/modules/enterprise/server/xml-schemas/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/bundleGen/pom.xml b/modules/helpers/bundleGen/pom.xml
index b253169..1a0d805 100644
--- a/modules/helpers/bundleGen/pom.xml
+++ b/modules/helpers/bundleGen/pom.xml
@@ -3,13 +3,13 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.rhq.helpers</groupId>
<artifactId>bundleGen</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<build>
<plugins>
diff --git a/modules/helpers/jeeGen/pom.xml b/modules/helpers/jeeGen/pom.xml
index e1e30ae..287e9a2 100644
--- a/modules/helpers/jeeGen/pom.xml
+++ b/modules/helpers/jeeGen/pom.xml
@@ -9,7 +9,7 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/metrics-simulator/pom.xml b/modules/helpers/metrics-simulator/pom.xml
index ced7e80..e785ed2 100644
--- a/modules/helpers/metrics-simulator/pom.xml
+++ b/modules/helpers/metrics-simulator/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/helpers/perftest-support/pom.xml b/modules/helpers/perftest-support/pom.xml
index 6847d58..ea30278 100644
--- a/modules/helpers/perftest-support/pom.xml
+++ b/modules/helpers/perftest-support/pom.xml
@@ -3,11 +3,11 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>perftest-support</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<name>Performance Testing Support</name>
<description>To support performance testing, this is a basic tool to support extracting and later reimporting of
data from/to a database.
diff --git a/modules/helpers/pom.xml b/modules/helpers/pom.xml
index a7cc8b8..7018588 100644
--- a/modules/helpers/pom.xml
+++ b/modules/helpers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/helpers/rest-docs-generator/pom.xml b/modules/helpers/rest-docs-generator/pom.xml
index d6e3fde..7fc3f28 100644
--- a/modules/helpers/rest-docs-generator/pom.xml
+++ b/modules/helpers/rest-docs-generator/pom.xml
@@ -24,7 +24,7 @@
<parent>
<artifactId>rhq-helpers</artifactId>
<groupId>org.rhq.helpers</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/helpers/rtfilter-subsystem/pom.xml b/modules/helpers/rtfilter-subsystem/pom.xml
index 45def54..b9be0b3 100644
--- a/modules/helpers/rtfilter-subsystem/pom.xml
+++ b/modules/helpers/rtfilter-subsystem/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/helpers/rtfilter/pom.xml b/modules/helpers/rtfilter/pom.xml
index e975351..74c1667 100644
--- a/modules/helpers/rtfilter/pom.xml
+++ b/modules/helpers/rtfilter/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq.helpers</groupId>
<artifactId>rhq-helpers</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq.helpers</groupId>
diff --git a/modules/integration-tests/apache-plugin-test/pom.xml b/modules/integration-tests/apache-plugin-test/pom.xml
index 80a68f4..2dd4840 100644
--- a/modules/integration-tests/apache-plugin-test/pom.xml
+++ b/modules/integration-tests/apache-plugin-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
index 6e012eb..d1433fd 100644
--- a/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
+++ b/modules/integration-tests/jndi-access/jndi-access-test/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>jndi-access-test</artifactId>
diff --git a/modules/integration-tests/jndi-access/pom.xml b/modules/integration-tests/jndi-access/pom.xml
index 064865d..d76cd4b 100644
--- a/modules/integration-tests/jndi-access/pom.xml
+++ b/modules/integration-tests/jndi-access/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>rhq-integration-tests</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/integration-tests/jndi-access/remote-server/pom.xml b/modules/integration-tests/jndi-access/remote-server/pom.xml
index e36fa47..3584306 100644
--- a/modules/integration-tests/jndi-access/remote-server/pom.xml
+++ b/modules/integration-tests/jndi-access/remote-server/pom.xml
@@ -4,7 +4,7 @@
<parent>
<artifactId>jndi-access-test-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>jndi-access-remote-server</artifactId>
diff --git a/modules/integration-tests/pom.xml b/modules/integration-tests/pom.xml
index b8b11ec..c808968 100644
--- a/modules/integration-tests/pom.xml
+++ b/modules/integration-tests/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/integration-tests/rest-api/pom.xml b/modules/integration-tests/rest-api/pom.xml
index 0f6f4e1..acf86b9 100644
--- a/modules/integration-tests/rest-api/pom.xml
+++ b/modules/integration-tests/rest-api/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-integration-tests</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/aliases/pom.xml b/modules/plugins/aliases/pom.xml
index 3b60a9e..5dfbced 100644
--- a/modules/plugins/aliases/pom.xml
+++ b/modules/plugins/aliases/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/ant-bundle/pom.xml b/modules/plugins/ant-bundle/pom.xml
index ce0937d..b1939b3 100644
--- a/modules/plugins/ant-bundle/pom.xml
+++ b/modules/plugins/ant-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/apache/pom.xml b/modules/plugins/apache/pom.xml
index 2cf3b5e..54f2def 100644
--- a/modules/plugins/apache/pom.xml
+++ b/modules/plugins/apache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/augeas/pom.xml b/modules/plugins/augeas/pom.xml
index a4e15ae..0e82df2 100644
--- a/modules/plugins/augeas/pom.xml
+++ b/modules/plugins/augeas/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/byteman/pom.xml b/modules/plugins/byteman/pom.xml
index 413f31a..7c00222 100644
--- a/modules/plugins/byteman/pom.xml
+++ b/modules/plugins/byteman/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cassandra/pom.xml b/modules/plugins/cassandra/pom.xml
index f878ae9..8106305 100644
--- a/modules/plugins/cassandra/pom.xml
+++ b/modules/plugins/cassandra/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cobbler/pom.xml b/modules/plugins/cobbler/pom.xml
index e214295..c5aeb5f 100644
--- a/modules/plugins/cobbler/pom.xml
+++ b/modules/plugins/cobbler/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/cron/pom.xml b/modules/plugins/cron/pom.xml
index a484ab5..8833733 100644
--- a/modules/plugins/cron/pom.xml
+++ b/modules/plugins/cron/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/database/pom.xml b/modules/plugins/database/pom.xml
index 68cc2d3..277bcdc 100644
--- a/modules/plugins/database/pom.xml
+++ b/modules/plugins/database/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/filetemplate-bundle/pom.xml b/modules/plugins/filetemplate-bundle/pom.xml
index f34f482..e00a39e 100644
--- a/modules/plugins/filetemplate-bundle/pom.xml
+++ b/modules/plugins/filetemplate-bundle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/grub/pom.xml b/modules/plugins/grub/pom.xml
index 4b2b980..1446dc5 100644
--- a/modules/plugins/grub/pom.xml
+++ b/modules/plugins/grub/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hadoop/pom.xml b/modules/plugins/hadoop/pom.xml
index 38cc103..dd6f5bd 100644
--- a/modules/plugins/hadoop/pom.xml
+++ b/modules/plugins/hadoop/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hibernate/pom.xml b/modules/plugins/hibernate/pom.xml
index ea1f0d1..f99dbff 100644
--- a/modules/plugins/hibernate/pom.xml
+++ b/modules/plugins/hibernate/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<!-- Bypass the jopr-plugins-parent which can not have children. It must build after the plugins in order to execute integration tests on them. -->
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/hosts/pom.xml b/modules/plugins/hosts/pom.xml
index 1ebacce..20a5ac1 100644
--- a/modules/plugins/hosts/pom.xml
+++ b/modules/plugins/hosts/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/hudson/pom.xml b/modules/plugins/hudson/pom.xml
index b9e3cc4..849be78 100644
--- a/modules/plugins/hudson/pom.xml
+++ b/modules/plugins/hudson/pom.xml
@@ -6,12 +6,12 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-hudson-plugin</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<packaging>jar</packaging>
<name>RHQ Hudson Plugin</name>
diff --git a/modules/plugins/iis/pom.xml b/modules/plugins/iis/pom.xml
index efede6e..c2ad1da 100644
--- a/modules/plugins/iis/pom.xml
+++ b/modules/plugins/iis/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/irc/pom.xml b/modules/plugins/irc/pom.xml
index 78f4497..a77efa9 100644
--- a/modules/plugins/irc/pom.xml
+++ b/modules/plugins/irc/pom.xml
@@ -5,7 +5,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as-5/pom.xml b/modules/plugins/jboss-as-5/pom.xml
index 069f513..25797b2 100644
--- a/modules/plugins/jboss-as-5/pom.xml
+++ b/modules/plugins/jboss-as-5/pom.xml
@@ -9,7 +9,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index 566e0ef..da00d3f 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/jboss-as/pom.xml b/modules/plugins/jboss-as/pom.xml
index 49f6c0f..bf3efc6 100644
--- a/modules/plugins/jboss-as/pom.xml
+++ b/modules/plugins/jboss-as/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache-v3/pom.xml b/modules/plugins/jboss-cache-v3/pom.xml
index 4c29f36..8039e11 100644
--- a/modules/plugins/jboss-cache-v3/pom.xml
+++ b/modules/plugins/jboss-cache-v3/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jboss-cache/pom.xml b/modules/plugins/jboss-cache/pom.xml
index e389e43..7175494 100644
--- a/modules/plugins/jboss-cache/pom.xml
+++ b/modules/plugins/jboss-cache/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/jmx/pom.xml b/modules/plugins/jmx/pom.xml
index bdd9bee..ef51dcc 100644
--- a/modules/plugins/jmx/pom.xml
+++ b/modules/plugins/jmx/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/kickstart/pom.xml b/modules/plugins/kickstart/pom.xml
index 50b2499..896eb10 100644
--- a/modules/plugins/kickstart/pom.xml
+++ b/modules/plugins/kickstart/pom.xml
@@ -7,7 +7,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mod-cluster/pom.xml b/modules/plugins/mod-cluster/pom.xml
index e124f9d..a0632fd 100644
--- a/modules/plugins/mod-cluster/pom.xml
+++ b/modules/plugins/mod-cluster/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/mysql/pom.xml b/modules/plugins/mysql/pom.xml
index 1658fe1..a6f7251 100644
--- a/modules/plugins/mysql/pom.xml
+++ b/modules/plugins/mysql/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/netservices/pom.xml b/modules/plugins/netservices/pom.xml
index 0f5c16e..6983a44 100644
--- a/modules/plugins/netservices/pom.xml
+++ b/modules/plugins/netservices/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/noop/pom.xml b/modules/plugins/noop/pom.xml
index b23f064..77a7cbc 100644
--- a/modules/plugins/noop/pom.xml
+++ b/modules/plugins/noop/pom.xml
@@ -26,7 +26,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/oracle/pom.xml b/modules/plugins/oracle/pom.xml
index 6f4b633..53cf972b 100644
--- a/modules/plugins/oracle/pom.xml
+++ b/modules/plugins/oracle/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pattern-generator/pom.xml b/modules/plugins/pattern-generator/pom.xml
index 7799f76..bed1134 100644
--- a/modules/plugins/pattern-generator/pom.xml
+++ b/modules/plugins/pattern-generator/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/perftest/pom.xml b/modules/plugins/perftest/pom.xml
index 71c7a9c..981783f 100644
--- a/modules/plugins/perftest/pom.xml
+++ b/modules/plugins/perftest/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/platform/pom.xml b/modules/plugins/platform/pom.xml
index 905d5e4..a1d25ce 100644
--- a/modules/plugins/platform/pom.xml
+++ b/modules/plugins/platform/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/pom.xml b/modules/plugins/pom.xml
index f0d8ee8..9e5c445 100644
--- a/modules/plugins/pom.xml
+++ b/modules/plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
diff --git a/modules/plugins/postfix/pom.xml b/modules/plugins/postfix/pom.xml
index 524323c..fecf282 100644
--- a/modules/plugins/postfix/pom.xml
+++ b/modules/plugins/postfix/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/postgres/pom.xml b/modules/plugins/postgres/pom.xml
index 2435c1b..d3ddb50 100644
--- a/modules/plugins/postgres/pom.xml
+++ b/modules/plugins/postgres/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-agent/pom.xml b/modules/plugins/rhq-agent/pom.xml
index cddb38b..b8fb2a6 100644
--- a/modules/plugins/rhq-agent/pom.xml
+++ b/modules/plugins/rhq-agent/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-server/pom.xml b/modules/plugins/rhq-server/pom.xml
index 937eb85..8a53e7c 100644
--- a/modules/plugins/rhq-server/pom.xml
+++ b/modules/plugins/rhq-server/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/rhq-storage/pom.xml b/modules/plugins/rhq-storage/pom.xml
index a79a3bf..d7798df 100644
--- a/modules/plugins/rhq-storage/pom.xml
+++ b/modules/plugins/rhq-storage/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/samba/pom.xml b/modules/plugins/samba/pom.xml
index b866d2f..1520510 100644
--- a/modules/plugins/samba/pom.xml
+++ b/modules/plugins/samba/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script/pom.xml b/modules/plugins/script/pom.xml
index 5d7ef5b..732b7ed 100644
--- a/modules/plugins/script/pom.xml
+++ b/modules/plugins/script/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/script2/pom.xml b/modules/plugins/script2/pom.xml
index 9ed4854..eb38011 100644
--- a/modules/plugins/script2/pom.xml
+++ b/modules/plugins/script2/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/snmptrapd/pom.xml b/modules/plugins/snmptrapd/pom.xml
index ff2b497..a1df1c1 100644
--- a/modules/plugins/snmptrapd/pom.xml
+++ b/modules/plugins/snmptrapd/pom.xml
@@ -2,7 +2,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
diff --git a/modules/plugins/sonarqube/pom.xml b/modules/plugins/sonarqube/pom.xml
index ee32fdb..2d97734 100644
--- a/modules/plugins/sonarqube/pom.xml
+++ b/modules/plugins/sonarqube/pom.xml
@@ -6,7 +6,7 @@
<parent>
<artifactId>rhq-plugins-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>rhq-sonarqube-plugin</artifactId>
diff --git a/modules/plugins/sshd/pom.xml b/modules/plugins/sshd/pom.xml
index bae1ef8..399cd6f 100644
--- a/modules/plugins/sshd/pom.xml
+++ b/modules/plugins/sshd/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/sudoers/pom.xml b/modules/plugins/sudoers/pom.xml
index b81a49b..d1a871d 100644
--- a/modules/plugins/sudoers/pom.xml
+++ b/modules/plugins/sudoers/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/tomcat/pom.xml b/modules/plugins/tomcat/pom.xml
index 675ca01..f77077f 100644
--- a/modules/plugins/tomcat/pom.xml
+++ b/modules/plugins/tomcat/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.jboss.on</groupId>
diff --git a/modules/plugins/twitter/pom.xml b/modules/plugins/twitter/pom.xml
index af40f59..0c10ecc 100644
--- a/modules/plugins/twitter/pom.xml
+++ b/modules/plugins/twitter/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/validate-all-plugins/pom.xml b/modules/plugins/validate-all-plugins/pom.xml
index d8b94f1..20d5da9 100644
--- a/modules/plugins/validate-all-plugins/pom.xml
+++ b/modules/plugins/validate-all-plugins/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/plugins/virt/pom.xml b/modules/plugins/virt/pom.xml
index 0190782..3c16f0d 100644
--- a/modules/plugins/virt/pom.xml
+++ b/modules/plugins/virt/pom.xml
@@ -4,7 +4,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-plugins-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/pom.xml b/modules/pom.xml
index 6246923..5bfed58 100644
--- a/modules/pom.xml
+++ b/modules/pom.xml
@@ -6,7 +6,7 @@
<parent>
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<groupId>org.rhq</groupId>
diff --git a/modules/test-utils/pom.xml b/modules/test-utils/pom.xml
index 709046e..1c7da5d 100644
--- a/modules/test-utils/pom.xml
+++ b/modules/test-utils/pom.xml
@@ -7,7 +7,7 @@
<parent>
<artifactId>rhq-modules-parent</artifactId>
<groupId>org.rhq</groupId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
</parent>
<artifactId>test-utils</artifactId>
diff --git a/pom.xml b/pom.xml
index a32b096..e609a19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
<groupId>org.rhq</groupId>
<artifactId>rhq-parent</artifactId>
- <version>4.9.0.JON320ER3</version>
+ <version>4.9.0.JON320-SNAPSHOT</version>
<packaging>pom</packaging>
<name>RHQ</name>
10 years, 6 months
[rhq] 2 commits - modules/enterprise modules/plugins
by Jay Shaughnessy
modules/enterprise/agent/ant-run.xml | 2
modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.inc | 19 ++++
modules/enterprise/agent/src/etc/rhq-agent-env.bat | 10 +-
modules/enterprise/agent/src/etc/rhq-agent.bat | 12 +-
modules/enterprise/remoting/cli/src/etc/rhq-cli-env.bat | 26 ++---
modules/enterprise/remoting/cli/src/etc/rhq-cli.bat | 45 +++++-----
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat | 12 +-
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat | 12 +-
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat | 12 +-
modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat | 12 +-
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat | 12 +-
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat | 14 +--
modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.inc | 19 ++++
modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.env | 25 ++++-
modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.inc | 19 ++++
modules/enterprise/server/appserver/src/main/dev-resources/bin/wrapper/rhq-server-wrapper.inc | 12 ++
modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml | 2
modules/plugins/OpenShift-support/pom.xml | 1
18 files changed, 172 insertions(+), 94 deletions(-)
New commits:
commit 6d87af2dd0ffaa7ecad1e1ed6d67ac7f0ff45129
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Fri Oct 25 14:17:27 2013 -0400
Bug 1022620 - Windows 2008 - Upgrade to JON3.2.ER3 fails when using oracle jdk7-32b
The 64bit Java distribution assumes that it will run a '-server' JVM, which
is required by RHQ (in part because the underlying AS7 also requires it but
also because it should run as a server). The 32bit distribution still makes
a distinction between a client JVM (optimized to be lightweight) and a server
JVM (optimized to perform). Only the 32bit JDK supplies the server JVM, so
for 32 Java bit we require the JDK.
By default the 32bit distribution installs under 'c:\Program Files (x86)\Java\'.
Unfortunately, our scripts failed when RHQ_JAVA_HOME was set to this
directory, because the parentheses cause issues with the script conditionals,
which (by brilliant M$ design) use parens for grouping. So, fix #1 in this
check-in is to enable and delayed expansion of variables in the scripts, in our
logic determining where the java exe is.
On Windows we install RHQ into three windows services, one for storage, server
and agent. By default, the (non--user) local system account runs the services.
Unfortunately, when using the 32bit distribution the java.io.tmpdir then
resolves to a locked-down temp directory under windows/system32, which
subsequently stops things from working. The workaround is to use a user
account via RUN_AS[_ME] or to redefined java.io.tmpdir to be a valid
directory. The latter choice is somewhat involved as you need to update
the property in all three service wrapper configurations. This was not
as easily supported as it could be, so fix #2 is to add wrapper.inc files
for all of the components and beef up some commenting in several of our
script/conf files.
Also in this commit:
- fix the CLI scripts to use the new RHQ_JAVA_HOME and RHQ_JAVA_EXE_FILE_PATH
properties. This had been previously missed.
- make the dev version of rhq-server-wrapper.inc apply lower mem settings.
ToDo: Wiki doco around 32bit distribution.
diff --git a/modules/enterprise/agent/ant-run.xml b/modules/enterprise/agent/ant-run.xml
index 4816e1c..d6ebbfb 100644
--- a/modules/enterprise/agent/ant-run.xml
+++ b/modules/enterprise/agent/ant-run.xml
@@ -186,7 +186,7 @@ Ant Script that provides ways to package the Agent.
<copy todir="${agent.distro.dir}/bin/wrapper">
<fileset dir="${basedir}/src/etc/java-service-wrapper"
- includes="rhq-agent-wrapper.conf"/>
+ includes="rhq-agent-wrapper.*"/>
</copy>
<copy todir="${agent.distro.dir}/bin/wrapper/windows-x86_32">
diff --git a/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.inc b/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.inc
new file mode 100644
index 0000000..cd22661
--- /dev/null
+++ b/modules/enterprise/agent/src/etc/java-service-wrapper/rhq-agent-wrapper.inc
@@ -0,0 +1,19 @@
+#*****************************************************************************
+# RHQ Agent Java Service Wrapper Settings Include File
+#
+# This file specifies a set of additional environment variables that will be
+# applied to the RHQ Agent JVM. This file will likely be empty.
+#
+# If adding additional Java properties note that the properties must follow
+# a strict number ordering (that continues from rhq-agent-wrapper.conf)
+# and currently must start with:
+#
+# wrapper.java.additional.9=
+#
+# For example, to set a non-default temp directory for Java:
+# Note: use forward slashes for directories:
+#
+# wrapper.java.additional.9="-Djava.io.tmpdir=c:/temp"
+#
+#*****************************************************************************
+
diff --git a/modules/enterprise/agent/src/etc/rhq-agent-env.bat b/modules/enterprise/agent/src/etc/rhq-agent-env.bat
index bfa2c9a..56485a1 100644
--- a/modules/enterprise/agent/src/etc/rhq-agent-env.bat
+++ b/modules/enterprise/agent/src/etc/rhq-agent-env.bat
@@ -30,7 +30,7 @@ rem RHQ_JAVA_EXE_FILE_PATH is set.
rem If this and RHQ_JAVA_EXE_FILE_PATH are
rem not set, JAVA_HOME will be used.
rem
-rem set RHQ_JAVA_HOME=C:\opt\java
+rem set RHQ_JAVA_HOME=
rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java
rem executable to use. If this is set,
@@ -41,11 +41,13 @@ rem is used. If this and
rem RHQ_JAVA_HOME are not set, then
rem JAVA_HOME will be used.
rem
-rem set RHQ_JAVA_EXE_FILE_PATH=C:\WINDOWS\system32\java.exe
+rem set RHQ_JAVA_EXE_FILE_PATH=
rem ===========================================================================
-rem THE FOLLOWING ARE USED SOLELY FOR THE rhq-agent.bat SCRIPT
-rem THESE ARE NOT USED/IGNORED BY rhq-agent-wrapper.bat SCRIPT
+rem THE FOLLOWING ARE USED SOLELY FOR THE rhq-agent.bat SCRIPT,
+rem THEY ARE IGNORED BY rhq-agent-wrapper.bat SCRIPT. See the
+rem rhq-agent-wrapper.conf and rhq-agent-wrapper.inc for more
+rem on setting Java options.
rem RHQ_AGENT_JAVA_OPTS - Java VM command line options to be
rem passed into the agent's VM. If this is not defined
diff --git a/modules/enterprise/agent/src/etc/rhq-agent.bat b/modules/enterprise/agent/src/etc/rhq-agent.bat
index 59b2e3c..f7980b3 100644
--- a/modules/enterprise/agent/src/etc/rhq-agent.bat
+++ b/modules/enterprise/agent/src/etc/rhq-agent.bat
@@ -19,7 +19,7 @@ rem If the embedded JRE is to be used but is not available, the fallback
rem JRE to be used will be determined by the JAVA_HOME environment variable.
rem ===========================================================================
-setlocal
+setlocal enabledelayedexpansion
if "%1"=="_SETENV_ONLY" (
set _SETENV_ONLY=true
@@ -78,23 +78,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_AGENT_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_AGENT_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_AGENT_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_AGENT_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_AGENT_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_AGENT_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_AGENT_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_AGENT_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_AGENT_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/remoting/cli/src/etc/rhq-cli-env.bat b/modules/enterprise/remoting/cli/src/etc/rhq-cli-env.bat
index 8ef3b68..d5d1189 100644
--- a/modules/enterprise/remoting/cli/src/etc/rhq-cli-env.bat
+++ b/modules/enterprise/remoting/cli/src/etc/rhq-cli-env.bat
@@ -16,22 +16,18 @@ rem directory of the directory where this script lives.
rem
rem set RHQ_CLI_HOME=C:\opt\rhq-cli
-rem RHQ_CLI_JAVA_HOME - The location of the JRE that the CLI will
-rem use. This will be ignored if
-rem RHQ_CLI_JAVA_EXE_FILE_PATH is set.
-rem If this and RHQ_CLI_JAVA_EXE_FILE_PATH are
-rem not set, the CLI will default to JAVA_HOME.
-rem
-rem set RHQ_CLI_JAVA_HOME=
+rem RHQ_JAVA_HOME - The location of the JRE that the server will use. This
+rem will be ignored if RHQ_JAVA_EXE_FILE_PATH is set.
+rem If this and RHQ_JAVA_EXE_FILE_PATH are not set, then
+rem JAVA_HOME will be used.
+rem set RHQ_JAVA_HOME=
-rem RHQ_CLI_JAVA_EXE_FILE_PATH - Defines the full path to the Java
-rem executable to use. If this is set,
-rem RHQ_CLI_JAVA_HOME is ignored.
-rem If this is not set, then
-rem %RHQ_CLI_JAVA_HOME%\bin\java.exe
-rem is used.
-rem
-rem set RHQ_CLI_JAVA_EXE_FILE_PATH=C:\WINDOWS\system32\java.exe
+rem RHQ_JAVA_EXE_FILE_PATH - Defines the full path to the Java executable to
+rem use. If this is set, RHQ_JAVA_HOME is ignored.
+rem If this is not set, then $RHQ_JAVA_HOME/bin/java
+rem is used. If this and RHQ_JAVA_HOME are not set,
+rem then $JAVA_HOME/bin/java will be used.
+rem set RHQ_JAVA_EXE_FILE_PATH=
rem RHQ_CLI_JAVA_OPTS - Java VM command line options to be
rem passed into the CLI's VM. If this is not defined
diff --git a/modules/enterprise/remoting/cli/src/etc/rhq-cli.bat b/modules/enterprise/remoting/cli/src/etc/rhq-cli.bat
index 0d80d3e..b7992c5 100644
--- a/modules/enterprise/remoting/cli/src/etc/rhq-cli.bat
+++ b/modules/enterprise/remoting/cli/src/etc/rhq-cli.bat
@@ -11,7 +11,7 @@ rem are described in comments in rhq-cli-env.bat. The variables can also be
rem set via rhq-cli-env.bat, which is sourced by this script.
rem ===========================================================================
-setlocal
+setlocal enabledelayedexpansion
title RHQ CLI
@@ -56,22 +56,36 @@ if defined RHQ_CLI_DEBUG echo RHQ_CLI_HOME: %RHQ_CLI_HOME%
rem ----------------------------------------------------------------------
rem Find the Java executable and verify we have a VM available
+rem Note that RHQ_CLI_JAVA_* props are still handled for back compat
rem ----------------------------------------------------------------------
-if not defined RHQ_CLI_JAVA_EXE_FILE_PATH (
- if not defined RHQ_CLI_JAVA_HOME call :prepare_embedded_jre
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if defined RHQ_CLI_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_CLI_JAVA_EXE_FILE_PATH!
+ )
+)
+if not defined RHQ_JAVA_HOME (
+ if defined RHQ_CLI_JAVA_HOME (
+ set RHQ_JAVA_HOME=!RHQ_CLI_JAVA_HOME!
+ )
)
-if not defined RHQ_CLI_JAVA_EXE_FILE_PATH (
- set RHQ_CLI_JAVA_EXE_FILE_PATH=%RHQ_CLI_JAVA_HOME%\bin\java.exe
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ if not defined RHQ_JAVA_HOME (
+ if defined RHQ_CLI_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
+ )
+)
+if not defined RHQ_JAVA_EXE_FILE_PATH (
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
-if defined RHQ_CLI_DEBUG echo RHQ_CLI_JAVA_HOME: %RHQ_CLI_JAVA_HOME%
-if defined RHQ_CLI_DEBUG echo RHQ_CLI_JAVA_EXE_FILE_PATH: %RHQ_CLI_JAVA_EXE_FILE_PATH%
+if defined RHQ_CLI_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
+if defined RHQ_CLI_DEBUG echo RHQ_JAVA_EXE_FILE_PATH: %RHQ_JAVA_EXE_FILE_PATH%
-if not exist "%RHQ_CLI_JAVA_EXE_FILE_PATH%" (
+if not exist "%RHQ_JAVA_EXE_FILE_PATH%" (
echo There is no JVM available.
- echo Please set RHQ_CLI_JAVA_HOME or RHQ_CLI_JAVA_EXE_FILE_PATH appropriately.
+ echo Please set RHQ_JAVA_HOME or RHQ_JAVA_EXE_FILE_PATH appropriately.
exit /B 1
)
@@ -163,19 +177,6 @@ if not defined CLASSPATH (
goto :eof
rem ----------------------------------------------------------------------
-rem CALL subroutine that prepares to use the embedded JRE
-rem ----------------------------------------------------------------------
-
-:prepare_embedded_jre
-set RHQ_CLI_JAVA_HOME=%RHQ_CLI_HOME%\jre
-if defined RHQ_CLI_DEBUG echo Using the embedded JRE
-if not exist "%RHQ_CLI_JAVA_HOME%" (
- if defined RHQ_CLI_DEBUG echo No embedded JRE found - will try to use JAVA_HOME: %JAVA_HOME%
- set RHQ_CLI_JAVA_HOME=%JAVA_HOME%
-)
-goto :eof
-
-rem ----------------------------------------------------------------------
rem CALL subroutine that exits this script normally
rem ----------------------------------------------------------------------
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
index 2b95d74c..d2c554c 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-installer.bat
@@ -47,7 +47,7 @@ rem If the embedded JRE is to be used but is not available, the fallback
rem JRE to be used will be determined by the JAVA_HOME environment variable.
rem ===========================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_SERVER_DEBUG%" == "false" (
@@ -80,23 +80,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
index a8a70ff..ba6cbd8 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-server.bat
@@ -58,7 +58,7 @@ rem
rem This script does not use the built-in JBossAS run.bat.
rem ===========================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_SERVER_DEBUG%" == "false" (
@@ -91,23 +91,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_SERVER_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_SERVER_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
index 6f97385..f29b7c9 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage-installer.bat
@@ -50,7 +50,7 @@ rem left unset if it is not needed.
rem
rem =============================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_STORAGE_DEBUG%" == "false" (
@@ -135,23 +135,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
index 7560932..c2f7f02 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/internal/rhq-storage.bat
@@ -60,7 +60,7 @@ rem
rem This script does not use the built-in cassandra.bat.
rem ===========================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_STORAGE_DEBUG%" == "false" (
@@ -111,23 +111,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_STORAGE_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_STORAGE_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
index 844495d..7976b98 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-data-migration.bat
@@ -50,7 +50,7 @@ rem left unset if it is not needed.
rem
rem =============================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_DATA_MIGRATION_DEBUG%" == "false" (
@@ -135,23 +135,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_DATA_MIGRATION_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_DATA_MIGRATION_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_DATA_MIGRATION_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
index d998d29..8d16ceb 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhqctl.bat
@@ -49,7 +49,7 @@ rem left unset if it is not needed.
rem =============================================================================
-setlocal
+setlocal enabledelayedexpansion
rem if debug variable is set, it is assumed to be on, unless its value is false
if "%RHQ_CONTROL_DEBUG%" == "false" (
@@ -134,23 +134,23 @@ rem ----------------------------------------------------------------------
if not defined RHQ_JAVA_EXE_FILE_PATH (
if defined RHQ_SERVER_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_SERVER_JAVA_EXE_FILE_PATH%
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_SERVER_JAVA_EXE_FILE_PATH!
)
)
if not defined RHQ_JAVA_HOME (
if defined RHQ_SERVER_JAVA_HOME (
- set RHQ_JAVA_HOME=%RHQ_SERVER_JAVA_HOME%
+ set RHQ_JAVA_HOME=!RHQ_SERVER_JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
if not defined RHQ_JAVA_HOME (
- if defined RHQ_CONTROL_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: %JAVA_HOME%
- set RHQ_JAVA_HOME=%JAVA_HOME%
+ if defined RHQ_CONTROL_DEBUG echo No RHQ JAVA property set, defaulting to JAVA_HOME: !JAVA_HOME!
+ set RHQ_JAVA_HOME=!JAVA_HOME!
)
)
if not defined RHQ_JAVA_EXE_FILE_PATH (
- set RHQ_JAVA_EXE_FILE_PATH=%RHQ_JAVA_HOME%\bin\java.exe
+ set RHQ_JAVA_EXE_FILE_PATH=!RHQ_JAVA_HOME!\bin\java.exe
)
if defined RHQ_CONTROL_DEBUG echo RHQ_JAVA_HOME: %RHQ_JAVA_HOME%
@@ -178,7 +178,7 @@ if defined RHQ_CONTROL_DEBUG (
set _RHQ_LOGLEVEL=INFO
)
-rem set some of the base required options
+rem Set some of the base required options
set RHQ_CONTROL_JAVA_OPTS=%RHQ_CONTROL_JAVA_OPTS% -Djava.awt.headless=true -Drhq.server.properties-file="%RHQ_SERVER_HOME%\bin\rhq-server.properties" -Drhq.control.logdir="%RHQ_SERVER_HOME%\logs" -Drhq.control.loglevel=%_RHQ_LOGLEVEL% -Drhq.server.basedir="%RHQ_SERVER_HOME%" -Drhqctl.properties-file="%RHQ_SERVER_HOME%\bin\rhqctl.properties" -Drhq.java-exe-file-path="%RHQ_JAVA_EXE_FILE_PATH%"
rem Sample JPDA settings for remote socket debugging
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.inc b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.inc
new file mode 100644
index 0000000..ffef3ce
--- /dev/null
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-server-wrapper.inc
@@ -0,0 +1,19 @@
+#*****************************************************************************
+# RHQ Server Java Service Wrapper Settings Include File
+#
+# This file specifies a set of additional environment variables that will be
+# applied to the RHQ Server JVM. This file will likely be empty.
+#
+# If adding additional Java properties note that the properties must follow
+# a strict number ordering (that continues from rhq-server-wrapper.conf)
+# and currently must start with:
+#
+# wrapper.java.additional.23=
+#
+# For example, to set a non-default temp directory for Java:
+# Note: use forward slashes for directories:
+#
+# wrapper.java.additional.23="-Djava.io.tmpdir=c:/temp"
+#
+#*****************************************************************************
+
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.env b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.env
index 1441e0a..ff0cb19 100644
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.env
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.env
@@ -2,15 +2,21 @@
# RHQ Storage Node Java Service Wrapper Environment Settings File
#
# This file specifies a set of environment variables that will be
-# applied to the Storage Node JVM.
+# applied to the RHQ Storage Node JVM.
#
-# THIS FILE SHOULD NOT BE EDITED!
+#*****************************************************************************
+
+
+#*****************************************************************************
+# MANAGED SETTINGS
#
-# This file represents the values managed as RHQ Storage Node resource
+# This section represents the values managed as RHQ Storage Node resource
# configuration values. Or, set by the installer.
#
+# DO NOT EDIT THESE VALUES BY HAND. Changes should be performed via
+# the Administration section of the RHQ GUI.
+#
#*****************************************************************************
-
set.jmx_port=7299
set.heap_min=-Xms512M
@@ -22,3 +28,14 @@ set.thread_stack_size=-Xss180k
set.heap_dump_on_OOMError=-XX:+HeapDumpOnOutOfMemoryError
set.heap_dump_dir=
+
+
+#*****************************************************************************
+# CUSTOM SETTINGS
+#
+# This section if for additional properties managed by the user. In general
+# there will be nothing defined in this section. More likely any customization
+# of what is set in the rhq-storage-wrapper.conf would be located in the
+# rhq-storage-wrapper.inc file. See that file for more information.
+#
+#*****************************************************************************
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.inc b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.inc
new file mode 100644
index 0000000..ef5aa09
--- /dev/null
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/wrapper/rhq-storage-wrapper.inc
@@ -0,0 +1,19 @@
+#*****************************************************************************
+# RHQ Storage Node Java Service Wrapper Settings Include File
+#
+# This file specifies a set of additional environment variables that will be
+# applied to the RHQ Storage Node JVM. This file will likely be empty.
+#
+# If adding additional Java properties note that the properties must follow
+# a strict number ordering (that continues from rhq-storage-wrapper.conf)
+# and currently must start with:
+#
+# wrapper.java.additional.21=
+#
+# For example, to set a non-default temp directory for Java:
+# Note: use forward slashes for directories:
+#
+# wrapper.java.additional.21="-Djava.io.tmpdir=c:/temp"
+#
+#*****************************************************************************
+
diff --git a/modules/enterprise/server/appserver/src/main/dev-resources/bin/wrapper/rhq-server-wrapper.inc b/modules/enterprise/server/appserver/src/main/dev-resources/bin/wrapper/rhq-server-wrapper.inc
index 8cd24ee..d883571 100644
--- a/modules/enterprise/server/appserver/src/main/dev-resources/bin/wrapper/rhq-server-wrapper.inc
+++ b/modules/enterprise/server/appserver/src/main/dev-resources/bin/wrapper/rhq-server-wrapper.inc
@@ -3,13 +3,19 @@
# last wrapper.java.additional.N entry in rhq-server-wrapper.conf.
#
+# reduce memory needs for dev env.
+wrapper.java.additional.23=-Xms512M
+wrapper.java.additional.24=-Xmx512M
+wrapper.java.additional.25=-XX:PermSize=200M
+wrapper.java.additional.26=-XX:MaxPermSize=200M
+
# enable remote debugging
-wrapper.java.additional.23=-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n
+wrapper.java.additional.27=-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n
# enable jprofiler
#set.PATH=%PATH%;<jprofiler-install-dir>\bin\windows
-#wrapper.java.additional.24=-agentlib:jprofilerti=port=8849
-#wrapper.java.additional.25=-Xbootclasspath/a:<jprofiler-install-dir>\bin\agent.jar
+#wrapper.java.additional.28=-agentlib:jprofilerti=port=8849
+#wrapper.java.additional.29=-Xbootclasspath/a:<jprofiler-install-dir>\bin\agent.jar
# disable JVM startup timeout
wrapper.startup.timeout=0
diff --git a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
index e82a25b..f92789e 100644
--- a/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
+++ b/modules/enterprise/server/appserver/src/main/scripts/rhq-container.build.xml
@@ -1008,7 +1008,7 @@ ${comment}rhq.storage.verify-data-dirs-empty=${rhq.storage.verify-data-dirs-empt
<target name="copy-dev-resources" if="copy.dev.resources">
<echo>Copying dev-only resources ...</echo>
- <copy todir="${project.build.outputDirectory}" verbose="true">
+ <copy todir="${project.build.outputDirectory}" overwrite="true" verbose="true">
<fileset dir="src/main/dev-resources" />
</copy>
<loadproperties>
commit 3fd2e23cf7753026050f89d939e3a29f3d0025f6
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Thu Oct 24 16:23:59 2013 -0400
Use the root pom maven plugin version
diff --git a/modules/plugins/OpenShift-support/pom.xml b/modules/plugins/OpenShift-support/pom.xml
index 0a0c2ff..1b284d7 100644
--- a/modules/plugins/OpenShift-support/pom.xml
+++ b/modules/plugins/OpenShift-support/pom.xml
@@ -48,7 +48,6 @@
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
<executions>
<execution>
10 years, 6 months
[rhq] Branch 'bug/1009945' - modules/enterprise
by John Sanda
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java | 1
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java | 50 +
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java | 1
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java | 23
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java | 241 ++++----
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java | 5
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java | 5
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java | 13
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java | 9
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsUtil.java | 17
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/RawIndexEntriesHandler.java | 106 +++
modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/domain/MetricsTable.java | 16
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregationTests.java | 41 +
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregatorTest.java | 281 ----------
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java | 46 -
modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java | 34 -
16 files changed, 444 insertions(+), 445 deletions(-)
New commits:
commit 9656157596c04987767d48f2cd3fae4d66abce13
Author: John Sanda <jsanda(a)redhat.com>
Date: Thu Oct 24 13:48:52 2013 -0400
Refactoring metrics index to break out each index row into multiple rows
Previously a row was created in metrics_index for each time slice of each table
for which there was data during that time slice. For example, if 1 hour data
was inserted at 15:00 for schedule id 123, then there would be a row in
metrics_index with a partition key of {six_hour_metrics:15:00}. And that row
would have a column with a value of the schedule id 123. This creates hot spots
because the entire partition for a given bucket/time slice is stored on a single
replic set. As the numnber of schedules having data for a given time slice
grows, that row in the index becomes increasingly large. Adding more nodes to
the cluster won't help.
With this commit, a time slice index (i.e., row in metrics_index) is now broken
down into multiple partitions (i.e., rows). A given time slice index will now
be distributed across nodes. The partition key is now
{bucket:schedule_offset:time_slice}. There will be at most 5,000 schedule ids
per partition. Further testing is needed to determine if that size should be
adjusted, be it smaller or larger.
This change impacts the aggregation code. Previously 3 index queries were
required, one for each of raw, 1 hour, and 6 hour data. Now multiple queries
may be required for each respective bucket. While this change requires more
reads, it is good in terms of scalability. As the overall load (in terms of)
metrics increases, this change will help achive greater througput of
aggregation particularly in a multi-node cluster.
There is one key piece missing that I will add in a subsequent commit. The max
and (optimally) min schedule ids need to be specified as arguments to the
aggregation code in order to determine the range of index partitions.
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
index bf50f26..a8ec709 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregate1HourData.java
@@ -52,6 +52,7 @@ public class Aggregate1HourData implements Runnable {
Futures.addCallback(computeFutures, new FutureCallback<List<ResultSet>>() {
@Override
public void onSuccess(List<ResultSet> result) {
+ log.debug("Generated 1 hour data for schedule ids " + scheduleIds);
log.debug("Finished aggregating 1 hour data for " + result.size() + " schedules in " +
(System.currentTimeMillis() - start) + " ms");
state.getRemaining1HourData().addAndGet(-scheduleIds.size());
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java
index 1eb9e53..9a1ddd7 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateIndexEntriesHandler.java
@@ -6,9 +6,12 @@ import java.util.concurrent.atomic.AtomicInteger;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.RateLimiter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
/**
* @author John Sanda
@@ -29,34 +32,67 @@ class AggregateIndexEntriesHandler implements FutureCallback<ResultSet> {
private String dest;
- public AggregateIndexEntriesHandler(Set<Integer> indexEntries, AtomicInteger remainingData,
- SignalingCountDownLatch indexEntriesArrival, long startTime, String src, String dest) {
+ private String partitionKey;
+
+ private RateLimiter writePermits;
+
+ private MetricsDAO dao;
+
+ private DateTime timeSlice;
+
+ public AggregateIndexEntriesHandler(Set<Integer> indexEntries, AtomicInteger remainingData, String partitionKey,
+ MetricsDAO dao, RateLimiter writePermits, SignalingCountDownLatch indexEntriesArrival, long startTime,
+ String src, String dest, DateTime timeSice) {
this.indexEntries = indexEntries;
this.remainingData = remainingData;
this.indexEntriesArrival = indexEntriesArrival;
this.startTime = startTime;
this.src = src;
this.dest = dest;
+ this.writePermits = writePermits;
+ this.dao = dao;
+ this.partitionKey = partitionKey;
+ this.timeSlice = timeSice;
}
@Override
public void onSuccess(ResultSet resultSet) {
+ int count = 0;
for (Row row : resultSet) {
indexEntries.add(row.getInt(1));
+ count++;
}
- remainingData.set(indexEntries.size());
+ remainingData.addAndGet(count);
indexEntriesArrival.countDown();
if (log.isDebugEnabled()) {
log.debug("Finished loading " + indexEntries.size() + " " + src + " index entries in " +
(System.currentTimeMillis() - startTime) + " ms");
}
+ deleteIndexPartition();
}
@Override
public void onFailure(Throwable t) {
- log.warn("Failed to retrieve " + src + " index entries. Some " + dest + " aggregates may not get generated.",
- t);
- remainingData.set(0);
- indexEntriesArrival.abort();
+ log.warn("Failed to retrieve " + src + " index entries from partition " + partitionKey +
+ ". Some " + dest + " aggregates may not get generated.", t);
+ indexEntriesArrival.countDown();
+ deleteIndexPartition();
+ }
+
+ private void deleteIndexPartition() {
+ log.debug("Deleting " + src + " index entries for partition " + partitionKey);
+ writePermits.acquire();
+ StorageResultSetFuture deleteFuture = dao.deleteMetricsIndexEntriesAsync(partitionKey, timeSlice.getMillis());
+ Futures.addCallback(deleteFuture, new FutureCallback<ResultSet>() {
+ @Override
+ public void onSuccess(ResultSet result) {
+ log.debug("Successfully deleted " + src + " data index partition " + partitionKey);
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to delete " + src + " data index partition " + partitionKey, t);
+ }
+ });
}
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
index 2cde763..ac3e1d2 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregateRawData.java
@@ -95,6 +95,7 @@ public class AggregateRawData implements Runnable {
oneHourDataQueryFutures.add(dao.findOneHourMetricsAsync(scheduleId,
state.getSixHourTimeSlice().getMillis(), state.getSixHourTimeSliceEnd().getMillis()));
}
+ log.debug("Starting 1 hour aggregation for schedule ids " + scheduleIds);
state.getAggregationTasks().submit(new Aggregate1HourData(dao, state, scheduleIds, oneHourDataQueryFutures));
}
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
index 1b67350..5c8be45 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/AggregationState.java
@@ -1,6 +1,7 @@
package org.rhq.server.metrics;
import java.util.Set;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -15,6 +16,8 @@ public class AggregationState {
private ListeningExecutorService aggregationTasks;
+ private CountDownLatch rawIndexEntriesArrival;
+
private SignalingCountDownLatch oneHourIndexEntriesArrival;
private SignalingCountDownLatch sixHourIndexEntriesArrival;
@@ -35,6 +38,8 @@ public class AggregationState {
private DateTime oneHourTimeSlice;
+ private DateTime oneHourTimeSliceEnd;
+
private DateTime sixHourTimeSlice;
private DateTime sixHourTimeSliceEnd;
@@ -62,6 +67,15 @@ public class AggregationState {
return this;
}
+ public CountDownLatch getRawIndexEntriesArrival() {
+ return rawIndexEntriesArrival;
+ }
+
+ public AggregationState setRawIndexEntriesArrival(CountDownLatch rawIndexEntriesArrival) {
+ this.rawIndexEntriesArrival = rawIndexEntriesArrival;
+ return this;
+ }
+
public SignalingCountDownLatch getOneHourIndexEntriesArrival() {
return oneHourIndexEntriesArrival;
}
@@ -152,6 +166,15 @@ public class AggregationState {
return this;
}
+ public DateTime getOneHourTimeSliceEnd() {
+ return oneHourTimeSliceEnd;
+ }
+
+ public AggregationState setOneHourTimeSliceEnd(DateTime oneHourTimeSliceEnd) {
+ this.oneHourTimeSliceEnd = oneHourTimeSliceEnd;
+ return this;
+ }
+
public DateTime getSixHourTimeSlice() {
return sixHourTimeSlice;
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
index efb7784..1311c51 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Aggregator.java
@@ -1,5 +1,8 @@
package org.rhq.server.metrics;
+import static org.rhq.server.metrics.MetricsUtil.METRICS_INDEX_ROW_SIZE;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
+
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
@@ -10,9 +13,6 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-import com.datastax.driver.core.ResultSet;
-import com.datastax.driver.core.Row;
-import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.RateLimiter;
@@ -48,8 +48,6 @@ public class Aggregator {
private DateTime startTime;
- private SignalingCountDownLatch rawDataIndexEntriesArrival;
-
private RateLimiter readPermits;
private RateLimiter writePermits;
@@ -59,11 +57,13 @@ public class Aggregator {
private Set<AggregateNumericMetric> oneHourData;
- private AtomicInteger remainingIndexEntries;
+ private int startScheduleId;
+
+ private int endScheduleId;
public Aggregator(ListeningExecutorService aggregationTasks, MetricsDAO dao, MetricsConfiguration configuration,
DateTimeService dtService, DateTime startTime, int batchSize, RateLimiter writePermits,
- RateLimiter readPermits) {
+ RateLimiter readPermits, int startScheduleId, int endScheduleId) {
this.dao = dao;
this.configuration = configuration;
this.dtService = dtService;
@@ -72,19 +72,22 @@ public class Aggregator {
this.writePermits = writePermits;
this.batchSize = batchSize;
oneHourData = new ConcurrentSkipListSet<AggregateNumericMetric>(AGGREGATE_COMPARATOR);
- rawDataIndexEntriesArrival = new SignalingCountDownLatch(new CountDownLatch(1));
- remainingIndexEntries = new AtomicInteger(1);
+ this.startScheduleId = startScheduleId;
+ this.endScheduleId = endScheduleId;
DateTime sixHourTimeSlice = get6HourTimeSlice();
DateTime twentyFourHourTimeSlice = get24HourTimeSlice();
+ int numPartitions = (endScheduleId - startScheduleId) / METRICS_INDEX_ROW_SIZE;
state = new AggregationState()
.setAggregationTasks(aggregationTasks)
.setOneHourTimeSlice(startTime)
+ .setOneHourTimeSliceEnd(startTime.plus(configuration.getRawTimeSliceDuration()))
.setSixHourTimeSlice(sixHourTimeSlice)
.setSixHourTimeSliceEnd(sixHourTimeSlice.plus(configuration.getOneHourTimeSliceDuration()))
.setTwentyFourHourTimeSlice(twentyFourHourTimeSlice)
.setTwentyFourHourTimeSliceEnd(twentyFourHourTimeSlice.plus(configuration.getSixHourTimeSliceDuration()))
+ .setRawIndexEntriesArrival(new CountDownLatch(numPartitions))
.setCompute1HourData(new Compute1HourData(startTime, sixHourTimeSlice, writePermits, dao, oneHourData))
.setCompute6HourData(new Compute6HourData(sixHourTimeSlice, twentyFourHourTimeSlice, writePermits, dao))
.setCompute24HourData(new Compute24HourData(twentyFourHourTimeSlice, writePermits, dao))
@@ -100,16 +103,14 @@ public class Aggregator {
.setSixHourIndexEntriesLock(new ReentrantReadWriteLock());
if (state.is6HourTimeSliceFinished()) {
- state.setOneHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(1)));
- remainingIndexEntries.incrementAndGet();
+ state.setOneHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(numPartitions)));
} else {
state.setOneHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(0)));
state.setRemaining1HourData(new AtomicInteger(0));
}
if (state.is24HourTimeSliceFinished()) {
- state.setSixHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(1)));
- remainingIndexEntries.incrementAndGet();
+ state.setSixHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(numPartitions)));
} else {
state.setSixHourIndexEntriesArrival(new SignalingCountDownLatch(new CountDownLatch(0)));
state.setRemaining6HourData(new AtomicInteger(0));
@@ -135,87 +136,115 @@ public class Aggregator {
public Set<AggregateNumericMetric> run() {
log.info("Starting aggregation for time slice " + startTime);
- readPermits.acquire();
- StorageResultSetFuture rawFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.ONE_HOUR,
- startTime.getMillis());
- Futures.addCallback(rawFuture, new FutureCallback<ResultSet>() {
- @Override
- public void onSuccess(ResultSet result) {
- List<Row> rows = result.all();
- state.getRemainingRawData().set(rows.size());
- rawDataIndexEntriesArrival.countDown();
-
- log.debug("Starting raw data aggregation for " + rows.size() + " schedules");
- long start = System.currentTimeMillis();
- final DateTime endTime = startTime.plus(configuration.getRawTimeSliceDuration());
- Set<Integer> scheduleIds = new TreeSet<Integer>();
- List<StorageResultSetFuture> rawDataFutures = new ArrayList<StorageResultSetFuture>(batchSize);
- for (final Row row : rows) {
- scheduleIds.add(row.getInt(1));
- readPermits.acquire();
- rawDataFutures.add(dao.findRawMetricsAsync(row.getInt(1), startTime.getMillis(),
- endTime.getMillis()));
- if (rawDataFutures.size() == batchSize) {
- state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
- rawDataFutures));
- rawDataFutures = new ArrayList<StorageResultSetFuture>();
- scheduleIds = new TreeSet<Integer>();
- }
- }
- if (!rawDataFutures.isEmpty()) {
- state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
- rawDataFutures));
- }
- log.debug("Finished processing one hour index entries in " + (System.currentTimeMillis() - start) +
- " ms");
- }
+ log.debug("Loading raw index entries");
+ for (int scheduleId = startScheduleId; scheduleId <= endScheduleId; scheduleId += METRICS_INDEX_ROW_SIZE) {
+ String partitionKey = indexPartitionKey(MetricsTable.ONE_HOUR, scheduleId);
+ readPermits.acquire();
+ StorageResultSetFuture indexFuture = dao.findMetricsIndexEntriesAsync(partitionKey, startTime.getMillis());
+ Futures.addCallback(indexFuture, new RawIndexEntriesHandler(state, dao, writePermits, readPermits,
+ batchSize, partitionKey), state.getAggregationTasks());
+ }
- @Override
- public void onFailure(Throwable t) {
- log.warn("Failed to retrieve raw data index entries. Raw data aggregation for time slice [" +
- startTime + "] cannot proceed.", t);
- state.setRemainingRawData(new AtomicInteger(0));
- rawDataIndexEntriesArrival.abort();
- deleteIndexEntries(MetricsTable.ONE_HOUR);
- }
- }, state.getAggregationTasks());
+
+// readPermits.acquire();
+// StorageResultSetFuture rawFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.ONE_HOUR,
+// startTime.getMillis());
+// String partitionKey = indexPartitionKey(MetricsTable.ONE_HOUR, 0);
+// StorageResultSetFuture rawFuture = dao.findMetricsIndexEntriesAsync(partitionKey, startTime.getMillis());
+// Futures.addCallback(rawFuture, new FutureCallback<ResultSet>() {
+// @Override
+// public void onSuccess(ResultSet result) {
+// List<Row> rows = result.all();
+// state.getRemainingRawData().set(rows.size());
+// rawDataIndexEntriesArrival.countDown();
+//
+// log.debug("Starting raw data aggregation for " + rows.size() + " schedules");
+// long start = System.currentTimeMillis();
+// final DateTime endTime = startTime.plus(configuration.getRawTimeSliceDuration());
+// Set<Integer> scheduleIds = new TreeSet<Integer>();
+// List<StorageResultSetFuture> rawDataFutures = new ArrayList<StorageResultSetFuture>(batchSize);
+// for (final Row row : rows) {
+// scheduleIds.add(row.getInt(1));
+// readPermits.acquire();
+// rawDataFutures.add(dao.findRawMetricsAsync(row.getInt(1), startTime.getMillis(),
+// endTime.getMillis()));
+// if (rawDataFutures.size() == batchSize) {
+// state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
+// rawDataFutures));
+// rawDataFutures = new ArrayList<StorageResultSetFuture>();
+// scheduleIds = new TreeSet<Integer>();
+// }
+// }
+// if (!rawDataFutures.isEmpty()) {
+// state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
+// rawDataFutures));
+// }
+// log.debug("Finished processing one hour index entries in " + (System.currentTimeMillis() - start) +
+// " ms");
+// }
+//
+// @Override
+// public void onFailure(Throwable t) {
+// log.warn("Failed to retrieve raw data index entries. Raw data aggregation for time slice [" +
+// startTime + "] cannot proceed.", t);
+// state.setRemainingRawData(new AtomicInteger(0));
+// rawDataIndexEntriesArrival.abort();
+// deleteIndexEntries(MetricsTable.ONE_HOUR);
+// }
+// }, state.getAggregationTasks());
if (state.is6HourTimeSliceFinished()) {
+ log.debug("Loading 1 hour index entries");
long start = System.currentTimeMillis();
- log.debug("Fetching 1 hour index entries");
- StorageResultSetFuture oneHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.SIX_HOUR,
- state.getSixHourTimeSlice().getMillis());
- Futures.addCallback(oneHourFuture, new AggregateIndexEntriesHandler(state.getOneHourIndexEntries(),
- state.getRemaining1HourData(), state.getOneHourIndexEntriesArrival(), start, "1 hour", "6 hour"),
- state.getAggregationTasks());
+ for (int scheduleId = startScheduleId; scheduleId <= endScheduleId; scheduleId += METRICS_INDEX_ROW_SIZE) {
+ String partitionKey = indexPartitionKey(MetricsTable.SIX_HOUR, scheduleId);
+ readPermits.acquire();
+ StorageResultSetFuture indexFuture = dao.findMetricsIndexEntriesAsync(partitionKey,
+ state.getSixHourTimeSlice().getMillis());
+ Futures.addCallback(indexFuture, new AggregateIndexEntriesHandler(state.getOneHourIndexEntries(),
+ state.getRemaining1HourData(), partitionKey, dao, writePermits,
+ state.getOneHourIndexEntriesArrival(), start, "1 hour", "6 hour", state.getSixHourTimeSlice()),
+ state.getAggregationTasks());
+ }
+// StorageResultSetFuture oneHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.SIX_HOUR,
+// state.getSixHourTimeSlice().getMillis());
+// Futures.addCallback(oneHourFuture, new AggregateIndexEntriesHandler(state.getOneHourIndexEntries(),
+// state.getRemaining1HourData(), state.getOneHourIndexEntriesArrival(), start, "1 hour", "6 hour"),
+// state.getAggregationTasks());
}
if (state.is24HourTimeSliceFinished()) {
long start = System.currentTimeMillis();
log.debug("Fetching 6 hour index entries");
- StorageResultSetFuture sixHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.TWENTY_FOUR_HOUR,
- state.getTwentyFourHourTimeSlice().getMillis());
- Futures.addCallback(sixHourFuture, new AggregateIndexEntriesHandler(state.getSixHourIndexEntries(),
- state.getRemaining6HourData(), state.getSixHourIndexEntriesArrival(), start, "6 hour", "24 hour"),
- state.getAggregationTasks());
+ for (int scheduleId = startScheduleId; scheduleId <= endScheduleId; scheduleId += METRICS_INDEX_ROW_SIZE) {
+ String partitionKey = indexPartitionKey(MetricsTable.TWENTY_FOUR_HOUR, scheduleId);
+ StorageResultSetFuture indexFuture = dao.findMetricsIndexEntriesAsync(partitionKey,
+ state.getTwentyFourHourTimeSlice().getMillis());
+ Futures.addCallback(indexFuture, new AggregateIndexEntriesHandler(state.getSixHourIndexEntries(),
+ state.getRemaining6HourData(), partitionKey, dao, writePermits,
+ state.getSixHourIndexEntriesArrival(), start, "6 hour", "24 hour", state.getTwentyFourHourTimeSlice()),
+ state.getAggregationTasks());
+ }
+
+// StorageResultSetFuture sixHourFuture = dao.findMetricsIndexEntriesAsync(MetricsTable.TWENTY_FOUR_HOUR,
+// state.getTwentyFourHourTimeSlice().getMillis());
+// Futures.addCallback(sixHourFuture, new AggregateIndexEntriesHandler(state.getSixHourIndexEntries(),
+// state.getRemaining6HourData(), state.getSixHourIndexEntriesArrival(), start, "6 hour", "24 hour"),
+// state.getAggregationTasks());
}
try {
- try {
- rawDataIndexEntriesArrival.await();
- deleteIndexEntries(MetricsTable.ONE_HOUR);
- } catch (AbortedException e) {
- }
+ state.getRawIndexEntriesArrival().await();
if (state.is6HourTimeSliceFinished()) {
waitFor(state.getRemainingRawData());
try {
state.getOneHourIndexEntriesArrival().await();
- deleteIndexEntries(MetricsTable.SIX_HOUR);
-
+// deleteIndexEntries(MetricsTable.SIX_HOUR);
List<StorageResultSetFuture> queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
Set<Integer> scheduleIds = new TreeSet<Integer>();
state.getOneHourIndexEntriesLock().writeLock().lock();
+ log.debug("Remaining schedule ids for 1 hour data: " + state.getOneHourIndexEntries());
for (Integer scheduleId : state.getOneHourIndexEntries()) {
queryFutures.add(dao.findOneHourMetricsAsync(scheduleId, state.getSixHourTimeSlice().getMillis(),
state.getSixHourTimeSliceEnd().getMillis()));
@@ -244,7 +273,7 @@ public class Aggregator {
waitFor(state.getRemaining1HourData());
try {
state.getSixHourIndexEntriesArrival().await();
- deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
+// deleteIndexEntries(MetricsTable.TWENTY_FOUR_HOUR);
List<StorageResultSetFuture> queryFutures = new ArrayList<StorageResultSetFuture>(batchSize);
Set<Integer> scheduleIds = new TreeSet<Integer>();
@@ -290,38 +319,40 @@ public class Aggregator {
}
private boolean isAggregationFinished() throws InterruptedException {
+// return state.getRemainingRawData().get() <= 0 && state.getRemaining1HourData().get() <= 0 &&
+// state.getRemaining6HourData().get() <= 0 && remainingIndexEntries.get() <= 0;
return state.getRemainingRawData().get() <= 0 && state.getRemaining1HourData().get() <= 0 &&
- state.getRemaining6HourData().get() <= 0 && remainingIndexEntries.get() <= 0;
+ state.getRemaining6HourData().get() <= 0;
}
- private void deleteIndexEntries(final MetricsTable table) {
- final DateTime time;
- switch (table) {
- case ONE_HOUR:
- time = startTime;
- break;
- case SIX_HOUR:
- time = state.getSixHourTimeSlice();
- break;
- default:
- time = state.getTwentyFourHourTimeSlice();
- break;
- }
- log.debug("Deleting " + table + " index entries for time slice " + time);
- writePermits.acquire();
- StorageResultSetFuture future = dao.deleteMetricsIndexEntriesAsync(table, time.getMillis());
- Futures.addCallback(future, new FutureCallback<ResultSet>() {
- @Override
- public void onSuccess(ResultSet result) {
- remainingIndexEntries.decrementAndGet();
- }
-
- @Override
- public void onFailure(Throwable t) {
- log.warn("Failed to delete index entries for table " + table + " at time [" + time + "]");
- remainingIndexEntries.decrementAndGet();
- }
- });
- }
+// private void deleteIndexEntries(final MetricsTable table) {
+// final DateTime time;
+// switch (table) {
+// case ONE_HOUR:
+// time = startTime;
+// break;
+// case SIX_HOUR:
+// time = state.getSixHourTimeSlice();
+// break;
+// default:
+// time = state.getTwentyFourHourTimeSlice();
+// break;
+// }
+// log.debug("Deleting " + table + " index entries for time slice " + time);
+// writePermits.acquire();
+// StorageResultSetFuture future = dao.deleteMetricsIndexEntriesAsync(table, time.getMillis());
+// Futures.addCallback(future, new FutureCallback<ResultSet>() {
+// @Override
+// public void onSuccess(ResultSet result) {
+// remainingIndexEntries.decrementAndGet();
+// }
+//
+// @Override
+// public void onFailure(Throwable t) {
+// log.warn("Failed to delete index entries for table " + table + " at time [" + time + "]");
+// remainingIndexEntries.decrementAndGet();
+// }
+// });
+// }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
index 7146a92..1a08435 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute1HourData.java
@@ -1,5 +1,7 @@
package org.rhq.server.metrics;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -56,6 +58,7 @@ public class Compute1HourData implements AsyncFunction<List<ResultSet>, List<Res
for (ResultSet resultSet : rawDataResultSets) {
AggregateNumericMetric aggregate = calculateAggregatedRaw(resultSet);
oneHourData.add(aggregate);
+ String partitionKey = indexPartitionKey(MetricsTable.SIX_HOUR, aggregate.getScheduleId());
writePermits.acquire(4);
insertFutures.add(dao.insertOneHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
AggregateType.MIN, aggregate.getMin()));
@@ -63,7 +66,7 @@ public class Compute1HourData implements AsyncFunction<List<ResultSet>, List<Res
AggregateType.MAX, aggregate.getMax()));
insertFutures.add(dao.insertOneHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
AggregateType.AVG, aggregate.getAvg()));
- insertFutures.add(dao.updateMetricsIndex(MetricsTable.SIX_HOUR, aggregate.getScheduleId(),
+ insertFutures.add(dao.updateMetricsIndex(partitionKey, aggregate.getScheduleId(),
sixHourTimeSlice.getMillis()));
}
return Futures.successfulAsList(insertFutures);
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
index a1efab5..ba18e17 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/Compute6HourData.java
@@ -1,5 +1,7 @@
package org.rhq.server.metrics;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
+
import java.util.ArrayList;
import java.util.List;
@@ -52,6 +54,7 @@ public class Compute6HourData implements AsyncFunction<List<ResultSet>, List<Res
new ArrayList<StorageResultSetFuture>(oneHourDataResultSets.size());
for (ResultSet resultSet : oneHourDataResultSets) {
AggregateNumericMetric aggregate = calculateAggregate(resultSet);
+ String partitionKey = indexPartitionKey(MetricsTable.TWENTY_FOUR_HOUR, aggregate.getScheduleId());
writePermits.acquire(4);
insertFutures.add(dao.insertSixHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
AggregateType.MIN, aggregate.getMin()));
@@ -59,7 +62,7 @@ public class Compute6HourData implements AsyncFunction<List<ResultSet>, List<Res
AggregateType.MAX, aggregate.getMax()));
insertFutures.add(dao.insertSixHourDataAsync(aggregate.getScheduleId(), aggregate.getTimestamp(),
AggregateType.AVG, aggregate.getAvg()));
- insertFutures.add(dao.updateMetricsIndex(MetricsTable.TWENTY_FOUR_HOUR, aggregate.getScheduleId(),
+ insertFutures.add(dao.updateMetricsIndex(partitionKey, aggregate.getScheduleId(),
twentyFourHourTimeSlice.getMillis()));
}
return Futures.successfulAsList(insertFutures);
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
index 66a0dab..3b743ce 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsDAO.java
@@ -281,6 +281,11 @@ public class MetricsDAO {
return storageSession.executeAsync(statement);
}
+ public StorageResultSetFuture findMetricsIndexEntriesAsync(String partitionKey, long timestamp) {
+ BoundStatement statement = findIndexEntries.bind(partitionKey, new Date(timestamp));
+ return storageSession.executeAsync(statement);
+ }
+
public ResultSet setFindTimeSliceForIndex(MetricsTable table, long timestamp) {
BoundStatement statement = findTimeSliceForIndex.bind(table.toString(), new Date(timestamp));
return storageSession.execute(statement);
@@ -299,11 +304,19 @@ public class MetricsDAO {
return storageSession.executeAsync(statement);
}
+ public StorageResultSetFuture updateMetricsIndex(String partitionKey, int scheduleId, long timestamp) {
+ return storageSession.executeAsync(updateMetricsIndex.bind(partitionKey, new Date(timestamp), scheduleId));
+ }
+
public void deleteMetricsIndexEntries(MetricsTable table, long timestamp) {
BoundStatement statement = deleteIndexEntries.bind(table.getTableName(), new Date(timestamp));
storageSession.execute(statement);
}
+ public StorageResultSetFuture deleteMetricsIndexEntriesAsync(String partitionKey, long timestamp) {
+ return storageSession.executeAsync(deleteIndexEntries.bind(partitionKey, new Date(timestamp)));
+ }
+
public StorageResultSetFuture deleteMetricsIndexEntriesAsync(MetricsTable table, long timestamp) {
BoundStatement statement = deleteIndexEntries.bind(table.getTableName(), new Date(timestamp));
return storageSession.executeAsync(statement);
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
index 05a8fba..b9473d4 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsServer.java
@@ -25,6 +25,8 @@
package org.rhq.server.metrics;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -66,6 +68,8 @@ public class MetricsServer {
private final Log log = LogFactory.getLog(MetricsServer.class);
+ public static final int METRICS_INDEX_ROW_SIZE = 5000;
+
private DateTimeService dateTimeService = new DateTimeService();
private MetricsDAO dao;
@@ -392,8 +396,9 @@ public class MetricsServer {
long timeSlice = dateTimeService.getTimeSlice(new DateTime(rawData.getTimestamp()),
configuration.getRawTimeSliceDuration()).getMillis();
+ String partitionKey = indexPartitionKey(MetricsTable.ONE_HOUR, rawData.getScheduleId());
writePermits.acquire();
- StorageResultSetFuture resultSetFuture = dao.updateMetricsIndex(MetricsTable.ONE_HOUR, rawData.getScheduleId(),
+ StorageResultSetFuture resultSetFuture = dao.updateMetricsIndex(partitionKey, rawData.getScheduleId(),
timeSlice);
Futures.addCallback(resultSetFuture, new FutureCallback<ResultSet>() {
@Override
@@ -438,7 +443,7 @@ public class MetricsServer {
if (useAsyncAggregation) {
DateTime timeSlice = theHour.minus(configuration.getRawTimeSliceDuration());
return new Aggregator(aggregationWorkers, dao, configuration, dateTimeService, timeSlice,
- aggregationBatchSize, writePermits, readPermits).run();
+ aggregationBatchSize, writePermits, readPermits, 0, 0).run();
} else {
return calculateAggregates(theHour.getMillis());
}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsUtil.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsUtil.java
new file mode 100644
index 0000000..5411368
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/MetricsUtil.java
@@ -0,0 +1,17 @@
+package org.rhq.server.metrics;
+
+import org.rhq.server.metrics.domain.MetricsTable;
+
+/**
+ * @author John Sanda
+ */
+public class MetricsUtil {
+
+ public static final int METRICS_INDEX_ROW_SIZE = 5000;
+
+ public static String indexPartitionKey(MetricsTable table, int scheduleId) {
+ int offset = (scheduleId / METRICS_INDEX_ROW_SIZE) * METRICS_INDEX_ROW_SIZE;
+ return table + ":" + Integer.toString(offset);
+ }
+
+}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/RawIndexEntriesHandler.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/RawIndexEntriesHandler.java
new file mode 100644
index 0000000..43300c6
--- /dev/null
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/RawIndexEntriesHandler.java
@@ -0,0 +1,106 @@
+package org.rhq.server.metrics;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import com.datastax.driver.core.ResultSet;
+import com.datastax.driver.core.Row;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.RateLimiter;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author John Sanda
+ */
+public class RawIndexEntriesHandler implements FutureCallback<ResultSet> {
+
+ private final Log log = LogFactory.getLog(RawIndexEntriesHandler.class);
+
+ private AggregationState state;
+
+ private int batchSize;
+
+ private MetricsDAO dao;
+
+ private RateLimiter writePermits;
+
+ private RateLimiter readPermits;
+
+ private String partitionKey;
+
+ public RawIndexEntriesHandler(AggregationState state, MetricsDAO dao, RateLimiter writePermits,
+ RateLimiter readPermits, int batchSize, String partitionKey) {
+ this.state = state;
+ this.dao = dao;
+ this.writePermits = writePermits;
+ this.readPermits = readPermits;
+ this.batchSize = batchSize;
+ this.partitionKey = partitionKey;
+ }
+
+ @Override
+ public void onSuccess(ResultSet result) {
+ List<Row> rows = result.all();
+
+ // We have to decrement remainingIndexEntries after we increment remainingRawData; otherwise, we enter
+ // into a race condition where Aggregator could return before all data aggregation has finished.
+ state.getRemainingRawData().addAndGet(rows.size());
+ state.getRawIndexEntriesArrival().countDown();
+
+ log.debug("Starting raw data aggregation for " + rows.size() + " schedules from index partition " + partitionKey);
+ long start = System.currentTimeMillis();
+ Set<Integer> scheduleIds = new TreeSet<Integer>();
+ List<StorageResultSetFuture> rawDataFutures = new ArrayList<StorageResultSetFuture>(batchSize);
+ for (final Row row : rows) {
+ scheduleIds.add(row.getInt(1));
+ readPermits.acquire();
+ rawDataFutures.add(dao.findRawMetricsAsync(row.getInt(1), state.getOneHourTimeSlice().getMillis(),
+ state.getOneHourTimeSliceEnd().getMillis()));
+ if (rawDataFutures.size() == batchSize) {
+ state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
+ rawDataFutures));
+ rawDataFutures = new ArrayList<StorageResultSetFuture>();
+ scheduleIds = new TreeSet<Integer>();
+ }
+ }
+ if (!rawDataFutures.isEmpty()) {
+ state.getAggregationTasks().submit(new AggregateRawData(dao, state, scheduleIds,
+ rawDataFutures));
+ }
+ log.debug("Finished processing one hour index entries in " + (System.currentTimeMillis() - start) +
+ " ms");
+ deleteIndexPartition();
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to retrieve raw data index entries from partition " + partitionKey +
+ ". Raw data aggregation for time slice [" + state.getOneHourTimeSlice() + "] cannot proceed.", t);
+
+ state.getRawIndexEntriesArrival().countDown();
+ deleteIndexPartition();
+ }
+
+ private void deleteIndexPartition() {
+ log.debug("Deleting raw index entries for partition " + partitionKey);
+ writePermits.acquire();
+ StorageResultSetFuture deleteFuture = dao.deleteMetricsIndexEntriesAsync(partitionKey,
+ state.getOneHourTimeSlice().getMillis());
+ Futures.addCallback(deleteFuture, new FutureCallback<ResultSet>() {
+ @Override
+ public void onSuccess(ResultSet result) {
+ log.debug("Successfully deleting raw data index partition " + partitionKey);
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ log.warn("Failed to delete raw data index partition " + partitionKey, t);
+ }
+ });
+ }
+}
diff --git a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/domain/MetricsTable.java b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/domain/MetricsTable.java
index 07bf927..8f8c579 100644
--- a/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/domain/MetricsTable.java
+++ b/modules/enterprise/server/server-metrics/src/main/java/org/rhq/server/metrics/domain/MetricsTable.java
@@ -61,4 +61,20 @@ public enum MetricsTable {
public String toString() {
return this.tableName;
}
+
+ public static MetricsTable fromTableName(String table) {
+ if (table.equals(INDEX.tableName)) {
+ return INDEX;
+ } else if (table.equals(RAW.tableName)) {
+ return RAW;
+ } else if (table.equals(ONE_HOUR.tableName)) {
+ return ONE_HOUR;
+ } else if (table.equals(SIX_HOUR.tableName)) {
+ return SIX_HOUR;
+ } else if (table.equals(TWENTY_FOUR_HOUR.tableName)) {
+ return TWENTY_FOUR_HOUR;
+ } else {
+ throw new IllegalArgumentException(table + " is not a recognized table name");
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregationTests.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregationTests.java
index 0d40513..2be3d55 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregationTests.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregationTests.java
@@ -1,7 +1,9 @@
package org.rhq.server.metrics;
import static java.util.Arrays.asList;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
+import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.testng.Assert.assertTrue;
import java.util.ArrayList;
@@ -29,6 +31,7 @@ import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.server.metrics.domain.AggregateNumericMetric;
import org.rhq.server.metrics.domain.AggregateType;
import org.rhq.server.metrics.domain.MetricsIndexEntry;
+import org.rhq.server.metrics.domain.MetricsIndexEntryMapper;
import org.rhq.server.metrics.domain.MetricsTable;
/**
@@ -54,10 +57,10 @@ public class AggregationTests extends MetricsTest {
purgeDB();
schedule1.id = 100;
- schedule2.id = 101;
- schedule3.id = 102;
- schedule4.id = 104;
- schedule5.id = 105;
+ schedule2.id = 5100;
+ schedule3.id = 11001;
+ schedule4.id = 18022;
+ schedule5.id = 21303;
aggregationTasks = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10));
writePermits = RateLimiter.create(500);
@@ -383,8 +386,8 @@ public class AggregationTests extends MetricsTest {
private WaitForWrite updateIndex(IndexUpdate... updates) {
WaitForWrite waitForWrite = new WaitForWrite(updates.length);
for (IndexUpdate update : updates) {
- StorageResultSetFuture future = dao.updateMetricsIndex(update.table, update.scheduleId,
- update.time.getMillis());
+ StorageResultSetFuture future = dao.updateMetricsIndex(indexPartitionKey(update.table, update.scheduleId),
+ update.scheduleId, update.time.getMillis());
Futures.addCallback(future, waitForWrite);
}
return waitForWrite;
@@ -440,8 +443,8 @@ public class AggregationTests extends MetricsTest {
for (int scheduleId : scheduleIds) {
indexEntries.add(new MetricsIndexEntry(MetricsTable.SIX_HOUR, timeSlice, scheduleId));
}
- assertMetricsIndexEquals(MetricsTable.SIX_HOUR, timeSlice.getMillis(), indexEntries,
- "The 6 hour index is wrong");
+ List<MetricsIndexEntry> actual = loadIndexEntries(timeSlice, MetricsTable.SIX_HOUR, scheduleIds);
+ assertCollectionMatchesNoOrder("The 6 hour index is wrong", indexEntries, actual);
}
protected void assert24HourIndexEquals(DateTime timeSlice, int... scheduleIds) {
@@ -449,18 +452,32 @@ public class AggregationTests extends MetricsTest {
for (int scheduleId : scheduleIds) {
indexEntries.add(new MetricsIndexEntry(MetricsTable.TWENTY_FOUR_HOUR, timeSlice, scheduleId));
}
- assertMetricsIndexEquals(MetricsTable.TWENTY_FOUR_HOUR, timeSlice.getMillis(), indexEntries,
- "The 24 hour index is wrong");
+ List<MetricsIndexEntry> actual = loadIndexEntries(timeSlice, MetricsTable.TWENTY_FOUR_HOUR, scheduleIds);
+ assertCollectionMatchesNoOrder("The 24 hour index is wrong", indexEntries, actual);
+ }
+
+ private List<MetricsIndexEntry> loadIndexEntries(DateTime timeSlice, MetricsTable table, int... scheduleIds) {
+ List<MetricsIndexEntry> indexEntries = new ArrayList<MetricsIndexEntry>();
+ MetricsIndexEntryMapper mapper = new MetricsIndexEntryMapper(table);
+ for (int scheduleId : scheduleIds) {
+ String partitionKey = indexPartitionKey(table, scheduleId);
+ StorageResultSetFuture indexFuture = dao.findMetricsIndexEntriesAsync(partitionKey, timeSlice.getMillis());
+ indexEntries.addAll(mapper.mapAll(indexFuture.get()));
+ }
+
+ return indexEntries;
}
private class AggregatorTestStub extends Aggregator {
public AggregatorTestStub(DateTime startTime) {
- super(aggregationTasks, dao, configuration, dateTimeService, startTime, 250, writePermits, readPermits);
+ super(aggregationTasks, dao, configuration, dateTimeService, startTime, 250, writePermits, readPermits,
+ schedule1.id, schedule5.id);
}
public AggregatorTestStub(DateTime startTime, MetricsDAO dao) {
- super(aggregationTasks, dao, configuration, dateTimeService, startTime, 250, writePermits, readPermits);
+ super(aggregationTasks, dao, configuration, dateTimeService, startTime, 250, writePermits, readPermits,
+ schedule1.id, schedule5.id);
}
@Override
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregatorTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregatorTest.java
deleted file mode 100644
index 77736fc..0000000
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/AggregatorTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-package org.rhq.server.metrics;
-
-import static java.util.Arrays.asList;
-import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Semaphore;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-
-import org.joda.time.DateTime;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import org.rhq.core.domain.measurement.MeasurementDataNumeric;
-import org.rhq.server.metrics.domain.AggregateNumericMetric;
-import org.rhq.server.metrics.domain.AggregateType;
-import org.rhq.server.metrics.domain.MetricsIndexEntry;
-import org.rhq.server.metrics.domain.MetricsTable;
-
-/**
- * @author John Sanda
- */
-public class AggregatorTest extends MetricsTest {
-
- private static final boolean ENABLED = true;
-
- private class AggregatorTestStub extends Aggregator {
-
- public AggregatorTestStub(ListeningExecutorService workers, MetricsDAO dao, MetricsConfiguration configuration,
- DateTimeService dtService, DateTime startTime) {
- //super(workers, dao, configuration, dtService, startTime, semaphore);
- super(null, null, null, null, null, 0, null, null);
- }
-
- @Override
- protected DateTime currentHour() {
- return currentHour;
- }
- }
-
- private DateTime currentHour;
-
- private ListeningExecutorService workers;
-
- private Semaphore semaphore = new Semaphore(50);
-
- @BeforeClass
- public void initClass() {
- workers = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10));
- }
-
- @BeforeMethod
- public void initTest() throws Exception {
- purgeDB();
- }
-
- @Test
- public void runAggregationDuringHour3() throws Exception {
- int scheduleId1 = 123;
- int scheduleId2 = 456;
- DateTime hour3 = hour0().plusHours(3);
- currentHour = hour0().plusHours(4);
-
- AggregatorTestStub aggregator = new AggregatorTestStub(workers, dao, configuration, dateTimeService, hour3);
-
- Set<MeasurementDataNumeric> rawMetrics = ImmutableSet.of(
- new MeasurementDataNumeric(hour3.plusMinutes(20).getMillis(), scheduleId1, 2.42),
- new MeasurementDataNumeric(hour3.plusMinutes(40).getMillis(), scheduleId1, 5.9),
- new MeasurementDataNumeric(hour3.plusMinutes(15).getMillis(), scheduleId2, 0.0032),
- new MeasurementDataNumeric(hour3.plusMinutes(30).getMillis(), scheduleId2, 0.105)
- );
-
- WaitForWrite waitForRawInserts = insertRawData(rawMetrics);
- waitForRawInserts.await("Failed to insert raw data");
-
- WaitForWrite waitForIndexUpdates = new WaitForWrite(2);
- StorageResultSetFuture indexFuture1 = dao.updateMetricsIndex(MetricsTable.ONE_HOUR, scheduleId1,
- hour3.getMillis());
- StorageResultSetFuture indexFuture2 = dao.updateMetricsIndex(MetricsTable.ONE_HOUR, scheduleId2,
- hour3.getMillis());
- Futures.addCallback(indexFuture1, waitForIndexUpdates);
- Futures.addCallback(indexFuture2, waitForIndexUpdates);
- waitForIndexUpdates.await("Failed to update metrics index for raw data");
-
- aggregator.run();
- }
-
- private WaitForWrite insertRawData(Set<MeasurementDataNumeric> rawMetrics) {
- WaitForWrite waitForRawInserts = new WaitForWrite(rawMetrics.size());
- for (MeasurementDataNumeric raw : rawMetrics) {
- StorageResultSetFuture resultSetFuture = dao.insertRawData(raw);
- Futures.addCallback(resultSetFuture, waitForRawInserts);
- }
- return waitForRawInserts;
- }
-
- @Test(enabled = ENABLED)
- public void aggregateRawDataDuring9thHour() throws Exception {
- int scheduleId = 123;
-
- DateTime hour0 = hour0();
- DateTime hour9 = hour0.plusHours(9);
- DateTime hour8 = hour9.minusHours(1);
-
- currentHour = hour9;
- AggregatorTestStub aggregator = new AggregatorTestStub(workers, dao, configuration, dateTimeService, hour8);
-
- DateTime firstMetricTime = hour8.plusMinutes(5);
- DateTime secondMetricTime = hour8.plusMinutes(10);
- DateTime thirdMetricTime = hour8.plusMinutes(15);
-
- double firstValue = 1.1;
- double secondValue = 2.2;
- double thirdValue = 3.3;
-
- Set<MeasurementDataNumeric> rawMetrics = new HashSet<MeasurementDataNumeric>();
- rawMetrics.add(new MeasurementDataNumeric(firstMetricTime.getMillis(), scheduleId, firstValue));
- rawMetrics.add(new MeasurementDataNumeric(secondMetricTime.getMillis(), scheduleId, secondValue));
- rawMetrics.add(new MeasurementDataNumeric(thirdMetricTime.getMillis(), scheduleId, thirdValue));
-
- WaitForWrite waitForRawInserts = new WaitForWrite(rawMetrics.size());
- for (MeasurementDataNumeric raw : rawMetrics) {
- StorageResultSetFuture resultSetFuture = dao.insertRawData(raw);
- Futures.addCallback(resultSetFuture, waitForRawInserts);
- }
- waitForRawInserts.await("Failed to insert raw data");
-
- WaitForWrite waitForIndexUpdates = new WaitForWrite(1);
- StorageResultSetFuture indexFuture = dao.updateMetricsIndex(MetricsTable.ONE_HOUR, scheduleId, hour8.getMillis());
- Futures.addCallback(indexFuture, waitForIndexUpdates);
- waitForIndexUpdates.await("Failed to update metrics index for raw data");
-
- Set<AggregateNumericMetric> oneHourAggregates = aggregator.run();
-
- List<AggregateNumericMetric> expectedAggregates = asList(new AggregateNumericMetric(scheduleId,
- divide((1.1 + 2.2 + 3.3), 3), firstValue, thirdValue, hour8.getMillis()));
-
- assertCollectionEqualsNoOrder(expectedAggregates, oneHourAggregates,
- "The aggregator did not return the correct one hour aggregates");
-
- // verify that the 1 hour aggregates are calculated
- assert1HourDataEquals(scheduleId, asList(new AggregateNumericMetric(scheduleId, divide((1.1 + 2.2 + 3.3), 3),
- firstValue, thirdValue, hour8.getMillis())));
-
- // verify that the 6 hour index is updated
- List<MetricsIndexEntry> expected6HourIndex = asList(new MetricsIndexEntry(MetricsTable.SIX_HOUR,
- dateTimeService.getTimeSlice(hour9, configuration.getOneHourTimeSliceDuration()), scheduleId));
-
- assertMetricsIndexEquals(MetricsTable.SIX_HOUR, hour9.minusHours(3).getMillis(), expected6HourIndex,
- "Failed to update index for " + MetricsTable.SIX_HOUR);
-
- // The 6 hour data should not get aggregated since the current 6 hour time slice,
- // 06:00 - 12:00, has not yet passed.
- assert6HourDataEmpty(scheduleId);
-
- // verify that the 24 hour index is empty
- assert24HourMetricsIndexEmpty(hour0);
-
- // verify that the 1 hour queue has been purged
- assert1HourMetricsIndexEmpty(hour8);
- }
-
- @Test(enabled = ENABLED)
- public void aggregate6HourDataDuring24thHour() throws Exception {
- // set up the test fixture
- int scheduleId = 123;
-
- DateTime hour0 = hour0();
- DateTime hour12 = hour0.plusHours(12);
- DateTime hour6 = hour0.plusHours(6);
- DateTime hour24 = hour0.plusHours(24);
-
- currentHour = hour24;
- AggregatorTestStub aggregator = new AggregatorTestStub(workers, dao, configuration, dateTimeService,
- hour24.minusHours(1));
-
- double min1 = 1.1;
- double avg1 = 2.2;
- double max1 = 3.3;
-
- double min2 = 4.4;
- double avg2 = 5.5;
- double max2 = 6.6;
-
- // insert 6 hour data to be aggregated
- List<AggregateNumericMetric> sixHourMetrics = asList(
- new AggregateNumericMetric(scheduleId, avg1, min1, max1, hour6.getMillis()),
- new AggregateNumericMetric(scheduleId, avg2, min2, max2, hour12.getMillis())
- );
- for (AggregateNumericMetric metric : sixHourMetrics) {
- dao.insertSixHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.MIN, metric.getMin());
- dao.insertSixHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.MAX, metric.getMax());
- dao.insertSixHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.AVG, metric.getAvg());
- }
-
- // update the 24 queue
- Map<Integer, Long> indexUpdates = new HashMap<Integer, Long>();
- indexUpdates.put(scheduleId, hour0.getMillis());
- dao.updateMetricsIndex(MetricsTable.TWENTY_FOUR_HOUR, indexUpdates);
-
- // execute the system under test
- aggregator.run();
-
- // verify the results
- // verify that the 6 hour data is aggregated
- assert24HourDataEquals(scheduleId, asList(new AggregateNumericMetric(scheduleId, divide(avg1 + avg2, 2),
- min1, max2, hour0.getMillis())));
-
- // verify that the 24 hour queue is updated
- assert24HourMetricsIndexEmpty(hour0);
- }
-
- @Test//(enabled = ENABLED)
- public void aggregate1HourDataDuring12thHour() throws Exception {
- // set up the test fixture
- int scheduleId = 123;
-
- DateTime hour0 = hour0();
- DateTime hour12 = hour0.plusHours(12);
- DateTime hour6 = hour0.plusHours(6);
- DateTime hour7 = hour0.plusHours(7);
- DateTime hour8 = hour0.plusHours(8);
-
- currentHour = hour12;
- AggregatorTestStub aggregator = new AggregatorTestStub(workers, dao, configuration, dateTimeService,
- hour12.minusHours(1));
-
- double min1 = 1.1;
- double avg1 = 2.2;
- double max1 = 9.9;
-
- double min2 = 4.4;
- double avg2 = 5.5;
- double max2 = 6.6;
-
- // insert one hour data to be aggregated
- List<AggregateNumericMetric> oneHourMetrics = asList(
- new AggregateNumericMetric(scheduleId, avg1, min1, max1, hour7.getMillis()),
- new AggregateNumericMetric(scheduleId, avg2, min2, max2, hour8.getMillis())
- );
- for (AggregateNumericMetric metric : oneHourMetrics) {
- dao.insertOneHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.MIN, metric.getMin());
- dao.insertOneHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.MAX, metric.getMax());
- dao.insertOneHourData(metric.getScheduleId(), metric.getTimestamp(), AggregateType.AVG, metric.getAvg());
- }
-
- // update the 6 hour queue
- Map<Integer, Long> indexUpdates = new HashMap<Integer, Long>();
- indexUpdates.put(scheduleId, hour6.getMillis());
- dao.updateMetricsIndex(MetricsTable.SIX_HOUR, indexUpdates);
-
- aggregator.run();
-
- // verify the results
- // verify that the one hour data has been aggregated
- assert6HourDataEquals(scheduleId, asList(new AggregateNumericMetric(scheduleId, divide((avg1 + avg2), 2), min1,
- max1, hour6.getMillis())));
-
- // verify that the 6 hour queue has been updated
- assert6HourMetricsIndexEmpty(hour6);
-
- // verify that the 24 hour queue is updated
- assertMetricsIndexEquals(MetricsTable.TWENTY_FOUR_HOUR, hour0.getMillis(), asList(new MetricsIndexEntry(
- MetricsTable.TWENTY_FOUR_HOUR, hour0, scheduleId)), "Failed to update index for "
- + MetricsTable.TWENTY_FOUR_HOUR);
-
- // verify that 6 hour data is not rolled up into the 24 hour bucket
- assert24HourDataEmpty(scheduleId);
- }
-
-}
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
index fff0485..b03c0ea 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsDAOTest.java
@@ -26,10 +26,11 @@
package org.rhq.server.metrics;
import static java.util.Arrays.asList;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
+import static org.rhq.test.AssertUtils.assertCollectionEqualsNoOrder;
import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.fail;
import java.util.ArrayList;
import java.util.HashMap;
@@ -39,9 +40,7 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;
-import com.datastax.driver.core.ResultSet;
import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import org.apache.commons.logging.Log;
@@ -346,34 +345,31 @@ public class MetricsDAOTest extends CassandraIntegrationTest {
}
@Test(enabled = ENABLED)
- public void updateAndFindOneHourIndexEntries() {
+ public void updateAndFindOneHourIndexEntries() throws Exception {
DateTime hour0 = hour0();
- int scheduleId1 = 1;
- int scheduleId2 = 2;
+ int scheduleId1 = 12500;
+ String partitionKey1 = indexPartitionKey(MetricsTable.ONE_HOUR, scheduleId1);
- Map<Integer, Long> updates = new HashMap<Integer, Long>();
- updates.put(scheduleId1, hour0.getMillis());
- updates.put(scheduleId2, hour0.getMillis());
+ WaitForWrite waitForUpdates = new WaitForWrite(1);
+ StorageResultSetFuture updateFuture;
- dao.updateMetricsIndex(MetricsTable.ONE_HOUR, updates);
- final List<MetricsIndexEntry> expected = asList(new MetricsIndexEntry(MetricsTable.ONE_HOUR, hour0, scheduleId1),
- new MetricsIndexEntry(MetricsTable.ONE_HOUR, hour0, scheduleId2));
+ updateFuture = dao.updateMetricsIndex(partitionKey1, scheduleId1, hour0.getMillis());
+ Futures.addCallback(updateFuture, waitForUpdates);
+ waitForUpdates.await("Failed to update metrics index for raw data");
- StorageResultSetFuture future = dao.findMetricsIndexEntriesAsync(MetricsTable.ONE_HOUR, hour0.getMillis());
- Futures.addCallback(future, new FutureCallback<ResultSet>() {
- @Override
- public void onSuccess(ResultSet result) {
- MetricsIndexEntryMapper mapper = new MetricsIndexEntryMapper(MetricsTable.ONE_HOUR);
- List<MetricsIndexEntry> actual = mapper.mapAll(result);
+ final List<MetricsIndexEntry> expected = asList(new MetricsIndexEntry(MetricsTable.ONE_HOUR, hour0,
+ scheduleId1));
- assertCollectionMatchesNoOrder(expected, actual, "Failed to update or retrieve metrics index entries");
- }
+ MetricsIndexEntryMapper mapper = new MetricsIndexEntryMapper(MetricsTable.ONE_HOUR);
+ WaitForRead<MetricsIndexEntry> waitForReads = new WaitForRead<MetricsIndexEntry>(mapper);
- @Override
- public void onFailure(Throwable t) {
- fail("Failed to retrieve one hour index entries", t);
- }
- });
+ StorageResultSetFuture queryFuture;
+ queryFuture = dao.findMetricsIndexEntriesAsync(partitionKey1, hour0.getMillis());
+ Futures.addCallback(queryFuture, waitForReads);
+
+ waitForReads.await("Failed to fetch raw data index entries");
+
+ assertCollectionEqualsNoOrder(expected, waitForReads.getResults(), "Raw data index entries do not match");
}
@Test(enabled = ENABLED)
diff --git a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
index b3ffb66..a0125c8 100644
--- a/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
+++ b/modules/enterprise/server/server-metrics/src/test/java/org/rhq/server/metrics/MetricsServerTest.java
@@ -27,6 +27,7 @@ package org.rhq.server.metrics;
import static java.util.Arrays.asList;
import static org.joda.time.DateTime.now;
+import static org.rhq.server.metrics.MetricsUtil.indexPartitionKey;
import static org.rhq.test.AssertUtils.assertCollectionMatchesNoOrder;
import static org.rhq.test.AssertUtils.assertPropertiesMatch;
import static org.testng.Assert.assertEquals;
@@ -56,6 +57,7 @@ import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowCo
import org.rhq.server.metrics.domain.AggregateNumericMetric;
import org.rhq.server.metrics.domain.AggregateType;
import org.rhq.server.metrics.domain.MetricsIndexEntry;
+import org.rhq.server.metrics.domain.MetricsIndexEntryMapper;
import org.rhq.server.metrics.domain.MetricsTable;
import org.rhq.server.metrics.domain.RawNumericMetric;
import org.rhq.server.metrics.domain.RawNumericMetricMapper;
@@ -126,7 +128,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
@Test(enabled = ENABLED)
public void insertMultipleRawNumericDataForOneSchedule() throws Exception {
- int scheduleId = 123;
+ int scheduleId = 1023;
DateTime hour0 = hour0();
DateTime currentTime = hour0.plusHours(4).plusMinutes(44);
@@ -162,11 +164,11 @@ public class MetricsServerTest extends CassandraIntegrationTest {
List<MetricsIndexEntry> expectedIndex = asList(new MetricsIndexEntry(MetricsTable.ONE_HOUR, hour4,
scheduleId));
- assertMetricsIndexEquals(MetricsTable.ONE_HOUR, hour4.getMillis(), expectedIndex,
+ assertMetricsIndexEquals(indexPartitionKey(MetricsTable.ONE_HOUR, scheduleId), hour4.getMillis(), expectedIndex,
"Failed to update index for " + MetricsTable.ONE_HOUR);
}
- @Test(enabled = ENABLED)
+// @Test(enabled = ENABLED)
public void calculateAggregatesForOneScheduleWhenDBIsEmpty() throws Exception {
int scheduleId = 123;
@@ -203,7 +205,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
// TODO verify metrics index for 24 hour data is updated
}
- @Test(enabled = ENABLED)
+// @Test(enabled = ENABLED)
public void aggregateRawDataDuring9thHour() throws Exception {
int scheduleId = 123;
@@ -266,7 +268,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
assert1HourMetricsIndexEmpty(scheduleId, hour9.getMillis());
}
- @Test(enabled = ENABLED)
+// @Test(enabled = ENABLED)
public void aggregate1HourDataDuring12thHour() {
// set up the test fixture
int scheduleId = 123;
@@ -330,7 +332,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
* hour 10 which also mean we could have raw data in the 10:00 hour in addition to the
* previous hour that need to be aggregated.
*/
- @Test(enabled = true)
+// @Test(enabled = true)
public void runAggregationIn15thHourAfterServerOutage() throws Exception {
int scheduleId = 123;
DateTime hour10 = hour0().plusHours(10);
@@ -392,7 +394,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
hour10Max, hour0().plusHours(6).getMillis())));
}
- @Test(enabled = true)
+// @Test(enabled = true)
public void runAggregationIn8thHourAfterServerOutageFromPreviousDay() throws Exception {
int scheduleId = 123;
DateTime hour20Yesterday = hour0().minusHours(4);
@@ -459,7 +461,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
hour20YesterdayMin, hour20YesterdayMax, hour0Yesterday.getMillis())));
}
- @Test(enabled = ENABLED)
+// @Test(enabled = ENABLED)
public void aggregate6HourDataDuring24thHour() {
// set up the test fixture
int scheduleId = 123;
@@ -506,7 +508,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
assert24HourMetricsIndexEmpty(scheduleId, hour0.getMillis());
}
- @Test//(enabled = ENABLED)
+ @Test(enabled = ENABLED)
public void findRawDataCompositesForResource() throws Exception {
DateTime beginTime = now().minusHours(4);
DateTime endTime = now();
@@ -793,7 +795,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
actualData.get(29));
}
- @Test//(enabled = ENABLED)
+ @Test(enabled = ENABLED)
public void find1HourDataComposites() {
DateTime beginTime = now().minusDays(11);
DateTime endTime = now();
@@ -882,7 +884,7 @@ public class MetricsServerTest extends CassandraIntegrationTest {
actual.get(59));
}
- @Test//(enabled = ENABLED)
+ @Test(enabled = ENABLED)
public void find6HourDataComposites() {
DateTime beginTime = now().minusDays(20);
DateTime endTime = now();
@@ -938,6 +940,16 @@ public class MetricsServerTest extends CassandraIntegrationTest {
}
}
+ private void assertMetricsIndexEquals(String partitionKey, long timeSlice, List<MetricsIndexEntry> expected,
+ String msg) {
+ MetricsTable table = MetricsTable.fromTableName(partitionKey.split(":")[0]);
+ MetricsIndexEntryMapper mapper = new MetricsIndexEntryMapper(table);
+ StorageResultSetFuture future = dao.findMetricsIndexEntriesAsync(partitionKey, timeSlice);
+ List<MetricsIndexEntry> actual = mapper.mapAll(future.get());
+ assertCollectionMatchesNoOrder(msg + ": " + " Index entries for partition key [" + partitionKey + "]" +
+ "do not match expected values.", expected, actual);
+ }
+
private void assertMetricsIndexEquals(MetricsTable table, long timeSlice, List<MetricsIndexEntry> expected,
String msg) {
List<MetricsIndexEntry> actual = Lists.newArrayList(dao.findMetricsIndexEntries(table, timeSlice));
10 years, 6 months
[rhq] Branch 'release/jon3.2.x' - modules/enterprise
by John Sanda
modules/enterprise/remoting/cli/src/main/samples/drift.js | 23 +++++-----
modules/enterprise/remoting/cli/src/main/samples/modules/drift.js | 21 +++++----
2 files changed, 25 insertions(+), 19 deletions(-)
New commits:
commit 05715a631b36aaf63c502cd8c716d5dab3876cb5
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Oct 25 12:49:48 2013 -0400
update examples in docs
diff --git a/modules/enterprise/remoting/cli/src/main/samples/drift.js b/modules/enterprise/remoting/cli/src/main/samples/drift.js
index 132d5bf..21a6089 100644
--- a/modules/enterprise/remoting/cli/src/main/samples/drift.js
+++ b/modules/enterprise/remoting/cli/src/main/samples/drift.js
@@ -41,11 +41,14 @@
* return: A org.rhq.core.domamin.drift.DriftSnapshot object
*
* usage:
- * // generates a snapshot that includes all change sets belonging to the
- * // mydrift drift configuration.
- * createSnapshot(123, 'mydrift')
- *
- * // generates a snapshot that includes change sets 3 through 5 inclusive.
+ * // Here is an example to generate a snapshot for a resource with id 123
+ * // and having a drift definition named mydrift. The snapshot includes all
+ * // change sets belonging to the drift definition.
+ * //
+ * createSnapshot(123, 'mydrift')
+ *
+ * // Here is an example that includes change sets 3 through 5 inclusive.
+ * //
* createSnapshot(123, 'mydrift', {startVersion: 3, endVersion: 5})
*/
function createSnapshot(rid, defName) {
@@ -149,17 +152,17 @@ function diff(s1, s2) {
/**
* description: Generates and returns the drift history for a file being
* monitored for drift. This function takes three arguments. The first two, the
- * resource id drift configuration name, uniquely identify the drift
- * configuration. The third argument specifies a path that is set up for
- * monitoring by the drift configuration.
+ * resource id drift definition name, uniquely identify the drift
+ * definition. The third argument specifies a path that is set up for
+ * monitoring by the drift definition.
*
* arguments:
* rid: A resource id
*
- * configName: A drift configuration name
+ * configName: A drift definition name
*
* path: A path that is set up for drift monitoring by the drift
- * configuration that is identified by the first two arguments. The path
+ * definition that is identified by the first two arguments. The path
* should be specified as relative to the base directory from which
* monitoring is done.
*
diff --git a/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js b/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
index b07eaec..67febe5 100644
--- a/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
+++ b/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
@@ -37,11 +37,14 @@ var util = require("./util");
* return: A org.rhq.core.domamin.drift.DriftSnapshot object
*
* usage:
- * // generates a snapshot that includes all change sets belonging to the
- * // mydrift drift configuration.
- * createSnapshot(123, 'mydrift')
- *
- * // generates a snapshot that includes change sets 3 through 5 inclusive.
+ * // Here is an example to generate a snapshot for a resource with id 123
+ * // and having a drift definition named mydrift. The snapshot includes all
+ * // change sets belonging to the drift definition.
+ * //
+ * createSnapshot(123, 'mydrift')
+ *
+ * // Here is an example that includes change sets 3 through 5 inclusive.
+ * //
* createSnapshot(123, 'mydrift', {startVersion: 3, endVersion: 5})
*/
exports.createSnapshot = function(rid, defName) {
@@ -146,14 +149,14 @@ exports.diff = function(s1, s2) {
/**
* description: Generates and returns the drift history for a file being
* monitored for drift. This function takes three arguments. The first two, the
- * resource id drift configuration name, uniquely identify the drift
- * configuration. The third argument specifies a path that is set up for
- * monitoring by the drift configuration.
+ * resource id drift definition name, uniquely identify the drift
+ * definition. The third argument specifies a path that is set up for
+ * monitoring by the drift definition.
*
* arguments:
* rid: A resource id
*
- * configName: A drift configuration name
+ * configName: A drift definition name
*
* path: A path that is set up for drift monitoring by the drift
* configuration that is identified by the first two arguments. The path
10 years, 6 months
[rhq] modules/enterprise
by John Sanda
modules/enterprise/remoting/cli/src/main/samples/drift.js | 23 +++++-----
modules/enterprise/remoting/cli/src/main/samples/modules/drift.js | 21 +++++----
2 files changed, 25 insertions(+), 19 deletions(-)
New commits:
commit 534b5e30c013562fe0f6ddd57f196be8bb8ebcbe
Author: John Sanda <jsanda(a)redhat.com>
Date: Fri Oct 25 12:49:48 2013 -0400
update examples in docs
diff --git a/modules/enterprise/remoting/cli/src/main/samples/drift.js b/modules/enterprise/remoting/cli/src/main/samples/drift.js
index 132d5bf..21a6089 100644
--- a/modules/enterprise/remoting/cli/src/main/samples/drift.js
+++ b/modules/enterprise/remoting/cli/src/main/samples/drift.js
@@ -41,11 +41,14 @@
* return: A org.rhq.core.domamin.drift.DriftSnapshot object
*
* usage:
- * // generates a snapshot that includes all change sets belonging to the
- * // mydrift drift configuration.
- * createSnapshot(123, 'mydrift')
- *
- * // generates a snapshot that includes change sets 3 through 5 inclusive.
+ * // Here is an example to generate a snapshot for a resource with id 123
+ * // and having a drift definition named mydrift. The snapshot includes all
+ * // change sets belonging to the drift definition.
+ * //
+ * createSnapshot(123, 'mydrift')
+ *
+ * // Here is an example that includes change sets 3 through 5 inclusive.
+ * //
* createSnapshot(123, 'mydrift', {startVersion: 3, endVersion: 5})
*/
function createSnapshot(rid, defName) {
@@ -149,17 +152,17 @@ function diff(s1, s2) {
/**
* description: Generates and returns the drift history for a file being
* monitored for drift. This function takes three arguments. The first two, the
- * resource id drift configuration name, uniquely identify the drift
- * configuration. The third argument specifies a path that is set up for
- * monitoring by the drift configuration.
+ * resource id drift definition name, uniquely identify the drift
+ * definition. The third argument specifies a path that is set up for
+ * monitoring by the drift definition.
*
* arguments:
* rid: A resource id
*
- * configName: A drift configuration name
+ * configName: A drift definition name
*
* path: A path that is set up for drift monitoring by the drift
- * configuration that is identified by the first two arguments. The path
+ * definition that is identified by the first two arguments. The path
* should be specified as relative to the base directory from which
* monitoring is done.
*
diff --git a/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js b/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
index b07eaec..67febe5 100644
--- a/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
+++ b/modules/enterprise/remoting/cli/src/main/samples/modules/drift.js
@@ -37,11 +37,14 @@ var util = require("./util");
* return: A org.rhq.core.domamin.drift.DriftSnapshot object
*
* usage:
- * // generates a snapshot that includes all change sets belonging to the
- * // mydrift drift configuration.
- * createSnapshot(123, 'mydrift')
- *
- * // generates a snapshot that includes change sets 3 through 5 inclusive.
+ * // Here is an example to generate a snapshot for a resource with id 123
+ * // and having a drift definition named mydrift. The snapshot includes all
+ * // change sets belonging to the drift definition.
+ * //
+ * createSnapshot(123, 'mydrift')
+ *
+ * // Here is an example that includes change sets 3 through 5 inclusive.
+ * //
* createSnapshot(123, 'mydrift', {startVersion: 3, endVersion: 5})
*/
exports.createSnapshot = function(rid, defName) {
@@ -146,14 +149,14 @@ exports.diff = function(s1, s2) {
/**
* description: Generates and returns the drift history for a file being
* monitored for drift. This function takes three arguments. The first two, the
- * resource id drift configuration name, uniquely identify the drift
- * configuration. The third argument specifies a path that is set up for
- * monitoring by the drift configuration.
+ * resource id drift definition name, uniquely identify the drift
+ * definition. The third argument specifies a path that is set up for
+ * monitoring by the drift definition.
*
* arguments:
* rid: A resource id
*
- * configName: A drift configuration name
+ * configName: A drift definition name
*
* path: A path that is set up for drift monitoring by the drift
* configuration that is identified by the first two arguments. The path
10 years, 6 months
[rhq] modules/plugins
by Jean-Frederic Clere
modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml | 5 -----
1 file changed, 5 deletions(-)
New commits:
commit c30b36b8380b579c5761a83b8a875d2acd211acb
Author: Jean-Frederic Clere <jfclere(a)gmail.com>
Date: Fri Oct 25 18:14:30 2013 +0200
[BZ 956509] In fact it is named executor and it can't be set by storeconfig.
diff --git a/modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml b/modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml
index 74455a5..7563e05 100644
--- a/modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml
+++ b/modules/plugins/tomcat/src/main/resources/META-INF/rhq-plugin.xml
@@ -963,11 +963,6 @@
required="false"
default="-1" />
<c:simple-property
- name="sharedExecutorName"
- type="string"
- description="If this Connector is configured to use a shared Executor for its thread pool, this is the name of that Executor. This is required to successfully collect threadpool metrics for the Connector. Leave this unset if the Connector is not using a shared Executor for its threadpool."
- required="false" />
- <c:simple-property
name="disableUploadTimeout"
type="boolean"
description="This flag allows the servlet container to use a different, longer connection timeout while a servlet is being executed, which in the end allows either the servlet a longer amount of time to complete its execution, or a longer timeout during data upload. If not specified, this attribute is set to true."
10 years, 6 months
[rhq] Branch 'release/jon3.2.x' - 2 commits - etc/eclipse-tools etc/test-apps modules/core modules/plugins
by Thomas Segismont
etc/eclipse-tools/templates/formatter-profile.xml | 6
etc/test-apps/javaee6-test-app/pom.xml | 97 +++
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleEntity.java | 53 ++
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleQueueMDB.java | 38 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleSingleton.java | 44 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateful.java | 29 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateless.java | 29 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleTopicMDB.java | 38 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebService.java | 34 +
etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebServiceImpl.java | 33 +
etc/test-apps/javaee6-test-app/src/main/resources/META-INF/persistence.xml | 34 +
etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/beans.xml | 25
etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-ds.xml | 34 +
etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-jms.xml | 34 +
modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/FakeServerInventory.java | 3
modules/plugins/jboss-as-7/pom.xml | 1
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseProcessDiscovery.java | 46 +
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/BaseServerComponent.java | 25
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerDiscovery.java | 10
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/JBossProductType.java | 2
modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASDiscovery.java | 17
modules/plugins/jboss-as-7/src/main/resources/META-INF/rhq-plugin.xml | 2
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/AbstractServerComponentTest.java | 17
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentRuntimeResourcesTest.java | 264 ++++++++++
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java | 151 +----
modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/TestDeployments.java | 45 +
modules/plugins/jboss-as-7/src/test/resources/itest/javaee6-test-app.war |binary
modules/plugins/jboss-as-7/src/test/resources/log4j.xml | 12
28 files changed, 960 insertions(+), 163 deletions(-)
New commits:
commit b1abc08b03fb1589dda73202961877b6fc3a86c2
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Fri Oct 25 18:08:01 2013 +0200
Bug 1015665 - Remove bogus product name check
Cherry-picked from master 1d7b80e
Introduced new pluginConfig property "expectedRuntimeProductName"
Will check this property while validating attributes
If a dependant plugin changes its product-name, it will be able to set this property in a discovery callback
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 876b1ac..85f409d 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
@@ -18,6 +18,8 @@
*/
package org.rhq.modules.plugins.jbossas7;
+import static java.lang.Boolean.FALSE;
+import static java.lang.Boolean.TRUE;
import static org.rhq.core.util.StringUtil.arrayToString;
import static org.rhq.core.util.StringUtil.isNotBlank;
@@ -205,6 +207,7 @@ public abstract class BaseProcessDiscovery implements ResourceDiscoveryComponent
String apiVersion = hostConfig.getDomainApiVersion();
JBossProductType productType = JBossProductType.determineJBossProductType(homeDir, apiVersion);
serverPluginConfig.setProductType(productType);
+ pluginConfig.setSimpleValue("expectedRuntimeProductName", productType.PRODUCT_NAME);
pluginConfig.setSimpleValue("hostXmlFileName", getHostXmlFileName(commandLine));
ProcessInfo agentProcess = discoveryContext.getSystemInformation().getThisProcess();
@@ -458,6 +461,7 @@ public abstract class BaseProcessDiscovery implements ResourceDiscoveryComponent
pluginConfig.put(new PropertySimple("manuallyAdded", true));
pluginConfig.put(new PropertySimple("productType",productType.name()));
+ pluginConfig.setSimpleValue("expectedRuntimeProductName", productType.PRODUCT_NAME);
DiscoveredResourceDetails detail = new DiscoveredResourceDetails(context.getResourceType(), key, name,
version, description, pluginConfig, null);
@@ -471,26 +475,36 @@ public abstract class BaseProcessDiscovery implements ResourceDiscoveryComponent
Configuration pluginConfiguration = inventoriedResource.getPluginConfiguration();
ServerPluginConfiguration serverPluginConfiguration = new ServerPluginConfiguration(pluginConfiguration);
- if (currentResourceKey.startsWith(LOCAL_RESOURCE_KEY_PREFIX)
- || currentResourceKey.startsWith(REMOTE_RESOURCE_KEY_PREFIX)) {
- // Resource key already in right format
- return null;
- }
-
ResourceUpgradeReport report = new ResourceUpgradeReport();
+ Boolean upgraded = FALSE;
+
+ if (!currentResourceKey.startsWith(LOCAL_RESOURCE_KEY_PREFIX)
+ && !currentResourceKey.startsWith(REMOTE_RESOURCE_KEY_PREFIX)) {
+ // Resource key in wrong format
+ upgraded = TRUE;
+ if (new File(currentResourceKey).isDirectory()) {
+ // Old key format for a local resource (key is base dir)
+ report.setNewResourceKey(createKeyForLocalResource(serverPluginConfiguration));
+ } else if (currentResourceKey.contains(":")) {
+ // Old key format for a remote (manually added) resource (key is base dir)
+ report.setNewResourceKey(createKeyForRemoteResource(currentResourceKey));
+ } else {
+ upgraded = FALSE;
+ log.warn("Unknown format, cannot upgrade resource key [" + currentResourceKey + "]");
+ }
+ }
- if (new File(currentResourceKey).isDirectory()) {
- // Old key format for a local resource (key is base dir)
- report.setNewResourceKey(createKeyForLocalResource(serverPluginConfiguration));
- } else if (currentResourceKey.contains(":")) {
- // Old key format for a remote (manually added) resource (key is base dir)
- report.setNewResourceKey(createKeyForRemoteResource(currentResourceKey));
- } else {
- log.warn("Unknown format, cannot upgrade resource key [" + currentResourceKey + "]");
- return null;
+ if (pluginConfiguration.getSimpleValue("expectedRuntimeProductName") == null) {
+ upgraded = TRUE;
+ pluginConfiguration.setSimpleValue("expectedRuntimeProductName",
+ serverPluginConfiguration.getProductType().PRODUCT_NAME);
+ report.setNewPluginConfiguration(pluginConfiguration);
}
- return report;
+ if (upgraded == TRUE) {
+ return report;
+ }
+ return null;
}
private String createKeyForRemoteResource(String hostPort) {
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 9c2a799..b226af0 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
@@ -45,7 +45,6 @@ import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
import org.rhq.core.pluginapi.availability.AvailabilityCollectorRunnable;
import org.rhq.core.pluginapi.availability.AvailabilityFacet;
-import org.rhq.core.pluginapi.component.ComponentInvocationContext;
import org.rhq.core.pluginapi.event.log.LogFileEventResourceComponentHelper;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceComponent;
@@ -205,22 +204,20 @@ public abstract class BaseServerComponent<T extends ResourceComponent<?>> extend
}
// Validate the product type (e.g. AS or EAP).
- JBossProductType runtimeType;
+ String expectedRuntimeProductName = pluginConfiguration.getSimpleValue("expectedRuntimeProductName");
try {
- String runtimeTypeString = readAttribute(getHostAddress(), "product-name");
- runtimeType = (runtimeTypeString != null && !runtimeTypeString.isEmpty()) ? JBossProductType
- .getValueByProductName(runtimeTypeString) : JBossProductType.AS;
- } catch (Exception e) {
- runtimeType = null;
- log.error("Failed to validate product type for " + getResourceDescription() + ".", e);
- }
- if (runtimeType != null) {
- JBossProductType type = serverPluginConfig.getProductType();
- if (runtimeType != type) {
+ String runtimeProductName = readAttribute(getHostAddress(), "product-name");
+ if (runtimeProductName == null || runtimeProductName.trim().isEmpty()) {
+ runtimeProductName = JBossProductType.AS.PRODUCT_NAME;
+ }
+ if (!runtimeProductName.equals(expectedRuntimeProductName)) {
throw new InvalidPluginConfigurationException(
- "The original product type discovered for this AS7 server was " + type
- + ", but the server is now reporting its product type is [" + runtimeType + "].");
+ "The original product type discovered for this server was " + expectedRuntimeProductName
+ + ", but the server is now reporting its product type is [" + runtimeProductName + "]");
}
+ } catch (Exception e) {
+ throw new InvalidPluginConfigurationException("Failed to validate product type for "
+ + getResourceDescription(), e);
}
}
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerDiscovery.java
index f4cbb40..92c9e31 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/HostControllerDiscovery.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2012 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -13,8 +13,8 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
package org.rhq.modules.plugins.jbossas7;
@@ -33,10 +33,6 @@ public class HostControllerDiscovery extends BaseProcessDiscovery {
private static final String DOMAIN_CONFIG_DIR_SYSPROP = "jboss.domain.config.dir";
private static final String DOMAIN_LOG_DIR_SYSPROP = "jboss.domain.log.dir";
- private static final String DEFAULT_HOST_CONFIG_FILE_NAME = "host.xml";
-
- private CommandLineOption HOST_CONFIG_OPTION = new CommandLineOption(null, "host-config");
-
@Override
protected AS7Mode getMode() {
return AS7Mode.DOMAIN;
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 05b72e3..fa73974 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
@@ -32,7 +32,7 @@ public enum JBossProductType {
AS("AS", "JBoss AS 7", "JBoss Application Server 7", "AS"),
EAP("EAP", "JBoss EAP 6", "JBoss Enterprise Application Platform 6", "EAP"),
- ISPN("ISPN", "Infinispan Server", "Infinispan Server", "ISPN"),
+ ISPN("ISPN", "Infinispan Server", "Infinispan Server", "Infinispan Server"),
JDG("JDG", "JBoss JDG 6", "JBoss Data Grid 6", "Data Grid"),
JPP("JPP", "JBoss JPP 6", "JBoss Portal Platform 6", "Portal Platform"),
SOA("SOA-P", "JBoss SOA-P 6", "Red Hat JBoss Fuse Service Works", "Red Hat JBoss Fuse Service Works"),
diff --git a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASDiscovery.java b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASDiscovery.java
index 2978343..31ad026 100644
--- a/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASDiscovery.java
+++ b/modules/plugins/jboss-as-7/src/main/java/org/rhq/modules/plugins/jbossas7/StandaloneASDiscovery.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2012 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -13,13 +13,11 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
package org.rhq.modules.plugins.jbossas7;
-import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
import org.rhq.core.system.ProcessInfo;
import org.rhq.modules.plugins.jbossas7.helper.HostPort;
@@ -76,15 +74,6 @@ public class StandaloneASDiscovery extends BaseProcessDiscovery {
}
@Override
- protected DiscoveredResourceDetails buildResourceDetails(ResourceDiscoveryContext discoveryContext,
- ProcessInfo process, AS7CommandLine commandLine) throws Exception {
-
- DiscoveredResourceDetails resourceDetails = super.buildResourceDetails(discoveryContext, process, commandLine);
-
- return resourceDetails;
- }
-
- @Override
protected ProcessInfo getPotentialStartScriptProcess(ProcessInfo process) {
// If the server was started via standalone.sh/bat, its parent process will be standalone.sh/bat.
return process.getParentProcess();
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/AbstractServerComponentTest.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/AbstractServerComponentTest.java
index f34a554..6ff3d06 100644
--- a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/AbstractServerComponentTest.java
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/AbstractServerComponentTest.java
@@ -63,6 +63,7 @@ public abstract class AbstractServerComponentTest extends AbstractJBossAS7Plugin
static {
EAP6_VERSION_TO_AS7_VERSION_MAP.put("6.0.0", "7.1.2.Final-redhat-1");
EAP6_VERSION_TO_AS7_VERSION_MAP.put("6.0.1", "7.1.3.Final-redhat-4");
+ EAP6_VERSION_TO_AS7_VERSION_MAP.put("6.1.0", "7.2.0.Final-redhat-8");
}
private static final String RELEASE_VERSION_TRAIT_NAME = "_skm:release-version";
@@ -124,9 +125,13 @@ public abstract class AbstractServerComponentTest extends AbstractJBossAS7Plugin
Assert.assertNotNull(ipce, "InvalidPluginConfigurationException was not thrown by server component's "
+ "start() method due to invalid baseDir.");
- // Change the productType prop.
- JBossProductType originalProductType = serverPluginConfig.getProductType();
- serverPluginConfig.setProductType(originalProductType == JBossProductType.AS ? JBossProductType.EAP : JBossProductType.AS);
+ // Change the expectedRuntimeProductName property
+ String originalExpectedRuntimeProductName = pluginConfig.getSimpleValue("expectedRuntimeProductName");
+ if (originalExpectedRuntimeProductName.equals(JBossProductType.AS.PRODUCT_NAME)) {
+ pluginConfig.setSimpleValue("expectedRuntimeProductName", JBossProductType.EAP.PRODUCT_NAME);
+ } else {
+ pluginConfig.setSimpleValue("expectedRuntimeProductName", JBossProductType.AS.PRODUCT_NAME);
+ }
// Restart the server ResourceComponent so it picks up the changes we just made to the plugin config.
inventoryManager.deactivateResource(getServerResource());
@@ -137,9 +142,9 @@ public abstract class AbstractServerComponentTest extends AbstractJBossAS7Plugin
ipce = e;
}
- // Set the productType back to the original value and restart the component before making any assertions, to ensure
- // things aren't left in a corrupt state for remaining test methods.
- serverPluginConfig.setProductType(originalProductType);
+ // Set the expectedRuntimeProductName property back to the original value and restart the component before
+ // making any assertions, to ensure things aren't left in a corrupt state for remaining test methods.
+ pluginConfig.setSimpleValue("expectedRuntimeProductName", originalExpectedRuntimeProductName);
inventoryManager.activateResource(getServerResource(), serverContainer, true);
Assert.assertNotNull(ipce, "InvalidPluginConfigurationException was not thrown by server component's "
commit ed1ad368ce9f37e088dba67660d936fdf293cc12
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Thu Oct 24 11:09:36 2013 +0200
Bug 1023057 - AS7 plugin: "Hibernate Persistence Unit" service does not show up
Cherry-picked from master ec97c8c7e65ba71b7f8b47fce8c799f2586aa513
Bug 1022409 - AS7 plugin: "Hibernate Persistence Unit" service does not show up
Bug due to a typo in the plugin descriptor ('persistance' instead of 'persistence')
Added Sample JavaEE6 application
Added integration test for deployment "*Runtime" child resources
diff --git a/etc/eclipse-tools/templates/formatter-profile.xml b/etc/eclipse-tools/templates/formatter-profile.xml
index 8f6df20..cfe6538 100644
--- a/etc/eclipse-tools/templates/formatter-profile.xml
+++ b/etc/eclipse-tools/templates/formatter-profile.xml
@@ -155,7 +155,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
-<setting id="org.eclipse.jdt.core.compiler.source" value="1.5"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.6"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
@@ -163,7 +163,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
-<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.5"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.6"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
@@ -197,7 +197,7 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
-<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.5"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.6"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
diff --git a/etc/test-apps/javaee6-test-app/pom.xml b/etc/test-apps/javaee6-test-app/pom.xml
new file mode 100644
index 0000000..1831f71
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ RHQ Management Platform
+ ~ Copyright (C) 2005-2013 Red Hat, Inc.
+ ~ All rights reserved.
+ ~
+ ~ This program is free software; you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation version 2 of the License.
+ ~
+ ~ This program 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 General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program; if not, write to the Free Software Foundation, Inc.,
+ ~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>javaee6-test-app</groupId>
+ <artifactId>javaee6-test-app</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <packaging>war</packaging>
+ <name>javaee6-test-app</name>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <version.jboss.maven.plugin>7.4.Final</version.jboss.maven.plugin>
+ <version.jboss.bom>1.0.7.Final</version.jboss.bom>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.bom</groupId>
+ <artifactId>jboss-javaee-6.0-with-hibernate</artifactId>
+ <version>${version.jboss.bom}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.enterprise</groupId>
+ <artifactId>cdi-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.spec.javax.ejb</groupId>
+ <artifactId>jboss-ejb-api_3.1_spec</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.spec.javax.jms</groupId>
+ <artifactId>jboss-jms-api_1.1_spec</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>javaee6-test-app</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.4</version>
+ <configuration>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.jboss.as.plugins</groupId>
+ <artifactId>jboss-as-maven-plugin</artifactId>
+ <version>7.4.Final</version>
+ <configuration>
+ <hostname>127.0.0.18</hostname>
+ <port>9999</port>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleEntity.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleEntity.java
new file mode 100644
index 0000000..41c8660
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleEntity.java
@@ -0,0 +1,53 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+/**
+ * @author Thomas Segismont
+ */
+@Entity
+public class SimpleEntity {
+
+ private Long id;
+
+ private String name;
+
+ @Id
+ @GeneratedValue
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleQueueMDB.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleQueueMDB.java
new file mode 100644
index 0000000..17756c1
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleQueueMDB.java
@@ -0,0 +1,38 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+@MessageDriven(name = "SimpleQueueMDB", activationConfig = {
+ @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
+ @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/SimpleQueue"),
+ @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
+/**
+ * @author Thomas Segismont
+ */
+public class SimpleQueueMDB implements MessageListener {
+
+ public void onMessage(Message message) {
+ }
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleSingleton.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleSingleton.java
new file mode 100644
index 0000000..d057dd4
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleSingleton.java
@@ -0,0 +1,44 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+/**
+ * @author Thomas Segismont
+ */
+@Singleton
+@Startup
+public class SimpleSingleton {
+
+ @PersistenceContext
+ EntityManager em;
+
+ @PostConstruct
+ public void init() {
+ em.createQuery("from SimpleEntity").getResultList();
+ }
+
+
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateful.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateful.java
new file mode 100644
index 0000000..4267704
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateful.java
@@ -0,0 +1,29 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.ejb.Stateful;
+
+/**
+ * @author Thomas Segismont
+ */
+@Stateful
+public class SimpleStateful {
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateless.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateless.java
new file mode 100644
index 0000000..70dbec6
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleStateless.java
@@ -0,0 +1,29 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.ejb.Stateless;
+
+/**
+ * @author Thomas Segismont
+ */
+@Stateless
+public class SimpleStateless {
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleTopicMDB.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleTopicMDB.java
new file mode 100644
index 0000000..e26728a
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleTopicMDB.java
@@ -0,0 +1,38 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+
+@MessageDriven(name = "SimpleTopicMDB", activationConfig = {
+ @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
+ @ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/SimpleTopic"),
+ @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") })
+/**
+ * @author Thomas Segismont
+ */
+public class SimpleTopicMDB implements MessageListener {
+
+ public void onMessage(Message rcvMessage) {
+ }
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebService.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebService.java
new file mode 100644
index 0000000..cdba606
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebService.java
@@ -0,0 +1,34 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+package org.rhq.test.apps.javaee6;
+
+import java.util.List;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+
+/**
+ * @author Thomas Segismont
+ */
+@WebService(targetNamespace = "http://www.jboss.org/rhq/test-apps/javaee6-test-app/SimpleWebService")
+public interface SimpleWebService {
+
+ @WebMethod
+ public String simpleAction();
+}
\ No newline at end of file
diff --git a/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebServiceImpl.java b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebServiceImpl.java
new file mode 100644
index 0000000..1298255
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/java/org/rhq/test/apps/javaee6/SimpleWebServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.test.apps.javaee6;
+
+import javax.jws.WebService;
+
+/**
+ * @author Thomas Segismont
+ */
+@WebService(serviceName = "SimpleWebService", portName = "SimpleWebService", name = "SimpleWebService", endpointInterface = "org.rhq.test.apps.javaee6.SimpleWebService", targetNamespace = "http://www.jboss.org/rhq/test-apps/javaee6-test-app/SimpleWebService")
+public class SimpleWebServiceImpl implements SimpleWebService {
+ @Override
+ public String simpleAction() {
+ return "ok";
+ }
+}
diff --git a/etc/test-apps/javaee6-test-app/src/main/resources/META-INF/persistence.xml b/etc/test-apps/javaee6-test-app/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..55edc7b
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ RHQ Management Platform
+ ~ Copyright (C) 2005-2013 Red Hat, Inc.
+ ~ All rights reserved.
+ ~
+ ~ This program is free software; you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation version 2 of the License.
+ ~
+ ~ This program 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 General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program; if not, write to the Free Software Foundation, Inc.,
+ ~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ -->
+
+<persistence version="2.0"
+ xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://java.sun.com/xml/ns/persistence
+ http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
+ <persistence-unit name="primary">
+ <jta-data-source>java:jboss/datasources/javaee6-test-appDS</jta-data-source>
+ <properties>
+ <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+ <property name="hibernate.show_sql" value="true"/>
+ <property name="hibernate.generate_statistics" value="true"/>
+ </properties>
+ </persistence-unit>
+</persistence>
diff --git a/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/beans.xml b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/beans.xml
new file mode 100644
index 0000000..cfc146e
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/beans.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ RHQ Management Platform
+ ~ Copyright (C) 2005-2013 Red Hat, Inc.
+ ~ All rights reserved.
+ ~
+ ~ This program is free software; you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation version 2 of the License.
+ ~
+ ~ This program 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 General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program; if not, write to the Free Software Foundation, Inc.,
+ ~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ -->
+
+<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://java.sun.com/xml/ns/javaee
+ http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
+</beans>
diff --git a/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-ds.xml b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-ds.xml
new file mode 100644
index 0000000..081a8e8
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-ds.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ RHQ Management Platform
+ ~ Copyright (C) 2005-2013 Red Hat, Inc.
+ ~ All rights reserved.
+ ~
+ ~ This program is free software; you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation version 2 of the License.
+ ~
+ ~ This program 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 General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program; if not, write to the Free Software Foundation, Inc.,
+ ~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ -->
+
+<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
+ <datasource jndi-name="java:jboss/datasources/javaee6-test-appDS"
+ pool-name="javaee6-test-app" enabled="true"
+ use-java-context="true">
+ <connection-url>jdbc:h2:mem:javaee6-test-app;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1</connection-url>
+ <driver>h2</driver>
+ <security>
+ <user-name>sa</user-name>
+ <password>sa</password>
+ </security>
+ </datasource>
+</datasources>
diff --git a/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-jms.xml b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-jms.xml
new file mode 100644
index 0000000..2821b43
--- /dev/null
+++ b/etc/test-apps/javaee6-test-app/src/main/webapp/WEB-INF/javaee6-test-app-jms.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ RHQ Management Platform
+ ~ Copyright (C) 2005-2013 Red Hat, Inc.
+ ~ All rights reserved.
+ ~
+ ~ This program is free software; you can redistribute it and/or modify
+ ~ it under the terms of the GNU General Public License as published by
+ ~ the Free Software Foundation version 2 of the License.
+ ~
+ ~ This program 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 General Public License for more details.
+ ~
+ ~ You should have received a copy of the GNU General Public License
+ ~ along with this program; if not, write to the Free Software Foundation, Inc.,
+ ~ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ -->
+
+<messaging-deployment xmlns="urn:jboss:messaging-deployment:1.0">
+ <hornetq-server>
+ <jms-destinations>
+ <jms-queue name="SimpleQueue">
+ <entry name="/queue/SimpleQueue"/>
+ <durable>true</durable>
+ <selector string="red"/>
+ </jms-queue>
+ <jms-topic name="SimpleTopic">
+ <entry name="/topic/SimpleTopic"/>
+ </jms-topic>
+ </jms-destinations>
+ </hornetq-server>
+</messaging-deployment>
\ No newline at end of file
diff --git a/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/FakeServerInventory.java b/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/FakeServerInventory.java
index 1f56095..94654ee 100644
--- a/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/FakeServerInventory.java
+++ b/modules/core/arquillian-integration/container/src/main/java/org/rhq/test/arquillian/FakeServerInventory.java
@@ -16,6 +16,7 @@
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
+
package org.rhq.test.arquillian;
import java.lang.reflect.Field;
@@ -113,7 +114,7 @@ public class FakeServerInventory {
private void setDepth(int resourceTreeDepth) {
synchronized (sync) {
if (LOG.isDebugEnabled()) {
- LOG.debug("Current tree depth is " + resourceTreeDepth + ", while this checker is waiting for "
+ LOG.debug("Current tree depth is " + resourceTreeDepth + ", this checker is waiting for "
+ expectedDepth + " on " + this);
}
if (!depthReached && resourceTreeDepth >= expectedDepth) {
diff --git a/modules/plugins/jboss-as-7/pom.xml b/modules/plugins/jboss-as-7/pom.xml
index b9b0914..566e0ef 100644
--- a/modules/plugins/jboss-as-7/pom.xml
+++ b/modules/plugins/jboss-as-7/pom.xml
@@ -615,6 +615,7 @@
<!--<include>org/rhq/modules/plugins/jbossas7/itest/standalone/StandaloneServerComponentTest.java</include>-->
<!--<include>org/rhq/modules/plugins/jbossas7/itest/standalone/InterruptibleOperationsTest.java</include>-->
<!--<include>org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java</include>-->
+ <!--<include>org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentRuntimeResourcesTest.java</include>-->
<!--<include>org/rhq/modules/plugins/jbossas7/itest/standalone/WebConnectorComponentTest.java</include>-->
<!--<include>org/rhq/modules/plugins/jbossas7/itest/domain/DomainServerComponentTest.java</include>-->
<!--<include>org/rhq/modules/plugins/jbossas7/itest/domain/ManagedServerTest.java</include>-->
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 af8474b..aabf8de 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
@@ -10063,7 +10063,7 @@
singleton="true">
<plugin-configuration>
- <c:simple-property name="path" default="hibernate-persistance-unit" readOnly="true"/>
+ <c:simple-property name="path" default="hibernate-persistence-unit" readOnly="true"/>
</plugin-configuration>
<operation name="subsystem:clear" description="Clear statistics.">
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentRuntimeResourcesTest.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentRuntimeResourcesTest.java
new file mode 100644
index 0000000..05237ef
--- /dev/null
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentRuntimeResourcesTest.java
@@ -0,0 +1,264 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+package org.rhq.modules.plugins.jbossas7.itest.standalone;
+
+import static java.lang.System.currentTimeMillis;
+import static java.util.concurrent.TimeUnit.MINUTES;
+import static java.util.concurrent.TimeUnit.SECONDS;
+import static org.rhq.modules.plugins.jbossas7.itest.standalone.DeploymentTest.copyStreamAndReturnCount;
+import static org.rhq.modules.plugins.jbossas7.itest.standalone.DeploymentTest.getMeasurementScheduleRequests;
+import static org.rhq.modules.plugins.jbossas7.itest.standalone.DeploymentTest.getMissingMeasurements;
+import static org.rhq.modules.plugins.jbossas7.itest.standalone.DeploymentTest.getTestDeploymentPackageDetails;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+import org.testng.annotations.Test;
+
+import org.rhq.core.clientapi.agent.PluginContainerException;
+import org.rhq.core.clientapi.agent.inventory.CreateResourceRequest;
+import org.rhq.core.clientapi.agent.inventory.CreateResourceResponse;
+import org.rhq.core.clientapi.agent.inventory.DeleteResourceRequest;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.content.PackageDetailsKey;
+import org.rhq.core.domain.content.transfer.ResourcePackageDetails;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.domain.resource.CreateResourceStatus;
+import org.rhq.core.domain.resource.Resource;
+import org.rhq.core.pc.inventory.ResourceContainer;
+import org.rhq.core.pc.util.FacetLockType;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.modules.plugins.jbossas7.itest.AbstractJBossAS7PluginTest;
+import org.rhq.test.arquillian.DiscoveredResources;
+import org.rhq.test.arquillian.RunDiscovery;
+import org.rhq.test.arquillian.ServerServicesSetup;
+
+/**
+ * This test ensures that "* Runtime" (JPA, Messaging, EJB3) child resources of a deployment get discovered.
+ *
+ * @author Thomas Segismont
+ */
+@Test(groups = { "integration", "pc", "standalone" }, singleThreaded = true)
+public class DeploymentRuntimeResourcesTest extends AbstractJBossAS7PluginTest {
+ private static final Log LOG = LogFactory.getLog(DeploymentRuntimeResourcesTest.class);
+
+ private enum RuntimeServiceType {
+ DATASOURCES_RUNTIME("Datasources Runtime"), //
+ DATASOURCE_RUNTIME("Datasource Runtime"), //
+ MESSAGING_RUNTIME("Messaging Runtime"), //
+ HORNETQ_SERVER_RUNTIME("HornetQ Server Runtime"), //
+ JMS_QUEUE_RUNTIME("JMS Queue Runtime"), //
+ JMS_TOPIC_RUNTIME("JMS Topic Runtime"), //
+ EJB3_RUNTIME("EJB3 Runtime"), //
+ MESSAGE_DRIVEN_BEAN_RUNTIME("Message Driven Bean Runtime"), //
+ SINGLETON_BEAN_RUNTIME("Singleton Bean Runtime"), //
+ STATELESS_SESSION_BEAN_RUNTIME("Stateless Session Bean Runtime"), //
+ STATEFUL_SESSION_BEAN_RUNTIME("Stateful Session Bean Runtime"), //
+ WEBSERVICES_RUNTIME("Webservices Runtime"), //
+ ENDPOINT_RUNTIME("Endpoint Runtime"), //
+ JPA_RUNTIME("JPA Runtime"), //
+ HIBERNATE_PERSISTENCE_UNIT("Hibernate Persistence Unit"), //
+ ENTITY("Entity");
+
+ private String serviceTypeName;
+
+ RuntimeServiceType(String serviceTypeName) {
+ this.serviceTypeName = serviceTypeName;
+ }
+
+ public String getServiceTypeName() {
+ return serviceTypeName;
+ }
+ }
+
+ @DiscoveredResources(plugin = PLUGIN_NAME, resourceType = "JBossAS7 Standalone Server")
+ private Set<Resource> standaloneResources;
+
+ @DiscoveredResources(plugin = PLUGIN_NAME, resourceType = "Deployment")
+ private Set<Resource> deploymentResources;
+
+ @ServerServicesSetup
+ @Test(enabled = false)
+ public void setupContentServices() {
+ Mockito.when(
+ serverServices.getContentServerService().downloadPackageBitsForChildResource(Mockito.anyInt(),
+ Mockito.anyString(), Mockito.any(PackageDetailsKey.class), Mockito.any(OutputStream.class))).then(
+ new Answer<Long>() {
+ @Override
+ public Long answer(InvocationOnMock invocation) throws Throwable {
+ InputStream str = getClass().getClassLoader().getResourceAsStream(
+ TestDeployments.JAVAEE6_TEST_APP.getResourcePath());
+ OutputStream out = (OutputStream) invocation.getArguments()[invocation.getArguments().length - 1];
+ return copyStreamAndReturnCount(str, out);
+ }
+ });
+
+ Mockito.when(
+ serverServices.getContentServerService().downloadPackageBitsGivenResource(Mockito.anyInt(),
+ Mockito.any(PackageDetailsKey.class), Mockito.any(OutputStream.class))).then(new Answer<Long>() {
+ @Override
+ public Long answer(InvocationOnMock invocation) throws Throwable {
+ InputStream str = getClass().getClassLoader().getResourceAsStream(
+ TestDeployments.JAVAEE6_TEST_APP.getResourcePath());
+ OutputStream out = (OutputStream) invocation.getArguments()[invocation.getArguments().length - 1];
+ return copyStreamAndReturnCount(str, out);
+ }
+ });
+ }
+
+ @Test(priority = 10)
+ @RunDiscovery
+ public void testDeploy() throws Exception {
+ assertFalse(standaloneResources == null || standaloneResources.size() != 1,
+ "Exactly 1 AS7 standalone server resource should be present.");
+
+ int serverResourceId = standaloneResources.iterator().next().getId();
+
+ ResourcePackageDetails packageDetails = getTestDeploymentPackageDetails(TestDeployments.JAVAEE6_TEST_APP);
+
+ Configuration deploymentConfig = new Configuration();
+ deploymentConfig.put(new PropertySimple("runtimeName", packageDetails.getName()));
+
+ CreateResourceRequest request = new CreateResourceRequest();
+ request.setPackageDetails(packageDetails);
+ request.setParentResourceId(serverResourceId);
+ request.setPluginConfiguration(null);
+ request.setPluginName(PLUGIN_NAME);
+ request.setResourceConfiguration(deploymentConfig);
+ request.setResourceName(packageDetails.getName());
+ request.setResourceTypeName("Deployment");
+
+ CreateResourceResponse response = pluginContainer.getResourceFactoryManager().executeCreateResourceImmediately(
+ request);
+
+ assertEquals(response.getStatus(), CreateResourceStatus.SUCCESS,
+ "The deployment failed with an error mesasge: " + response.getErrorMessage());
+ }
+
+ @Test(priority = 12)
+ @RunDiscovery
+ public void testRuntimeResources() throws Exception {
+ ensureAllRuntimeServicesAreFound();
+ for (RuntimeServiceType runtimeServiceType : RuntimeServiceType.values()) {
+ testRuntimeResourceMeasurements(runtimeServiceType);
+ }
+ }
+
+ private void ensureAllRuntimeServicesAreFound() throws InterruptedException {
+ long start = currentTimeMillis();
+ boolean foundAllRuntimeServices = false;
+ do {
+ boolean runtimeServiceMissing = false;
+ for (RuntimeServiceType runtimeServiceType : RuntimeServiceType.values()) {
+ Set<Resource> childResources = getChildResourcesOfType(getDeploymentResource(),
+ runtimeServiceType.getServiceTypeName());
+ runtimeServiceMissing = childResources.isEmpty() && canGetMeasurementFacet(childResources);
+ if (runtimeServiceMissing) {
+ break;
+ }
+ }
+ foundAllRuntimeServices = !runtimeServiceMissing;
+ Thread.sleep(SECONDS.toMillis(5));
+ } while (!foundAllRuntimeServices && (currentTimeMillis() - start) < MINUTES.toMillis(10));
+ assertTrue(foundAllRuntimeServices, "Could not find all runtime services");
+ Thread.sleep(MINUTES.toMillis(5));
+ }
+
+ private boolean canGetMeasurementFacet(Set<Resource> resources) {
+ for (Resource resource : resources) {
+ if (getMeasurementFacet(resource) == null) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private void testRuntimeResourceMeasurements(RuntimeServiceType runtimeServiceType) throws Exception {
+ Set<Resource> resources = getChildResourcesOfType(getDeploymentResource(),
+ runtimeServiceType.getServiceTypeName());
+ for (Resource resource : resources) {
+ MeasurementFacet measurementFacet = getMeasurementFacet(resource);
+ MeasurementReport report = new MeasurementReport();
+ Set<MeasurementScheduleRequest> measurementScheduleRequests = getMeasurementScheduleRequests(resource);
+ measurementFacet.getValues(report, measurementScheduleRequests);
+ assertEquals(report.getCallTimeData().size(), 0, runtimeServiceType.getServiceTypeName()
+ + ": no calltime data was requested");
+ assertEquals(
+ report.getNumericData().size() + report.getTraitData().size(),
+ measurementScheduleRequests.size(),
+ runtimeServiceType.getServiceTypeName()
+ + ": some requested measurements are missing: "
+ + getMissingMeasurements(measurementScheduleRequests, report.getNumericData(),
+ report.getTraitData()));
+ }
+ }
+
+ private MeasurementFacet getMeasurementFacet(Resource resource) {
+ ResourceContainer resourceContainer = pluginContainer.getInventoryManager().getResourceContainer(resource);
+ try {
+ return resourceContainer.createResourceComponentProxy(MeasurementFacet.class, FacetLockType.READ,
+ SECONDS.toMillis(5), false, false, false);
+ } catch (PluginContainerException e) {
+ return null;
+ }
+ }
+
+ private Set<Resource> getChildResourcesOfType(final Resource parentResource, final String runtimeServiceType) {
+ Set<Resource> foundResources = new HashSet<Resource>();
+ Set<Resource> childResources = parentResource.getChildResources();
+ if (childResources != null && !childResources.isEmpty()) {
+ for (Resource childResource : childResources) {
+ if (runtimeServiceType.equals(childResource.getResourceType().getName())) {
+ foundResources.add(childResource);
+ }
+ foundResources.addAll(getChildResourcesOfType(childResource, runtimeServiceType));
+ }
+ }
+ return foundResources;
+ }
+
+ @Test(priority = 99)
+ public void testUndeploy() throws Exception {
+ Resource deploymentResource = getDeploymentResource();
+ DeleteResourceRequest request = new DeleteResourceRequest(0, deploymentResource.getId());
+ getServerInventory().removeResource(deploymentResource);
+ pluginContainer.getResourceFactoryManager().deleteResource(request);
+ }
+
+ private Resource getDeploymentResource() {
+ assertFalse(deploymentResources == null || deploymentResources.size() != 1,
+ "Exactly 1 deployment resource should be present.");
+ return pluginContainer.getInventoryManager()
+ .getResourceContainer(deploymentResources.iterator().next().getId()).getResource();
+ }
+
+}
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java
index b872ad6..24add24 100644
--- a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/DeploymentTest.java
@@ -24,12 +24,9 @@ import static org.rhq.core.domain.util.ResourceTypeUtility.getMeasurementDefinit
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
@@ -66,6 +63,7 @@ import org.rhq.core.domain.util.MeasurementDefinitionFilter;
import org.rhq.core.pc.inventory.ResourceContainer;
import org.rhq.core.pc.util.FacetLockType;
import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.util.MessageDigestGenerator;
import org.rhq.modules.plugins.jbossas7.StandaloneASComponent;
import org.rhq.modules.plugins.jbossas7.itest.AbstractJBossAS7PluginTest;
import org.rhq.test.arquillian.DiscoveredResources;
@@ -81,32 +79,6 @@ import org.rhq.test.arquillian.ServerServicesSetup;
@Test(groups = { "integration", "pc", "standalone" }, singleThreaded = true)
public class DeploymentTest extends AbstractJBossAS7PluginTest {
- private enum TestDeployments {
- DEPLOYMENT_1("test-simple.war"), DEPLOYMENT_2("test-simple-2.war");
-
- private String deploymentName;
- private String resourcePath;
- private byte[] hash;
-
- private TestDeployments(String warName) {
- this.deploymentName = warName;
- this.resourcePath = "itest/" + warName;
- hash = computeHash(DeploymentTest.class.getClassLoader().getResourceAsStream(resourcePath));
- }
-
- public String getDeploymentName() {
- return deploymentName;
- }
-
- public String getResourcePath() {
- return resourcePath;
- }
-
- public byte[] getHash() {
- return hash;
- }
- }
-
@ResourceComponentInstances(plugin = PLUGIN_NAME, resourceType = "JBossAS7 Standalone Server")
private Set<StandaloneASComponent> standalones;
@@ -123,19 +95,6 @@ public class DeploymentTest extends AbstractJBossAS7PluginTest {
private static TestDeployments DEPLOYMENT_TO_SERVE = TestDeployments.DEPLOYMENT_1;
- private static long copyStreamAndReturnCount(InputStream in, OutputStream out) throws IOException {
- int data;
- long cnt = 0;
- while ((data = in.read()) != -1) {
- if (out != null) {
- out.write(data);
- }
- cnt++;
- }
-
- return cnt;
- }
-
//this is no test method
@ServerServicesSetup
@Test(enabled = false)
@@ -278,41 +237,9 @@ public class DeploymentTest extends AbstractJBossAS7PluginTest {
measurementFacet.getValues(report, measurementScheduleRequests);
assertEquals(report.getCallTimeData().size(), 0, "No calltime data was requested");
assertTrue(
- report.getNumericData().size() + report.getTraitData().size() == measurementScheduleRequests.size(),
- "Some requested measurements are missing: "
- + getMissingMeasurements(measurementScheduleRequests, report.getNumericData(), report.getTraitData()));
- }
-
- private Set<String> getMissingMeasurements(Set<MeasurementScheduleRequest> measurementScheduleRequests,
- Set<MeasurementDataNumeric> numericData, Set<MeasurementDataTrait> traitData) {
- Set<String> missingMeasurements = new HashSet<String>();
- for (MeasurementScheduleRequest measurementScheduleRequest : measurementScheduleRequests) {
- missingMeasurements.add(measurementScheduleRequest.getName());
- }
- for (MeasurementDataNumeric measurementDataNumeric : numericData) {
- missingMeasurements.remove(measurementDataNumeric.getName());
- }
- for (MeasurementDataTrait measurementDataTrait : traitData) {
- missingMeasurements.remove(measurementDataTrait.getName());
- }
- return missingMeasurements;
- }
-
- private Set<MeasurementScheduleRequest> getMeasurementScheduleRequests(Resource webRuntimeResource) {
- Set<MeasurementDefinition> measurementDefinitions = getMeasurementDefinitions(
- webRuntimeResource.getResourceType(), new MeasurementDefinitionFilter() {
- private final Set<DataType> acceptableDataTypes = EnumSet.of(DataType.MEASUREMENT, DataType.TRAIT);
-
- public boolean accept(MeasurementDefinition measurementDefinition) {
- return acceptableDataTypes.contains(measurementDefinition.getDataType());
- }
- });
- Set<MeasurementScheduleRequest> measurementScheduleRequests = new HashSet<MeasurementScheduleRequest>();
- for (MeasurementDefinition measurementDefinition : measurementDefinitions) {
- measurementScheduleRequests.add(new MeasurementScheduleRequest(-1, measurementDefinition.getName(), -1,
- true, measurementDefinition.getDataType(), measurementDefinition.getRawNumericType()));
- }
- return measurementScheduleRequests;
+ report.getNumericData().size() + report.getTraitData().size() == measurementScheduleRequests.size(),
+ "Some requested measurements are missing: "
+ + getMissingMeasurements(measurementScheduleRequests, report.getNumericData(), report.getTraitData()));
}
@Test(priority = 16)
@@ -344,6 +271,14 @@ public class DeploymentTest extends AbstractJBossAS7PluginTest {
return null;
}
+
+ private byte[] computeHash(InputStream data) {
+ try {
+ return MessageDigestGenerator.getDigest(data);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
})
.when(serverServices.getContentServerService())
.completeRetrievePackageBitsRequest(Mockito.any(ContentServiceResponse.class),
@@ -365,39 +300,55 @@ public class DeploymentTest extends AbstractJBossAS7PluginTest {
}
}
- private ResourcePackageDetails getTestDeploymentPackageDetails(TestDeployments deployment) {
+ static long copyStreamAndReturnCount(InputStream in, OutputStream out) throws IOException {
+ int data;
+ long cnt = 0;
+ while ((data = in.read()) != -1) {
+ if (out != null) {
+ out.write(data);
+ }
+ cnt++;
+ }
+ return cnt;
+ }
+
+ static ResourcePackageDetails getTestDeploymentPackageDetails(TestDeployments deployment) {
ResourcePackageDetails details = new ResourcePackageDetails(new PackageDetailsKey(
deployment.getDeploymentName(), "1.0", "file", "noarch"));
details.setFileName(deployment.getDeploymentName());
details.setDeploymentTimeConfiguration(new Configuration());
-
return details;
+ }
+ static Set<String> getMissingMeasurements(Set<MeasurementScheduleRequest> measurementScheduleRequests,
+ Set<MeasurementDataNumeric> numericData, Set<MeasurementDataTrait> traitData) {
+ Set<String> missingMeasurements = new HashSet<String>();
+ for (MeasurementScheduleRequest measurementScheduleRequest : measurementScheduleRequests) {
+ missingMeasurements.add(measurementScheduleRequest.getName());
+ }
+ for (MeasurementDataNumeric measurementDataNumeric : numericData) {
+ missingMeasurements.remove(measurementDataNumeric.getName());
+ }
+ for (MeasurementDataTrait measurementDataTrait : traitData) {
+ missingMeasurements.remove(measurementDataTrait.getName());
+ }
+ return missingMeasurements;
}
- private static byte[] computeHash(InputStream str) {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- try {
- int data;
- while ((data = str.read()) != -1) {
- out.write(data);
- }
+ static Set<MeasurementScheduleRequest> getMeasurementScheduleRequests(Resource webRuntimeResource) {
+ Set<MeasurementDefinition> measurementDefinitions = getMeasurementDefinitions(
+ webRuntimeResource.getResourceType(), new MeasurementDefinitionFilter() {
+ private final Set<DataType> acceptableDataTypes = EnumSet.of(DataType.MEASUREMENT, DataType.TRAIT);
- return MessageDigest.getInstance("md5").digest(out.toByteArray());
- } catch (IOException e) {
- throw new IllegalStateException("Could not determine the MD5 of the test deployment.", e);
- } catch (NoSuchAlgorithmException e) {
- throw new IllegalStateException(
- "Could not instantiate MD5 message digest algorithm, this should not happen.", e);
- } finally {
- try {
- out.close();
- } catch (IOException e) {
- }
- try {
- str.close();
- } catch (IOException e) {
+ public boolean accept(MeasurementDefinition measurementDefinition) {
+ return acceptableDataTypes.contains(measurementDefinition.getDataType());
}
+ });
+ Set<MeasurementScheduleRequest> measurementScheduleRequests = new HashSet<MeasurementScheduleRequest>();
+ for (MeasurementDefinition measurementDefinition : measurementDefinitions) {
+ measurementScheduleRequests.add(new MeasurementScheduleRequest(-1, measurementDefinition.getName(), -1,
+ true, measurementDefinition.getDataType(), measurementDefinition.getRawNumericType()));
}
+ return measurementScheduleRequests;
}
}
diff --git a/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/TestDeployments.java b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/TestDeployments.java
new file mode 100644
index 0000000..ef265c8
--- /dev/null
+++ b/modules/plugins/jboss-as-7/src/test/java/org/rhq/modules/plugins/jbossas7/itest/standalone/TestDeployments.java
@@ -0,0 +1,45 @@
+package org.rhq.modules.plugins.jbossas7.itest.standalone;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.rhq.core.util.MessageDigestGenerator;
+import org.rhq.core.util.stream.StreamUtil;
+
+/**
+* @author Thomas Segismont
+*/
+enum TestDeployments {
+ DEPLOYMENT_1("test-simple.war"), //
+ DEPLOYMENT_2("test-simple-2.war"), //
+ JAVAEE6_TEST_APP("javaee6-test-app.war");
+
+ private String deploymentName;
+ private String resourcePath;
+ private byte[] hash;
+
+ TestDeployments(String warName) {
+ this.deploymentName = warName;
+ this.resourcePath = "itest/" + warName;
+ InputStream resourceAsStream = DeploymentTest.class.getClassLoader().getResourceAsStream(resourcePath);
+ try {
+ hash = MessageDigestGenerator.getDigest(resourceAsStream);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ StreamUtil.safeClose(resourceAsStream);
+ }
+ }
+
+ public String getDeploymentName() {
+ return deploymentName;
+ }
+
+ public String getResourcePath() {
+ return resourcePath;
+ }
+
+ public byte[] getHash() {
+ return hash;
+ }
+}
diff --git a/modules/plugins/jboss-as-7/src/test/resources/itest/javaee6-test-app.war b/modules/plugins/jboss-as-7/src/test/resources/itest/javaee6-test-app.war
new file mode 100644
index 0000000..f88eab4
Binary files /dev/null and b/modules/plugins/jboss-as-7/src/test/resources/itest/javaee6-test-app.war differ
diff --git a/modules/plugins/jboss-as-7/src/test/resources/log4j.xml b/modules/plugins/jboss-as-7/src/test/resources/log4j.xml
index 16165cb..30a97b1 100644
--- a/modules/plugins/jboss-as-7/src/test/resources/log4j.xml
+++ b/modules/plugins/jboss-as-7/src/test/resources/log4j.xml
@@ -35,6 +35,18 @@
</layout>
</appender>
+ <category name="org.apache.http">
+ <priority value="ERROR"/>
+ </category>
+
+ <category name="org.apache.http.wire">
+ <priority value="ERROR"/>
+ </category>
+
+ <category name="org.apache.http.headers">
+ <priority value="ERROR"/>
+ </category>
+
<category name="org.rhq.modules.plugins">
<priority value="DEBUG"/>
</category>
10 years, 6 months